加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MATLAB图像显示方法

(2012-11-06 10:25:52)
标签:

教育

杂谈

 
1. MATLAB图像的读写和显示 (load  imread imwrite image) 
load clown  %调入变量文件,即含有一幅小丑图像的矩阵
此时三个矩阵:X-200*320  map-81*3  caption-2*1
再学习什么是调色板map.
imshow(X,map)  %显示这一索引图像
若用image(X)命令显示时,显示下图。不能完全表现此图。 
imwrite(X,ma p,'clown_bmp.bmp')  %保存在BMP文件。
i=imshow('clown_bmp.bmp')%再显示此保存的图文件
figure,imshow(i)  %原图的色彩丢,说明存格式转变时,不能完全复原
imgae(i)  %此显示会丢失相关信息
2. 二进制图像的显示方法  
例1
(1)建立一个方格子的二进制图像
bw1=zeros(20:20) ;  *20 矩阵 元素均为0
bw1(2:2:18,2:2:18)=1 ;  %a:b:c为起始位、步长、结束位等元素置为1
(2)显示建立好的二进制图像
imshow(bw1)  %此时能显示图像。注意bw1是双精度型的,所以认为是二值图像
bw2=uint8(bw1); %bw2是无符号8位整数,若显示bw2则几乎是黑的。为什么?
imshow(bw2);
bw3=bw2~=0;%此时bw3为逻辑阵列类型的数据。
imshow(bw3);
例2  使用调色板显示一幅二进制图像
(1)调入一幅图像并显示
bw=imread('circles.tif');
figure,imshow(bw);
(2)用调色板显示一幅图像
figure,imshow(bw,[1 0 0; 0 0 1]); %背景 1  0 0 为红,颜色0 0 1为蓝
figure,imshow(bw,[0 1 0; 0 0 1]);%背景 1 10 0 为绿
figure,imshow(bw,[1 1 0; 0 0 1]);%背景 1 10 0 为黄
3. 灰度图像的显示方法 
i=imread('testpat1.tif');
figure,imshow(i,2) %显示2个灰度级
figure,imshow(i,4) %显示4个灰度级
figure,imshow(i,16) %显示16个灰度级
figure,imshow(i,64) %显示64个灰度级
figure,imshow(i,128) %显示128个灰度级
j=filter2([1 2;-1 -2],i); %对图像i进行滤波,其结果送到j,滤波器为[1 2;-1 -2]
imshow(j,[]) %[]表示自动地标度灰度
4. 索引图像的显示方法   
load clown %调入一个小丑图像
imshow(X);%由于是索图像,调色板最多显示81种颜色,而X数组最大值为81,由于是双精度数,大于等于1均为白。
j=uint8(X) 若要当作灰度图显示,则应转化为无符号8位整数
imshow(j)
imshow(X,map) %索引显示
5. RGB图像的显示方法  
RGB = imread('ngc6543a.jpg'); %RGB为650*600*3
imshow(RGB); 
6. 磁盘图像的直接显示
imshow flowers.tif
2.4 MATLAB特殊显示技术 
添加色带
例1: i=imread('saturn.tif');imshow(i),colorbar
例2: load flujet imshow(X,map),colorbar
显示多帧图像(了解)
mri=uint8(zeros(128,128,1,27));
for frame=1:27
[mri(:,:,:,frame),map]=imread('mri.tif',frame);
end
mov=immovie(mri,map);
movie(mov);
显示多幅图像   
(1)开辟一个图像窗口用figure命令
[x1 map1]=imread('forest.tif');
[x2 map2]=imread('trees.tif');
imshow(x1,map1)
figure,imshow(x2,map2);
(2)将一个窗口划分为多个显示区域
[x1 map1]=imread('forest.tif');
[x2 map2]=imread('trees.tif');
figure
subplot(1,2,1),imshow(x1,map1)
subplot(1,2,2),imshow(x2,map2) %说明使用了新的调色板后,前一个调色板受影响了。这样共享调色板其图像显示不能接受
subplot(1,2,1),subimage(x1,map1)
subplot(1,2,2),subimage(x2,map2)
纹理映射
概念:使用插值法将一幅图像映射至一个曲面网格上。命令warp(x,y,x,i).
[x,y,z]=cylinder;i=imread('testpat1.tif');
figure,imshow(i); warp(x,y,z,i);
图像显示中的常见问题
(1)将彩色图像显示为灰度图像?  其原因是调色板未装载。
(2)二值图像显示为全黑图像? uint8类型的灰度图像变化范围为[0,255]而不是[0,1]
(3)装载的是多帧图像,而MATLAB却仅仅显示一帧图像。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有