获得非闭合轮廓

时间:2015-02-03 07:36:55

标签: c++ opencv image-processing

我在opencv C ++中应用findcontours方法。问题是我得到的轮廓似乎是非闭合的,线条或曲线,但当我检查像素时它们是重复的,有时是关闭的。例如:

1,1
2,2
3,3
4,4
3,3
2,2
1,1  

我试图获得一半的输出像素,但我意识到这个问题并不总是发生!有时候结果不会加倍。此外,我提到的例子非常理想。有时,起点与终点不同。例如:

1,1
2,2
3,3
4,4
3,3
2,2

代码是:

cv::findContours(canny_output, contours, hierarchy, CV_RETR_LIST, CV_CHAIN_APPROX_NONE, cv::Point(0, 0));

提前致谢:)

进一步说明: 我在图像(canny输出)上应用轮廓,然后我想根据数学标准过滤这些轮廓。为了能够使用这些标准,我需要知道每个轮廓的每个像素的坐标(x,y)。 当我查看轮廓的像素时,它似乎是这样的:

  1,1
    2,2
    3,3
    4,4
    3,3
    2,2
    1,1  

换句话说,线条加倍(彼此相同的两条线)。 为了克服这个问题,我试图简单地删除一半的像素,以便得到这样的东西:

1,1
2,2
3,3
4,4

这种方法在某些轮廓上效果很好,但我意识到有些轮廓会以嘈杂的方式加倍:

http://i.stack.imgur.com/O4HBr.png

我怎么能解决这个问题。 非常感谢

0 个答案:

没有答案