image-processing - 如何从 OpenCV 中的一条线上获取点?

标签 image-processing opencv computer-vision

cvLine() 函数可以在给定两点 P1(x1,y1) 和 P2(x2,y2) 的情况下绘制一条直线。我坚持的是获取这条线上的点,而不是直接绘制它。

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

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

line points

基本上我正在尝试获取(绿色)线上的点,但是 cvLine() 似乎没有返回任何点序列结构。有什么方法可以使用 OpenCV 获得这些点吗?

一种相当愚蠢的方法是在单独的图像上使用 cvLine() 绘制直线,然后在其上找到轮廓,然后遍历该轮廓的 CvSeq*(画线)为点。划痕图像和原始图像大小相同,我们将获得点的位置。就像我说的,有点傻。任何开明的方法都会很棒!

最佳答案

我认为 CvLinIterator做你想做的。

关于image-processing - 如何从 OpenCV 中的一条线上获取点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6689278/

相关文章:

opencv - 使用openCV上的多个goodfeaturetotrack点进行6自由度检测

java - 在 Java 中将 32 位 float 分配给 4 个整数(RGBA)

c++ - OpenCV 错误 : Assertion Failed in MixChannels(.。)

python - 有没有一种精确的方法来测量Python(3.7)中特定字体的文本大小?

android - 您的设备似乎不支持相机

c - 如果我们从 SAD 算法计算视差值,我们如何使用该值来制作视差图?方法是什么?

image-processing - 调整大小和显示图像

algorithm - 将曲线图案与图像的边缘相匹配

image-processing - 在图像中查找网格

computer-vision - HOG:在对比度归一化步骤中做了什么?