matlab中有了RGB的mat文件信息,如何显示成图片
比如说,有个mat文件,里面存放着一张图的RGB通道信息,如何将其合成并且转换成一张图片来输出呢?
图片的显示只要有RGB信息就OK啦,主要是如何把信息组合在一起并且显示出来。
直接上code:
I=load('matlab.mat');%载入你的文件
I1=I.A1(1);%因为我的.mat文件是一个struct(A1),里面是三个cell(单列,4267*10302这么长)
I2=I.A1(2);
I3=I.A1(3);
R=reshape(cell2mat(I1), [4267,10302]);
%cell先转换成mat,再reshape,因为维度长,所以切忌for循环搬运,[]里面是长和宽
G=reshape(cell2mat(I2), [4267,10302]);
B=reshape(cell2mat(I3), [4267,10302]);
map=cat(3,R,G,B);%将RGB组合在一起,cat(dim,a,,c,...)dim表示组合在一起的矩阵个数
for k=1:3
m(:,:,k)=flipud(map(:,:,k));%这一步是把图片上下翻转一下,因为显示的时候上下颠倒了
end
imshow(uint8(m));%显示就好啦
是这样,我把对应的RGB信息先存在.mat里面了,可能村的格式不好,是一个struct的,名字是A1,一个3*1的cell,不过数据结构可以调改,意思到了就OK啦。下面是数据结构和运行后的结果图。
我这是一个全景图,所以维度很大,就是很长很宽啦。
参考:https://blog.****.net/qxqsunshine/article/details/80311222