opencv - 在 OpenCV 中查找点集的轮廓

标签 opencv computer-vision contour mser

我尝试通过 OpenCV 的 MSER 检测来查找图像上的对象。但是函数 cvExtractMSER 返回的不是轮廓,而是创建图形的点集 (CvSeq):

(1, 4), (2, 3), (2, 4), (3, 2), (3, 3), (3, 4), (4, 1), (4, 2), (4, 3), (4, 4), ...

Area created by set of points

但我只需要轮廓点:

(1, 4), (8, 4), (8, 1), (4, 1)

Highlight needed contour points

如何找到这个轮廓?

我认为,最简单(但不是最快)的方法是:

  • 绘制所有点的黑白图像(如何?逐点?)
  • 使用findContours 在新图像上查找轮廓

最佳答案

findContours() 中的一个选项是传递一个参数,该参数将删除除水平、垂直或对角线上的端点之外的所有点。如果您创建图像并绘制列出的点,则 findContours() 可以为您完成其余工作。

CV_CHAIN_APPROX_SIMPLE compresses horizontal, vertical, and diagonal segments and leaves only their end points. For example, an up-right rectangular contour is encoded with 4 points.

http://opencv.itseez.com/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=findcontours#findcontours

关于opencv - 在 OpenCV 中查找点集的轮廓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10297713/

相关文章:

opencv - calcOpticalFlowPyrLK 水平和垂直流 u,v

machine-learning - 跌倒时识别物体——视点变化

c - 忽略植被运动的运动检测算法?

opencv - 使用 openCV 检测图像中的白色像素簇

c++ - 来自 OpenCV Mat 对象的奇怪像素值

c++ - 使用 estimateRigidTransform 而不是 findHomography

python - OpenCV Python跟踪栏回调

opencv - 计算 HOG 特征

python - 如何在 python 中访问 opencv 轮廓点索引?

python - Matplotlib,在绘图上记录色标但在颜色条图例上记录线性色标