如何从OpenCV中的一行获得积分?

Aru*_*iRC 10 opencv image-processing computer-vision

cvLine()函数可以给出两个点P1(x1,y1)和P2(x2,y2)的直线.我坚持的是获得这条线上的点而不是直接画出它.

假设我绘制一条线(绿色)AB和另一条线AC.如果我跟随AB线上的所有像素,我会遇到一个点,在我到达B之前,我会遇到黑色像素(包围A的圆的边界).

再次沿着AC上的像素行进时,将会遇到两次黑色像素.

线点

基本上我试图得到(绿色)线上的点,但cvLine()似乎没有返回任何点序列结构.有没有办法使用OpenCV获得这些积分?

一个相当愚蠢的方法是cvLine()在单独的图像上绘制线条,然后在其上找到轮廓,然后遍历点的轮廓CvSeq*(绘制的线条).划痕图像和原始图像具有相同的大小,我们将得到点的位置.就像我说的那样,有点愚蠢.任何开明的方法都会很棒!

jil*_*wit 12

我认为CvLinIterator会做你想要的.