在轴上显示透明图像(MATLAB)

时间:2014-03-10 01:22:59

标签: matlab image-processing png grayscale

所以我有这个透明的图像(http://imgur.com/fyqslAx),我希望在MATLAB的轴上显示它的透明性。为此,我使用了下面的代码,它与我拥有的其他透明png图像一起使用:

[A, map, alpha] = imread('fyqslAx.png');
h = imshow(A, map)
set(h, 'AlphaData', alpha);

但是,此代码似乎不适用于上面的图像。我猜测这是因为它与灰度图像和深度为1的图像有关,导致地图和alpha中没有任何东西(而我拥有的其他png透明图像,在地图和alpha中有一些东西)。如果我只是用它:

A = imread('fyqslAx.png');
h = imshow(A)

出现黑色背景,图像应该是透明的。

如何在轴上显示此http://imgur.com/fyqslAx的透明度?

编辑:horchler的方法有效;谢谢!

1 个答案:

答案 0 :(得分:3)

如果您运行imfinfo('fyqslAx.png'),您会看到'Transparency'被指定为'simple''SimpleTransparencyData'被设置为0({{1} }})。我找不到相关的文档,但我认为这可能表明alpha通道已被压缩成图像数据,因为图像是二进制和灰度。有效地,图像是二元掩模,无论是透明的还是非透明的。您可以像这样显示图像:

false

如果您尝试使用额外的输出参数从A = imread('fyqslAx.png'); h = imshow(A); set(h, 'AlphaData', A); 返回色彩映射和/或Alpha通道,您会发现两者都是空的。