我在Mat
所有相同尺寸 對象圖像夫婦我想創建一個BIX cv::Mat
對象中保存所有串聯墊在OpenCV中
所以新矩陣的尺寸爲:widthNew = widthOld x矩陣的數量,高度保持不變。
我發現,這樣的副本可以用做:
void cvCopy(const CvArr* src, CvArr* dst, const CvArr* mask=NULL)
但隨後,怎麼可能被屏蔽了三個矩陣定義的三個不同的時間?
問候, Moataz
我在Mat
所有相同尺寸 對象圖像夫婦我想創建一個BIX cv::Mat
對象中保存所有串聯墊在OpenCV中
所以新矩陣的尺寸爲:widthNew = widthOld x矩陣的數量,高度保持不變。
我發現,這樣的副本可以用做:
void cvCopy(const CvArr* src, CvArr* dst, const CvArr* mask=NULL)
但隨後,怎麼可能被屏蔽了三個矩陣定義的三個不同的時間?
問候, Moataz
你可能想借此看看the source code of cvShowManyImages()
,這是一個函數,需要幾個圖像作爲輸入,並將它們連接成一個單一的三通道圖像顯示:
使用的方法是設置單個大圖像的ROI,然後調整大小 並將輸入圖像複製到單個大圖像。
如果您創建的圖像足夠大以容納其他圖像,則不需要調整它們的大小。
如果您想知道如何在IplImage
< - >cv::Mat
之間轉換,請選擇this thread。
聽起來很有趣,thnx。我想我會複製這個想法來實現類似的使用純cv :: Mat而不是IpImage –
我認爲有一個簡單的方法來做到這一點。 OpenCV有一個沒有記錄的方法,稱爲hconcat()
和vconcat()
。第一個是水平拼接,第二個是垂直拼接。
可以以這種方式使用它們:
Mat A, B;
... //In this part you initialize the Mat A and Mat B.
Mat H, V; //These are the destination matrices
hconcat(A, B, H);
vconcat(A, B, V);
我希望這可以幫助。
目的地可以是相同的來源之一,所以'vconcat(out,out1,out); vconcat(out,out2,out);'在多線程上下文中適用於我(用於組合單個線程的輸出)。 – Izaan
請注意,IplImage的最大尺寸約爲4000 * 4000。您可能還必須降低輸入圖像的分辨率 – jlengrand
遮罩是可選的,您無需定義其中一個。 –
好的。我會記住這一點,thnx –