Smorodov 579 Жалоба Опубликовано May 27, 2009 Картинка в картинке (с поворотом и др. афинными преобразованиями) и вырезание прямоугольной области (с афинными преобразованиями) Архив с проектом: PutImageROI.rar Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
anry 0 Жалоба Опубликовано September 20, 2010 Мне требуется вырезать наклоненную прямоугольную область на изображении и развернуть ее под прямым углом. Попробовал использовать данный пример, но получается большое искажение. Можно ли это сделать с помощью штатных средств opencv? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано September 20, 2010 Мне требуется вырезать наклоненную прямоугольную область на изображении и развернуть ее под прямым углом. Попробовал использовать данный пример, но получается большое искажение. Можно ли это сделать с помощью штатных средств 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 прямоугольник (я поворачивал этим куском относительно центра). Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SilAs 0 Жалоба Опубликовано October 31, 2011 Привет ) не знаю в ту ли тему писать ) но чтоб не засорять форум спрошу тут : Получаю видео с 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 ... В чем может быть проблема или как лучше вывести текст в видео. Спасибо ) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано October 31, 2011 Ты смешиваешь С и С++ интерфейсы. Воспользуйся функцией putText. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SilAs 0 Жалоба Опубликовано November 1, 2011 Я пишу на С++, попробовал для интереса поменять на путтекст : Ошибка 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) ); Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано November 1, 2011 Функции PutText и правда нет, есть putText. Немного повнимательней, ну и справку желательно читать. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SilAs 0 Жалоба Опубликовано November 1, 2011 Есть функция cvPutText . я изначально ей хотел пользоваться. сейчас попробую просто putText Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SilAs 0 Жалоба Опубликовано November 1, 2011 Спасибо вопрос решен. все отлично и без применения опенСВ ) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SilAs 0 Жалоба Опубликовано November 1, 2011 И еще вопрос, можно ли выделить на видео ROI и записать его в BMP file ? т.е.идет видео и определенная область ( ROI ) скринится в файлы. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано November 1, 2011 Можно, конечно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
SilAs 0 Жалоба Опубликовано November 1, 2011 Подскажите пожалуйста каким образом это можно реализовать. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано November 1, 2011 Как получать кадры, я думаю, ты знаешь. После для каждого кадра делаешь cvSetImageROI, svSaveImage и cvResetImageROI. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах