создать окно opencv - PullRequest
       7

создать окно opencv

1 голос
/ 03 января 2011

с новым годом.

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

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

Это то, что я делаю, вот код

    cvNamedWindow("stabilized image", CV_WINDOW_AUTOSIZE );
    IplImage* image = cvCreateImage(cvSize(900,650),IPL_DEPTH_8U,3);

    cvZero( image );
    image=cvCloneImage(frame);

    cvShowImage("stabilized image", image );

Ответы [ 2 ]

2 голосов
/ 03 января 2011

Вы должны cvCopy() ваш захваченный кадр в (центр) вашей черной рамки.
Установите ROI того же размера, что и исходный кадр, расположенный в центре вашей черной рамки,и cvCopy() в него.

1 голос
/ 03 января 2011

Окно, созданное с помощью cvNamedWindow , будет иметь размер изображения при установке CV_WINDOW_AUTOSIZE .

Чтобы изменить его размер, вы должны сделать это с:

cvResizeWindow(const char* name, int width, int height)

Так что это должно сделать это:

cvNamedWindow("stabilized image", CV_WINDOW_AUTOSIZE );
IplImage* image = cvCreateImage(cvSize(900,650),IPL_DEPTH_8U,3);

cvZero( image );
image=cvCloneImage(frame);

cvShowImage("stabilized image", image );
cvResizeWindow("stabilized image", 1024, 768);

Проверьте также:

http://opencv.willowgarage.com/documentation/user_interface.html?highlight=cvnamedwindow#cvNamedWindow

...