問題 : surf を使用してプロットすると、画像の透明度が失われます
他の多くのスレッドで説明されているように、背景が透明なpngファイルを作成する方法をすでに理解しています。ここ
ただし、surf.m を使用してプロットすると、画像が透明になりません
これが私がこれまでに持っているコードです:
img = imread('image.png');
A1 = ones(size(img));A2 = ones(size(img));A3 = ones(size(img));
A1(img(:,:,1)==0)=0;A2(img(:,:,2)==0)=0;A3(img(:,:,3)==0)=0;
A = A1+A2+A3;
A= A(:,:,1);
imwrite(img,'test.png','alpha',A);
[img,map,alpha] = imread('test.png');
ximage = [-.5,.5;-.5,.5];
yimage = [0,0;0,0];
zimage = [.5,.5;-.5,-.5];
surf(ximage,yimage,zimage,'Cdata',img,'Facecolor','texturemap','Edgecolor','none','alphadata',alpha);
axis vis3d
このコードは、image.png (青い正方形) を背景が透明な (黒い背景を取り除く) test.png に変換します。次に、test.png を使用してサーフ プロットを生成しますが、透明ではないことがわかります。私が間違っていることは何ですか?