【发布时间】:2012-08-12 07:48:15
【问题描述】:
问题:使用 surf 绘图时图像失去透明度
我已经想出了如何创建具有透明背景的 png 文件,如许多其他线程中所述。here
但是,当使用 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 生成一个不透明的冲浪图。知道我做错了什么吗?
【问题讨论】:
-
请将代码行缩进四个空格,以便格式化
标签: matlab 3d background png transparent