在 OpenCV 中查找点集的轮廓

Ale*_*tch 5 opencv contour computer-vision 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), ...
Run Code Online (Sandbox Code Playgroud)

由一组点创建的区域

但我只需要轮廓点:

(1, 4), (8, 4), (8, 1), (4, 1)
Run Code Online (Sandbox Code Playgroud)

突出显示所需的轮廓点

我怎样才能找到这个轮廓?

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

  • 用所有点绘制黑白图像(如何?逐点?)
  • 使用findContours了新的图像轮廓发现

kar*_*lip 0

如果我理解正确的话,您正在寻找检测到的物体的角点。

您可以迭代计数列表并编写一个简单的逻辑来通过进行简单的坐标比较来检测 4 个角。