如何使用给定的蒙版覆盖图片

时间:2012-08-04 20:47:38

标签: opencv overlay javacv

我想在给定图像中叠加图像。我创建了一个带有区域的面具,我可以在这里放置这张图片:

Image Hosted by ImageShack.us http://img560.imageshack.us/img560/1381/roih.jpg

问题是,白色区域包含黑色区域,我无法放置物体。

如何有效地计算子图像必须放在哪里?我知道像PointPolygonTest这样的一些功能。但这需要很长时间。

编辑:

叠加图像必须放在白色的某个地方。 例如,在蓝色矩形的地方。

Image Hosted by ImageShack.us http://img513.imageshack.us/img513/5756/roi2d.jpg

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您想将图像放在面具中完全为白色的区域(与图像一样大)中。

在这种情况下,为了获得有效区域,我会使用与要插入的图像大小相同的内核对掩码应用侵蚀。侵蚀后,所有有效区域将为白色。

你所展示的图像没有200 * 200个完全白色的区域,所以我一定有误解......

但是,如果要计算掩模中黑色最少的区域,可以应用模糊而不是侵蚀,并在模糊蒙版中查找最大强度像素。

在这两种情况下,您都要插入子图像,使其中心位于被侵蚀/模糊蒙版的位置最大强度像素上。

编辑:

如果您有兴趣找到距离任何黑色像素最远的区域来放置子图像,您可以将其中心定义为距离的最大值转换的面具。

祝你好运,