加法混合两个部分重叠的图像OpenCV的
问题描述:
我怎么可能去合成:加法混合两个部分重叠的图像OpenCV的
image A (8x8 RGB) with top left corner at (0,0).
image B (4x4 RGB) with top left corner at (6,6).
通过简单地增加RGB值?
我想我需要从创建尺寸为(10,10)的(黑色)RGB画布开始,并在每个图像的相应位置添加每个图像。
但是如何完成第二步呢?
现在如果偏移量是(6.3,6.3)?有没有处理亚像素叠加的技术?编辑:cvSetImageROI
也许?
答
为什么不使用addWeighted()
来混合图像?您可以在较大图像中创建与较小图像相同大小的ROI,并在其中添加结果。
你不能用我知道的内置函数来做子像素精度。像素(6,6)
的结果如果添加了仅部分覆盖它的图像,那么结果会是什么?你想通过重叠量加权吗?那像素(7,7)
呢?在这种情况下,会有四个像素交叉;是否应该通过重叠量来加权每个加法?
如果你确实想要像这样的像素加权,定义你自己的方法不会太困难,但是会有点乏味,因为你会有很多情况:角落,边和内部会有不同的权重。
处理混合有不同的技术,经常使用的是简单的不断混合(如addWeighted与因子0.5)或重叠部分的线性交叉混合。看看我的答案在https://*.com/questions/22315904/blending-does-not-remove-seams-in-opencv/22324790#22324790如何可以使用/解决某种线性交叉混合。为了“校正”一些子像素偏移量,你可以使用图像变形,它将使用插值。这也可以纠正一些旋转和缩放的偏移量。 – Micka
@Micka在这篇文章上的一些优秀的答案! –