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/

10-09 09:12