0

我在openCV中加载图像。然后我从 Point(x1,y1) 到 Point(x2,y2) 画线。如何计算那条线上的像素?

4

2 回答 2

0

尝试使用

int cvInitLineIterator(const CvArr* image, CvPoint pt1, CvPoint pt2, CvLineIterator* line_iterator, int connectivity=8, int left_to_right=0)

你可以在这里找到它的描述

"函数初始化线迭代器并返回两个端点之间的像素数。两个点都必须在图像内。初始化迭代器后,可以检索连接两个端点的光栅线上的所有点通过连续调用 CV_NEXT_LINE_POINT 点。使用 4-connected 或 8-connected Bresenham 算法逐个计算线上的点。

于 2013-04-05T06:21:09.770 回答
0

您可以使用 opencv 中提供的 Lineiterator

Point p1={x1,y1}; // point 1
Point p2={x2,y2}; // point 2
LineIterator lineIterator1(lineImg, p1, p2,8);

一旦线迭代器被初始化然后找到线连接p1 and p2使用中存在的像素数

lineIterator1.count

您可以为此线迭代器使用 4 或 8 连接。

您可以在下面的链接中找到线迭代器的描述。http://docs.opencv.org/modules/core/doc/drawing_functions.html#LineIterator

于 2014-08-26T07:14:01.917 回答