我正在使用Matlab函数imtransform使用共形映射扭曲RGB图像(示例https://www.flickr.com/photos/gbachelier/albums/72157677436918822)。
在这些图像中,填充了“FillValues”的空白区域(在示例图像中,0 =黑色)可能是未定义地图。我想直接用透明度填充这些区域以进行其他复合操作,因为如果我将imtransform之后的所有黑色像素转移到透明(Make a pixel transparent in Matlab),这可能会影响其他区域。知道如何在不影响其他区域的情况下使这些区域透明化吗?非常感谢你!
答案 0 :(得分:0)
您可以使用白色图像,所有值均为255,并对其应用相同的变换,并将结果用作透明度的遮罩。
使用公式(您在评论中注明)可以组成两个图像。
示例:
I1=double(imread('klXfF.jpg'));
I2=double(imread('9cEgo.jpg'));
G=double(imread('xHOtx.jpg'))/255;
I3 = uint8(bsxfun(@times, 1-G, I1 ) + bsxfun(@times, G, I2));
%In MATLAB R2016b this notation can be used
% I3 = uint8((1-G) .* I1 + G .* I2);
imwrite(I3, "result.jpg");