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,而不是整个图像。
演示输出:
蓝色: 红色: 结合: