在Matlab中使用imfuse来混合灰度图像的alpha混合
问题描述:
我想在matlab中使用imfuse函数覆盖2灰度图像。在“重叠”区域,我想要拍摄图像A的50%和图像B的50%。我得到的是重叠区域中A和B的总和。此代码演示:在Matlab中使用imfuse来混合灰度图像的alpha混合
A = 50*ones(100,100);
A = padarray(A,[50 50],'both');
RA = imref2d(size(A));
B = 50*ones(100,100);
B = padarray(B,[100 100],'pre');
RB = imref2d(size(B));
[C,RC] = imfuse(A,RA,B,RB,'blend');
imshow(C,RC,[]);
有没有办法来控制混合参数,这样我就可以得到一个50/50混合?
答
一个简单的方法是只除以2的重叠区域:
C(A~=0 & B~=0) = C(A~=0 & B~=0)./2;
这只能如果零专门标志着填充区域。如果任何图像中存在零值,那么这些像素将不会被平均。