OPENCV - 像素数

时间:2013-04-05 02:55:06

标签: opencv drawing pixel

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

2 个答案:

答案 0 :(得分: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算法逐行计算线上的点。“

答案 1 :(得分: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连接。

你可以在下面的链接中找到line iterator的描述。 http://docs.opencv.org/modules/core/doc/drawing_functions.html#LineIterator