我有2张图片:前景和背景.前景是一个数字矩阵,范围从-50到300.我通过imagesc显示它.(即这不是RGB图像).背景是RGB图像.
我想先在前景上应用透明蒙版来改变它的外观.这很容易使用
altered_foreground = imagesc(foreground, 'AlphaData', Alphamask)
Run Code Online (Sandbox Code Playgroud)
现在,我想将changed_foreground叠加在背景之上.问题是因为我已经在前台使用了Alphamask,所以我无法通过以下方式叠加它:
imagesc(background)
hold on
bimage = imagesc(altered_foreground)
set(bimage, 'AlphaData', altered_foreground)
Run Code Online (Sandbox Code Playgroud)
(如果我只是想在我要使用的背景上叠加一个未改变的前景,那就不起作用了:
imagesc(background)
hold on
bimage = imagesc(foreground)
set(bimage, 'AlphaData', foreground)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
编辑
以下是数据示例:
前景:

下载图片; 键入以下代码来处理它:
Foreground = im2double(imread('500x_54.jpg'));
Foreground = Foreground + 50*randn(101,1);
Run Code Online (Sandbox Code Playgroud)
我改变的前景可以是一些简单的事情,就像让图像的前100列完全透明(实际上,它有点复杂,我对这些值进行阈值处理)
背景:

同样,下载图像并输入:
Background = imread('2-effect1-500x225.jpg');
Run Code Online (Sandbox Code Playgroud)