是否可以輸出圖像以便它們全部位於單個窗口內? 之前,我用來輸出數據只使用OpenCV函數:在Win32應用程序中使用opencv進行圖像顯示
cvNamedWindow("Image 1");
cvShowImage("Image 1", img);
所以我改變形象,然後調用:cvShowImage
功能等。 但是,如果我想看看多個圖像,那麼每個新圖像都需要顯示其自己的窗口。我想要的是將每個這樣的輸出opencv的窗口放在一個大的主窗口中。
是否可以做到這一點?如何?
是否可以輸出圖像以便它們全部位於單個窗口內? 之前,我用來輸出數據只使用OpenCV函數:在Win32應用程序中使用opencv進行圖像顯示
cvNamedWindow("Image 1");
cvShowImage("Image 1", img);
所以我改變形象,然後調用:cvShowImage
功能等。 但是,如果我想看看多個圖像,那麼每個新圖像都需要顯示其自己的窗口。我想要的是將每個這樣的輸出opencv的窗口放在一個大的主窗口中。
是否可以做到這一點?如何?
你將不得不構建一個新的圖像,並將其放入每個img
。我不認爲像MATLAB的subplot
這樣的內置函數。我建議使用ROI功能將圖像快速複製到大圖像(其中包含其他圖像)的感興趣區域(ROI)。
您可以使用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);
這個過程processess一張圖像的時間,所以,如果你想顯示並排4圖像的一面,你必須調用這個函數4倍在
hconcat(img1,img2,frame1);
hconcat(frame1,img3,frame1);
hconcat(frame1,img4,frame1);
imshow("Final Image",frame1);
注: 克隆過程做是因爲圖片必須是相同的大小。
享受...