数字图像处理Matlab-图像的显示与格式变换(附代码)

1.Objectives:

(1)熟悉常用的图像文件格式与格式转换; (2)熟悉图像矩阵的显示方法(灰度、索引、黑白、彩色);
(3)熟悉图像矩阵的格式转换。

2.Experiment Content:

练习图像读写命令 imread 和imwrite 并进行图像文件格式间的转换
熟悉下列函数模块:
图像文件输入输出 imread imwrite
图片显示:colorbar getimage image imagesc immovie imshow subimage truesize warp

3.Experiment Principle:

图像显示和格式转换的基本函数语句

4.Experiment Steps Result and Conlusion:

(1)从硬盘加载图像cameraman.tif (使用函数imread

)

(2)在窗口显示图像 (使用函数 image 或 imshow)

(3)在图像右侧加一个亮度条 (使用函数 colorbar)

图1 原图
图1 原图

Con:从0-255 亮度一次增大

(4)从当前图形窗口(坐标轴)获得图像数据(使用函数getimage)

在这里插入图片描述

图2 使用函数getimage获得图像数据

Con:部分信息截图,这个获得的信息就是这个图像的灰度值,矩阵大小等于图像的大小 256*256 由于图片是uint8,因此其值的范围是0-255。

(5)显示图像从64 到128 的灰度级 (使用函数 imagesc)。

在这里插入图片描述
图3 不同灰度级范围的图像

Con:图中我用了四张图做了对比 大于范围的变成白色,小于范围的变成黑色可以发现灰度在64-128之间的大概在草坪的位置
范围在0-63的由于大部分像素点都大于此范围,图片整体偏白
范围在129-255的由于大部分像素点都小于此范围,图片整体偏黑

:刚开始使用imagesc(f,clims);函数生成彩色图像,那是因为imagesc是进行线性映射,是对色图进行映射。
后来加上colormap(gray);将图像变为灰色。

(6)将一个4-D 图像制成动画(加载mri,用immovie 制作动画, 用函数movie播放动画)

在这里插入图片描述
图4 将一个4-D 图像制成动画Con:这是用27张索引图片组成的movie,从数据D的第四维度上也能看出来,然后将这些图片在时间维度上累加,就构成了movie

(7)把图像显示在一个主面上(使用函数warp)

在这里插入图片描述
图5 把图像显示在一个圆柱面上

图中完成了将图片在圆柱体上的display,从旋转图片可以看出,图片只是贴在了圆柱的四周,并没有贴在两个底面上。要是贴在球上,就是贴在整个球上了

:刚开始在圆柱上形成的图片只有一张且是上下反过来的,所以要将两张拼接成一张再给z值加负号即可。
在这里插入图片描述
图6 将两幅图像拼在一起之后还将图片放到球面上,如下
在这里插入图片描述
图7 把图像显示在一个球面上

5.Appendix(programs and images):

代码:

clear all;clc;
f=imread('E:\数字图像处理\程序与图像\标准图片\camera.tif');  %读取图像,获得信息
imshow(f);%显示图像
hold on;%使前一个显示的图像保留,在下一个显示的时候仍然存在
colorbar;%加亮度条
f1=getimage;%从当前图像窗口获取信息
%getimamge与imread的区别 两者都是获得图像的信息 获取的方式不一样,getimage也可以加参数,代表的是第几幅图 

figure(1);
subplot(2,2,1);
imshow(f); %将原图先显示出来方便做对比
colorbar;
title('原图');    
subplot(2,2,2);
clims=[0 63];  %确定要显示的灰度范围
imagesc(f,clims);%显示图像在制定范围内的灰度级
colorbar;%加亮度条便于观察
title('灰度范围0-63');
subplot(2,2,3);
clims=[64 128];
imagesc(f,clims);%这里显示出64-128的灰度级 小于此灰度级的都变成黑色,大于此灰度级的都变成白色colorbar
title('灰度范围64-128');
subplot(2,2,4);
clims=[129 255];
imagesc(f,clims);%这里显示出129-256的灰度级
colormap(gray);%将图像变为灰色 %colorbar
title('灰度范围129-255'); 

load mri.mat;%加载数据包
mov = immovie(D,map);%immovie返回一个电影结构数组从多个索引图像中, 其中D就是多个索引图像,里面存放了每张索引图片的每个像素点的对应的值是一个m*n*1*k的数组。mn是每张图片的大小,1
%放的是根据索引获得的每个像素点的灰度信息,k代表的是一共有几张索引图片。map就是索引图像的索引colormapimplay(mov);%implay用来播放刚才得到的电影结构 immovie也可以,不过那个的效果不可控放一遍就结束了  

[x,y,z]=cylinder(2,100);%生成一个圆柱体,半径为2,沿着圆柱圆周共有100个等距均匀分布的点
figure(2);
f2=[f,f];
warp(x,y,-z,f2); %将图像f展示在刚才生成的xyz坐标表面
figure(4);
imshow(f2); 

[x,y,z]=sphere;%生成一个球的坐标系
figure(3);
warp(x,y,z,f);

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

码字不易,都看到这里了不如点个赞哦~
在这里插入图片描述
我还写了很多文章,欢迎关注我哦~ 一起加油~

  • 24
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来一块葱花饼

谢谢好兄弟的支持~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值