How to change the black color into transparency in png format?

8 Ansichten (letzte 30 Tage)
colorImage = imread('13100.png');
grayImage = rgb2gray(colorImage);
mserRegions = detectMSERFeatures(grayImage);
mserRegionsPixels = vertcat(cell2mat(mserRegions.PixelList));
mserMask = false(size(grayImage));
ind = sub2ind(size(mserMask), mserRegionsPixels(:,2), mserRegionsPixels(:,1));
mserMask(ind) = true;
f=figure();imshow(mserMask,'Border','tight');
maskedimage = immultiply(colorImage, repmat(mserMask, [1, 1, size(colorImage, 3)]));
imshow(maskedimage,'Border','tight');
TransparencyMaskedImage = maskedimage;
TransparencyMaskedImage(repmat(~mserMask, 1, 1, 3)) = ??;
imshow(TransparencyMaskedImage,'Border','tight');

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 9 Mai 2017
To just write it transparent with imwrite, you do not need any of the three lines
TransparencyMaskedImage = maskedimage;
TransparencyMaskedImage(repmat(~mserMask, 1, 1, 3)) = ??;
imshow(TransparencyMaskedImage,'Border','tight');
instead,
imwrite(maskedimage, 'YourFileName.png', 'Transparency', [0 0 0]);
If you want to display the image with transparency, then
mask = double( any(maskedimage, 3) );
image(maskedimage, 'AlphaData', mask ) %notice this is not imshow

Weitere Antworten (0)

Kategorien

Mehr zu Lighting, Transparency, and Shading finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by