0

OpenCv(JavaCv)を使用して画像内に画像を配置することは可能ですか?たとえば、1000x1000の画像と100x100の画像があります。そして、600x600の位置で、小さい画像を大きい画像の中に配置したいと思います。

青いボックスが1000x1000IplImageで、赤いボックスが100x100IplImageであるとします。赤いボックスを青いボックスに入れることは可能ですか。リアルタイムで動作する必要があるため、計算はかなり効率的であることが望ましい。

ここに画像の説明を入力してください

事前にThx

4

1 に答える 1

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)

ROIをリセットすることは非常に重要ResetImageROIです。そうしないと、画像全体ではなく、ROIのみを表示/保存します。

デモ出力:

青:ここに画像の説明を入力してください赤:ここに画像の説明を入力してください組み合わせ:ここに画像の説明を入力してください

于 2012-04-07T15:45:19.247 に答える