use*_*340 5 matlab png image-processing grayscale
所以我有这个透明的图像(http://imgur.com/fyqslAx),我希望在MATLAB的轴上显示它的透明性.为此,我使用了下面的代码,它与我拥有的其他透明png图像一起使用:
[A, map, alpha] = imread('fyqslAx.png');
h = imshow(A, map)
set(h, 'AlphaData', alpha);
Run Code Online (Sandbox Code Playgroud)
但是,此代码似乎不适用于上面的图像.我猜测这是因为它与灰度图像和深度为1的图像有关,导致地图和alpha中没有任何东西(而我拥有的其他png透明图像,在地图和alpha中有一些东西).如果我只是用这个:
A = imread('fyqslAx.png');
h = imshow(A)
Run Code Online (Sandbox Code Playgroud)
出现黑色背景图像应该是透明的.
如何在轴上显示这个http://imgur.com/fyqslAx的透明度?
编辑:霍希勒的方法有效; 谢谢!!
如果运行imfinfo('fyqslAx.png'),您将看到 被'Transparency'指定为'simple'并且被'SimpleTransparencyData'设置为0( false)。我找不到这方面的文档,但我认为这可能表明 Alpha 通道已被压缩到图像数据中,因为图像是二进制和灰度的。实际上,图像是一个二值掩模,透明或不透明。您可以像这样显示您的图像:
A = imread('fyqslAx.png');
h = imshow(A);
set(h, 'AlphaData', A);
Run Code Online (Sandbox Code Playgroud)
如果您尝试使用额外的输出参数返回颜色图和/或 Alpha 通道imread,您将看到两者都是空的。