Jump to content
Compvision.ru
Smorodov

Картинка в картинке (с поворотом и др. преобр.) и вырезание прямоугольной области (можно повернутой)

Recommended Posts

Картинка в картинке (с поворотом и др. афинными преобразованиями) и вырезание прямоугольной области (с афинными преобразованиями)

RectangleRegs.jpg

Архив с проектом: PutImageROI.rar

Share this post


Link to post
Share on other sites

Мне требуется вырезать наклоненную прямоугольную область на изображении и развернуть ее под прямым углом. Попробовал использовать данный пример, но получается большое искажение. Можно ли это сделать с помощью штатных средств opencv?

Share this post


Link to post
Share on other sites
Мне требуется вырезать наклоненную прямоугольную область на изображении и развернуть ее под прямым углом. Попробовал использовать данный пример, но получается большое искажение. Можно ли это сделать с помощью штатных средств opencv?

			CvMat		*map_matrix;
IplImage *cropped = cvCreateImage(cvSize(W, H),IPL_DEPTH_8U,3);
/*
* Вырезаем прямоугольный кусочек из исходного изображения x,y,w,h,поворот;
*/
double angle = 30;
map_matrix = cvCreateMat(2, 3, CV_64FC1);
cv2DRotationMatrix(cvPoint2D32f(middlex, -middley), angle, 1.0, map_matrix);
cvSetReal2D(map_matrix, 0, 2, middlex);
cvSetReal2D(map_matrix, 1, 2, middley);
cvGetQuadrangleSubPix(image, cropped, map_matrix);
cvReleaseMat(&map_matrix);[/code]

Этот код вырезает повернутый на angle градусов относительно точки middlex,middley прямоугольник (я поворачивал этим куском относительно центра).

Share this post


Link to post
Share on other sites

Привет ) не знаю в ту ли тему писать ) но чтоб не засорять форум спрошу тут :

Получаю видео с webcam, нужно вставить в определенной точке текст. Пробую так :



		CvFont font;

	    cvInitFont( &font, CV_FONT_HERSHEY_COMPLEX,1.0, 1.0, 0, 1, CV_AA);

	   // используя шрифт выводим на картинку текст

        cvPutText( img, "Hey", pt, &font, CV_RGB(0, 0, 0) );

так вот ругается на 1 параметр в puttext , т.е. говорит что

cvPutText: невозможно преобразовать параметр 1 из 'cv::Mat' в 'CvArr *'

хотя до этого стоит circle (img, .......) , т.е.рисование фигур поддерживается а вот путтекст ругается хотя везде img это mat ...

В чем может быть проблема или как лучше вывести текст в видео. Спасибо )

Share this post


Link to post
Share on other sites

Ты смешиваешь С и С++ интерфейсы. Воспользуйся функцией putText.

Share this post


Link to post
Share on other sites

Я пишу на С++, попробовал для интереса поменять на путтекст :

Ошибка 4 error C3861: PutText: идентификатор не найден

может еще какие идеи ?

вот более полный код

circle( img, center, radius, color, 3, 8, 0 ); // krujo4ek ^_^

// задаём точку для вывода текста

CvPoint pt = cvPoint( center.x, center.y );

CvFont font;

cvInitFont( &font, CV_FONT_HERSHEY_COMPLEX,1.0, 1.0, 0, 1, CV_AA);

// используя шрифт выводим на картинку текст

cvPutText( img, "Hey", pt, &font, CV_RGB(0, 0, 0) );

Share this post


Link to post
Share on other sites

Функции PutText и правда нет, есть putText. Немного повнимательней, ну и справку желательно читать.

Share this post


Link to post
Share on other sites

Есть функция cvPutText . я изначально ей хотел пользоваться.

сейчас попробую просто putText ^_^

Share this post


Link to post
Share on other sites

И еще вопрос, можно ли выделить на видео ROI и записать его в BMP file ? т.е.идет видео и определенная область ( ROI ) скринится в файлы.

Share this post


Link to post
Share on other sites

Как получать кадры, я думаю, ты знаешь.

После для каждого кадра делаешь cvSetImageROI, svSaveImage и cvResetImageROI.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.

×