我正在尝试使用C ++语言中的openCV从图像上的一行中提取点。该线被编程为在图像上显示,但我需要知道如何从线中提取点并将其输入到文本文件中?
答案 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);
}