2013-04-05 33 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