首页 > 解决方案 > OpenCV.js - 遍历轮廓层次结构

问题描述

我已阅读 OpenCV.js 文档cv.findContours(),但我找不到访问层次结构(父、子、下一个、上一个)对象的方法。

https://docs.opencv.org/3.4/da/d0a/tutorial_js_contours_hierarchy.html

hierarchy如何在 JavaScript 中遍历对象?

我正在使用cv.RETR_TREE轮廓检索模式。

标签: opencv

解决方案


如果层级变量是通过 启动的cv.mat(),则矩阵将层级值存储在不同的数据类型中,例如 CV_8U、CV_16S 等。可以使用此链接表中列出的 Ptr Manipulation 访问每个数据类型。

https://docs.opencv.org/3.4.3/de/d06/tutorial_js_basic_ops.html

所以迭代看起来像(这里我以 CV_32S 访问 Mat),

for (let i = 0; i < contours.size(); ++i) {
            let hier = hierarchy.intPtr(0, i)
}

确保您以任何有符号整数格式访问层次结构,否则您无法检查子轮廓的“-1”。


推荐阅读