2013-04-05 2 views

ответ

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-подключенного Алгоритм Брешенема ".

+0

Мне нужно написать на языке C# в обертке OpenCV – Kil

+0

Тогда тег для вашего вопроса - EmguCv. –

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

Смежные вопросы