如何使用OpenCV检索坐标?

时间:2014-12-15 13:04:53

标签: c++ opencv

我的要求是从图像中检索所有轮廓及其坐标。 目前我正在使用cvFindContours查找所有轮廓,然后使用“CV_GET_SEQ_ELEM”/“cvGetSeqElem”遍历每个轮廓以检索所有坐标。

现在出现了一个新的要求,其中轮廓的大小需要比实际小x像素。

E.g。 如果发现半径为100像素的圆,则返回的坐标应为97(小于3个像素)像素。简而言之,任何返回的轮廓(任何形状)都将比实际的x像素小。

是否有任何API可以这样做。就像findContours一样,内部比实际点高3个像素。

Image

第一张图像是来源,第二张带黄色部分的图像应作为坐标返回。

谢谢, 乌尼

1 个答案:

答案 0 :(得分:0)

由于没有给出其他建议,以下方法解决了我的问题:

  1. 遍历每个轮廓
  2. 在新的空白处绘制每个轮廓(同一图像的克隆),使用更粗的线条。
  3. 找到粗线的内轮廓
  4. findcontour
    轮廓中的foreach轮廓
    克隆图像
    在图像中设置为0 具有像素宽度n
    的轮廓的drawcontours findcontour
    取内轮廓并存放以备后用 下一个轮廓

    克隆图像
    在图像中设置为0 drawcontours与存储的轮廓