【发布时间】:2015-07-14 09:37:49
【问题描述】:
我正在尝试从以下二进制图像中按顺序跟踪/跟踪边界点:
我正在使用 OpenCV (python)。我使用三种方式:
- 应用 Canny 边缘检测来检测边缘。问题是如何得到点的序列?它工作正常,但很难获得边界点的序列
- 理想的选择是检测二值图像上的轮廓。因为轮廓按顺序返回边界点。但是 openCV 轮廓方法没有检测到边界,如结果所示。为什么会这样?
- 检测 Canny 边缘的轮廓。还是漏掉了一些边界??
谁能帮我看看 OpenCV 轮廓是怎么回事?为什么它不跟踪完整的边界。我检测轮廓如下:
contours, hierarchy = cv2.findContours(thresh1,cv2.RETR_TREE ,cv2.CHAIN_APPROX_SIMPLE)
其中 thresh1 是二值图像
【问题讨论】:
-
在结果图中,第一张显示边缘检测,第二张显示在边缘检测到的轮廓,第三张显示直接在二值图像上检测到的轮廓
-
注释 406pts、262pts 和 1062pts 表示什么,这些数字从何而来?它们是 findContours 中轮廓的大小吗?如果是这样,看起来您检测到了很多,但第三张图像可能渲染得不好。你能更详细地解释你想要得到什么吗?是边界中的所有点吗?您将如何将这些映射到下一帧的边界?
-
pts 表示白色像素或边界点的数量.. 我正在尝试检测二进制对象的边界并从上到下依次获取所有边界点的列表.. . 由于某种原因,轮廓检测在二进制对象上根本失败......轮廓检测按顺序返回边界点。边缘检测效果很好,但它不会按顺序返回边界点
标签: c++ opencv image-processing computer-vision opencv3.0