需求和问题来源
由于图形图像的语义分割工作中,需要对不同类型的区域,进行标示,但又不能完全覆盖背景图像。这产生了一个新的需求:产生一个带有透明度的图像;
将带有透明度的图像,叠加在原始图像上。
Matlab中的透明度图像
带透明背景的图像,用普通图像软件打开时,比如window自带的照片查看器,会得到一个黑色背景。 我把它叠加在背景图像上我怎样才能把这个展示出来我试过使用alpha函数alpha(image,0),但它将我的整个图像设置为0是否可以将单个像素的alpha设置为0这样我就可以在一个循环中运行每个像素。
我不确定这是否有用,但是当我运行imfinfo('full-active.png')时,我得到:
...
Transparency = 'alpha'
SimpleTransparencyData = []
...
显示带透明度的PNG图像
您可以使用
[im, map, alpha] = imread('full-active.png');
im是图像本身,map是将忽略的颜色的映射,但alpha是图像的透明度信息,其维度与图像一致。
首先调用imshow并记录图像的句柄,然后使用alpha命令使用set通道设置透明度换句话说:
[im, map, alpha] = imread('full-active.png');
f = imshow(im);
set(f, 'AlphaData', alpha);