Использование opencv в приложении Win32 для показа изображений - PullRequest
0 голосов
/ 18 июня 2010

Можно ли выводить изображения так, чтобы все они были внутри одного окна?Раньше я использовал для вывода данных, используя только функции opencv:

cvNamedWindow("Image 1");
cvShowImage("Image 1", img);

Поэтому я меняю изображение, затем вызываю: cvShowImage function и так далее.Но если я хочу посмотреть на более чем одно изображение, то каждое новое изображение должно иметь свое собственное окно, которое нужно показать там. И что я хочу, это поместить каждое такое окно вывода opencv в одно большое главное окно.

Возможно ли это сделать?И как?

Ответы [ 2 ]

1 голос
/ 18 июня 2010

Вам нужно будет создать новое изображение и поместить в него каждое img.Я не думаю, что есть встроенная функция, как MATLAB subplot.Я рекомендую использовать функции ROI для быстрого копирования изображения в интересующую область (ROI) большого изображения (которое содержит остальные).

0 голосов
/ 19 июня 2016

Вы можете показать столько изображений, сколько хотите в одном окне, используя функцию hconcat.Давайте предположим, что ваше исходное изображение было

Mat frame;

Теперь клонируйте или сделайте копию этого изображения, используя

Mat frame1 = frame.clone();//or
Mat frame2;
frame.copyTo(frame1);

Теперь давайте предположим, что ваши выходные изображения

Mat img1,img2,img3,img4;

Теперь, если вы хотите показывать изображения по горизонтали, используйте

hconcat(img1,img2,frame1)//hconcat(input_image1,input_image2,destination_image);

И если вы хотите показывать изображения по вертикали, используйте

frame2.push_back(img1);//main_image.push_back(image_to_be_shown_below);

Этот процесс обрабатывает изображения по одному, поэтомуесли вы хотите показывать 4 изображения рядом, вам нужно вызывать эту функцию 4 раза, как в

hconcat(img1,img2,frame1);
hconcat(frame1,img3,frame1);
hconcat(frame1,img4,frame1);
imshow("Final Image",frame1);

ПРИМЕЧАНИЕ. Процесс клонирования выполнен, поскольку изображения должны быть одинакового размера.

Наслаждайтесь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...