Как передать точки в cvBoundingRect () в OpenCV? - PullRequest
2 голосов
/ 16 июля 2011

Функция cvBoundingRect() может возвращать минимальный ограничивающий прямоугольник, когда я передаю ему последовательность точек в виде структуры CvSeq*, например, как я получаю из cvFindContours().

Однако, когда я хочу найтиминимальный ограничивающий прямоугольник, заключающий две точки (которые у меня есть как CvPoint структуры), функция не принимает аргументы.Как преобразовать две CvPoint структуры в формат, приемлемый для cvBoundingRect()?

edit: ((просто ввод кода))

CvSeqWriter writer;
cvStartWriteSeq( CV_32SC2, sizeof(CvSeq), sizeof(CvPoint), storage, &writer );
CV_WRITE_SEQ_ELEM( pt1, writer );
CV_WRITE_SEQ_ELEM( pt2, writer );
CvSeq* seq_pt = cvEndWriteSeq( &writer ); //two corners-pts in a seq

rect_pt = cvBoundingRect( seq_pt, 0 ); //rect_pt is a CvRect

1 Ответ

3 голосов
/ 16 июля 2011

Здесь - страница, описывающая операции с cvSeqs.У него есть функция для его создания, а затем функция для добавления к нему точки, которую вы можете вызвать дважды.Затем cvBoundingRect () может принять этот cvSeq в качестве параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...