使用OpenCV从行中提取点

时间:2015-06-15 18:13:28

标签: c++ opencv

我正在尝试使用C ++语言中的openCV从图像上的一行中提取点。该线被编程为在图像上显示,但我需要知道如何从线中提取点并将其输入到文本文件中?

1 个答案:

答案 0 :(得分:0)

您可以使用cv::LineIterator类获取栅格线的每个点,例如:

// grabs pixels along the line (pt1, pt2)
// from 8-bit 3-channel image to the buffer
LineIterator it(img, pt1, pt2, 8);
LineIterator it2 = it;
vector<Vec3b> buf(it.count);

for(int i = 0; i < it.count; i++, ++it)
    buf[i] = *(const Vec3b)*it;

// alternative way of iterating through the line
for(int i = 0; i < it2.count; i++, ++it2)
{
    Vec3b val = img.at<Vec3b>(it2.pos());
    CV_Assert(buf[i] == val);
}