2012-04-07 19 views
0

OpenCv(JavaCv)で画像の中に画像を置くことは可能ですか? たとえば、私は1000x1000の画像と100x100の画像を持っています。そして、位置600x600では、より大きな画像の中に小さな画像を配置したいと思います。IplImage inside IplImage

青色のボックスが1000x1000のIplImageで、赤色のボックスが100x100のIplImageと言うことができます。 赤いボックスを青色のボックスに入れることは可能ですか?リアルタイムで動作しなければならないので、効率的に計算することが好ましい。

enter image description here

Thxを事前

答えて

4

でこれはPythonであるが、Javaへの変換は、実際に簡単になるだろう。 GetSubRect()Copy()を使用してください。 GetSubRect()は、関心のある矩形のサブアレイを返します(左上の点と幅と高さを指定します)。次に、Copy()を使用して画像をコピーします。 karlphillipが示唆するよう

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) 

また、あなたはSetImageROI()を使用して「関心領域」を指定して、ずっと同じことを行うことができます:

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

そのそれ以外の場合は、あなたのROI、ResetImageROIをリセットすることが非常に重要画像全体ではなくROIのみを表示/保存します。

デモ出力:青

enter image description here赤:enter image description here組み合わせ:この作品enter image description here

+0

Thxをは(あなたの第二の溶液を使用) – Ojtwist

関連する問題