Jump to content
Compvision.ru
Dasha92

Вывод изображения поверх видео на одном окне

Recommended Posts

Добрый день, помогите пожалуйста с решением возникшей проблемы. Задача состоит в следующем, есть видеоизображение получаемое с камеры, показывается в соответствующем окне. Нужно в углу вывести небольшой рисунок (64,64 размеры). Решение задачи вижу следующим образом: создаётся одна большая  матрица, туда копируется видеопоток и изображение. Не могу понять как правильно реализовать, а именно копировать маленькое изображение и видео в матрицу, заранее спасибо за ответы. примерный код:

CvMat *img; //64x64 картинка

CvMat *mat_big =(cvSize(1280, 480), CV_8UC3); //создание матрицы

//здесь копирование изображения и видео должно быть

cvShowImage(buff, mat_big); //вывод в окно

 

 

Share this post


Link to post
Share on other sites

не знаю как в С++ но должно быть что-то типа:

cvSetImageROI(mat_big , cvRect(1280-64,480-64,64,64));
cvCopyImage(img, mat_big);
cvResetImageROI(mat_big);

Share this post


Link to post
Share on other sites
1 час назад, iskees сказал:

не знаю как в С++ но должно быть что-то типа:


cvSetImageROI(mat_big , cvRect(1280-64,480-64,64,64));

cvCopyImage(img, mat_big);

cvResetImageROI(mat_big);

Попробовала таким образом, при попытке запуска выводит следующее сообщение:

init done

opengl support available 

Opencv error: assertion failed (rect.width >= 0 && rect.height >= 0 && rect.x <image->... in function cvSetImageROI

 

Share this post


Link to post
Share on other sites
1 час назад, iskees сказал:

не знаю как в С++ но должно быть что-то типа:


cvSetImageROI(mat_big , cvRect(1280-64,480-64,64,64));

cvCopyImage(img, mat_big);

cvResetImageROI(mat_big);

Разобралась, все получилось, спасибо! А как несколько можно добавить? Я так понимаю добавляется ещё один 

CvCopy(img2,mat_big,NULL);

Но как ему задать координаты? Чтобы это изображение не накладывалось поверх img1? 

Share this post


Link to post
Share on other sites
cvSetImageROI это выбор области куда будет "наложено" изображение. выберите другу и копируйте в нее. не забудьте потом сделать 
cvResetImageROI  

Share this post


Link to post
Share on other sites
42 минуты назад, iskees сказал:

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

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.

×