2013-04-05 126 views
0

我在openCV中加载图像。然后我画点从线(x1,y1)到点(x2,y2)。如何计算该线上的像素?OPENCV - 像素数

回答

0

尝试使用

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

你可以找到其描述here

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

+0

我需要在OpenCV封装器中使用C#语言编写 – Kil 2013-04-05 10:16:51

+0

然后为您的问题标记为EmguCv。 – 2013-04-05 10:45:41

0

可以使用Lineiterator在OpenCV中可用

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