2010-06-18 105 views
0

是否可以輸出圖像以便它們全部位於單個窗口內? 之前,我用來輸出數據只使用OpenCV函數:在Win32應用程序中使用opencv進行圖像顯示

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

所以我改變形象,然後調用:cvShowImage功能等。 但是,如果我想看看多個圖像,那麼每個新圖像都需要顯示其自己的窗口。我想要的是將每個這樣的輸出opencv的窗口放在一個大的主窗口中。

是否可以做到這一點?如何?

回答

1

你將不得不構建一個新的圖像,並將其放入每個img。我不認爲像MATLAB的subplot這樣的內置函數。我建議使用ROI功能將圖像快速複製到大圖像(其中包含其他圖像)的感興趣區域(ROI)。

0

您可以使用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); 

注: 克隆過程做是因爲圖片必須是相同的大小。

享受...

相關問題