如何获得两个非线性点opencv之间的所有像素位置

时间:2016-04-21 15:22:42

标签: opencv line coordinates pixel

如何沿两个非线性点P1和P2之间的线获得所有像素位置(坐标)?
我的实际工作是改变位于P1和P2之间的像素的值,该像素距离P1特定的距离,为此我需要知道所有的像素坐标。
 使用LineIterator,我可以访问所有像素值。但我不知道如何获得像素坐标 任何人都可以建议我如何获得坐标?

1 个答案:

答案 0 :(得分:0)

cv::LineIterator等级为documented

方法LineIterator::pos返回图像中的当前位置。

看看这个示例代码

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main(int, char** argv)
{
    Mat img(400,400,CV_8UC3,Scalar(0,0,0));

    LineIterator it(img, Point(10,10), Point(200,200), 8);

    for(int i = 0; i < it.count; i++, ++it)
    {
        Point pt= it.pos();
        circle(img,pt,2,Scalar(255,0,0));
    }
    imshow("test",img);
    waitKey();
}