IplImage里面的IplImage

是否可以使用OpenCv(JavaCv)将图像放入图像中。 例如,我有一个1000×1000图像和一个100×100图像。 在600×600位置,我想将较小的图像放在较大的图像中。

让我们说蓝盒子是1000×1000 IplImage,红盒子是100×100 IplImage。 是否可以将红色框放在蓝色框中。 计算相当有效,因为它必须实时工作。

在此处输入图像描述

Thx提前

这是在Python中,但转换到Java将变得非常简单。 使用GetSubRect()Copy()GetSubRect()返回一个感兴趣的矩形子arrays(指定左上角的点,以及宽度和高度)。 然后使用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,而不是整个图像。

演示输出:

蓝色: 在此处输入图像描述 红色: 在此处输入图像描述 结合: 在此处输入图像描述