我正在寻找一种快速方法将重叠块合并到一个图像中。假设完整图像的大小和完整图像内每个块的坐标是已知的。还假设这些块在水平和垂直方向上有规律地间隔开。
在重叠区域中,输出图像中的像素应该根据重叠块中的对应像素的加权平均值获得值。重量应与距离中心的距离成比例。
因此,例如,在块p
和B1
之间的重叠区域中取一个像素位置B2
(相对于完整图像坐标)。假设重叠区域仅归因于大小为h
的水平移位。如果B1(p)
和B2(p)
是该区域B1
,B2
和d1
中显示的值,则d2
分别为p
和B1
B2
距离块O
和p
的中心距离,然后在输出图像O(p) = (h-d1)/h*B1(p) + (h-d2)/h*B2(p)
中,位置blockproc
将获得imfuse
。
请注意,通常情况下,任何地区最多可以有4个重叠的块。
我正在寻找在Matlab中执行此操作的最佳方法。希望任何距离函数的选择。
bwdist
等同样可以帮助将图像分割成块,但允许非常基本的结果组合。 {{1}}接近我的需要,但仅提供简单的非加权alpha混合。 {{1}}似乎很有用,但我还没有想到使用它的最有效方法是什么。
答案 0 :(得分:0)
您应该使用im2col
命令
将所有补丁都放在一个矩阵中的矢量中后,您就可以处理列(每个补丁的过滤)和行(补丁之间的过滤)。
它比im2col
的经典用法更棘手,但它应该有用。