cvLine()
函数可以在给定两点 P1(x1,y1) 和 P2(x2,y2) 的情况下绘制一条直线。我坚持的是获取这条线上的点,而不是直接绘制它。
假设我画一条线(绿色)AB 和另一条线 AC。如果我沿着 AB 线上的所有像素走,在到达 B 之前,我会遇到一个黑色像素点(包围 A 的圆的边界)。
再次沿着 AC 线上的像素行进时,将遇到两次黑色像素。
基本上我正在尝试获取(绿色)线上的点,但是 cvLine()
似乎没有返回任何点序列结构。有什么方法可以使用 OpenCV 获得这些点吗?
一种相当愚蠢的方法是在单独的图像上使用 cvLine()
绘制直线,然后在其上找到轮廓,然后遍历该轮廓的 CvSeq*
(画线)为点。划痕图像和原始图像大小相同,我们将获得点的位置。就像我说的,有点傻。任何开明的方法都会很棒!
最佳答案
我认为 CvLinIterator做你想做的。
关于image-processing - 如何从 OpenCV 中的一条线上获取点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6689278/