新浪博客

[转载]matlab图片输出(二) 图片的透明处理

2017-06-20 14:13阅读:

运行如下命令:
[x,y]=meshgrid(1:15,1:15);
tri = delaunay(x,y);
z = peaks(15);
z(z<0)=nan;
H = trisurf(tri,x,y,z);
view(2);
set(gcf,'color','none');
set(gca,'color','none');
grid off;
axis off;
axis([min(x(:)) max(x(:)) min(y(:)) max(y(:))]);
set(gcf,'InvertHardcopy','off');
set(gcf,'paperpositionmode','auto');
set(gca,'position',[0.0 0.0 1 1]);
saveas(gcf,'output.png');
[转载]matlab图片输出(二) <wbr>图片的透明处理
保存为output.png时,灰色网格部分就变成灰色的了。但导入ppt,word等软件是,此灰色部分仍会显示。
[A,MAP] =imread('output.png');
[dim1,dim2,dim3]=size(A);
Alpha=ones(dim1,dim2);

for i=1:dim1
for j=1:dim2
if (A(i,j,1)==204 &A(i,j,2)==204 & A(i,j,3)==204)
Alpha(i,j) = 0;
end
end
end
figure;
imshow(A);
imwrite(A,'output2.png','Alpha',Alpha);
运行后的效果如下:
[转载]matlab图片输出(二) <wbr>图片的透明处理
以上程序,首先读入output.png,A为m*n*3的RGB矩阵.
建立Alpha矩阵,循环整个A矩阵,如果RGB都为204的话,就是灰色部分,令Alpha为0,为透明。
将A矩阵,及Alpha矩阵,同时用imwrite函数输出为outpuu2.png。

我的更多文章

下载客户端阅读体验更佳

APP专享