如何改变黑色到透明png格式吗?

35视图(30天)
colorImage = imread (“13100. png”);
grayImage = rgb2gray (colorImage);
mserRegions = detectMSERFeatures (grayImage);
mserRegionsPixels = vertcat (cell2mat (mserRegions.PixelList));
mserMask = false(大小(grayImage));
印第安纳州= sub2ind(大小(mserMask) mserRegionsPixels (:, 2), mserRegionsPixels (: 1));
mserMask(印第安纳州)= true;
图();f = imshow (mserMask“边界”,“紧”);
maskedimage = immultiply (colorImage repmat (mserMask[1,1,大小(colorImage, 3))));
imshow (maskedimage“边界”,“紧”);
TransparencyMaskedImage = maskedimage;
TransparencyMaskedImage (repmat (~ mserMask, 1, 1, 3)) = ? ?
imshow (TransparencyMaskedImage“边界”,“紧”);

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2017年5月9日
把它写透明imwrite,你不需要任何的三行
TransparencyMaskedImage = maskedimage;
TransparencyMaskedImage (repmat (~ mserMask, 1, 1, 3)) = ? ?
imshow (TransparencyMaskedImage“边界”,“紧”);
相反,
imwrite (maskedimage“YourFileName.png”,“透明”,0 0 0);
如果你想显示图像与透明度,
掩码=双(任何(maskedimage, 3));
图像(maskedimage,“AlphaData”面具)请注意这不是imshow百分比
1评论
梅Synn谭
梅Synn谭 2017年5月9日
编辑:梅Synn谭 2017年5月9日
谢谢你的帮助。祝你有美好的一天

登录置评。

答案(1)

默罕默德Zeeshan艾哈迈德汗
当你图像()或显示亮度图像()或imshow(),通过一个选项“AlphaData”与所需的透明度是一个数组,用1意义完全显示图像和0意义不显示图像(即显示背景完全。)
如果PNG阿尔法信息存储与你读imread(),那么您应该能够直接使用透明的信息。
[YourImage ~, ImageAlpha] = imread ( “YourFile.png” );
图像(YourImage, “AlphaData” ImageAlpha)

类别

找到更多的在图片帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!