2012-04-07 44 views
0

是否可以使用OpenCv(JavaCv)在圖像中放置圖像。 例如,我有一個1000x1000的圖像和一個100x100的圖像。在600x600的位置,我想將較小的圖像放在較大的圖像中。IplImage內部的IplImage

可以說藍框是1000x1000 IplImage,紅框是100x100 IplImage。 是否可以將紅色框放入藍色框中。因爲它必須實時工作,所以計算上相當有效。

enter image description here

THX提前

回答

4

這是Python,但轉換到Java將是真正的輕鬆。使用GetSubRect()Copy()GetSubRect()返回感興趣的矩形子數組(指定左上角的興趣點以及寬度和高度)。然後使用Copy()複製圖像。

import cv 
blue = cv.LoadImage("blue.jpg") 
red = cv.LoadImage("red.jpg") 

sub = cv.GetSubRect(blue, (100, 100, 50, 50)) 
cv.Copy(red,sub) 

cv.ShowImage('blue_red', blue) 
cv.WaitKey(0) 

此外,作爲karlphillip建議你可以指定使用SetImageROI()「利益區域」,以及做同樣的事情:

cv.SetImageROI(blue,(100,100,50,50)) 
cv.Copy(red, blue) 
cv.ResetImageROI(blue) 

它非常重要的重置投資回報率,ResetImageROI,否則你將只顯示/保存投資回報率,而不是整個圖像。

演示輸出:

藍色:enter image description here紅:enter image description here組合:enter image description here

+0

THX這工作(使用你的第二個解決方案) – Ojtwist 2012-04-08 12:31:05