我在openCV中加载图像。然后我从 Point(x1,y1) 到 Point(x2,y2) 画线。如何计算那条线上的像素?
问问题
471 次
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 回答