所以我有这个透明的图像(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的方法有效;谢谢!答案 0 :(得分:3)
如果您运行imfinfo('fyqslAx.png')
,您会看到'Transparency'
被指定为'simple'
而'SimpleTransparencyData'
被设置为0
({{1} }})。我找不到相关的文档,但我认为这可能表明alpha通道已被压缩成图像数据,因为图像是二进制和灰度。有效地,图像是二元掩模,无论是透明的还是非透明的。您可以像这样显示图像:
false
如果您尝试使用额外的输出参数从A = imread('fyqslAx.png');
h = imshow(A);
set(h, 'AlphaData', A);
返回色彩映射和/或Alpha通道,您会发现两者都是空的。