How can I add transparency to an image displayed in App Designer UIAxes?

조회 수: 9 (최근 30일)
koray beyaz
koray beyaz 2017년 10월 4일
답변: Image Analyst 2023년 11월 17일
I am using imread for a png image. Since AlphaData is not a property of UIAxes, I cannot use
set(h, 'AlphaData', alpha_data);
Is there any other way to add alpha values to UIAxes?
  댓글 수: 2
koray beyaz
koray beyaz 2017년 10월 10일
In this particular problem I needed the image background color and the UIFigure background color to be the same. I took a png image with transparent background and figured a workaround.
[im,map,alpha]=imread('carblack.png');
im1 = im(:,:,1); %R
im2 = im(:,:,2); %G
im3 = im(:,:,3); %B
zeroel = find(~alpha) ; % Find transparent pixels (background)
im1(zeroel) = [0.81*255]; % Make those pixels a known color
im2(zeroel) = [0.87*255]; % which is the background color
im3(zeroel) = [0.91*255]; % of my UIFigure
imfinal(:,:,1) = im1;
imfinal(:,:,2) = im2;
imfinal(:,:,3) = im3;
%imshow(imfinal,'Parent',app.UIAxes)
DGM
DGM 2023년 11월 17일
It's not clear whether this was relevant, but:
That covers uiimage() objects in a uifigure, image() objects, and direct compositing approaches.

댓글을 달려면 로그인하십시오.

답변 (2개)

Paul Huxel
Paul Huxel 2020년 1월 6일
AlphaData will be a property of the image that is the child of the UIAxes. It can then be set as follows:
app.UIAxes = uiaxes(uifigure); % spoof App Designer UIAxes (for demonstration)
[im,map,alpha] = imread("https://upload.wikimedia.org/wikipedia/commons/2/21/Matlab_Logo.png");
imshow(im,'Parent',app.UIAxes)
set(app.UIAxes.Children,'AlphaData',alpha)

Image Analyst
Image Analyst 2023년 11월 17일

카테고리

Help CenterFile Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by