Перейти к содержимому
Compvision.ru
Smorodov

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

Recommended Posts

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

RectangleRegs.jpg

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Мне требуется вырезать наклоненную прямоугольную область на изображении и развернуть ее под прямым углом. Попробовал использовать данный пример, но получается большое искажение. Можно ли это сделать с помощью штатных средств 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 прямоугольник (я поворачивал этим куском относительно центра).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Получаю видео с 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 ...

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Ошибка 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) );

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо вопрос решен. все отлично и без применения опенСВ )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно, конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите пожалуйста каким образом это можно реализовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×