数字图像处理Matlab-图像显示及格式转换(附代码)

 2024-01-20 05:03:30  阅读 0

目录

1.:

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

(3)熟悉图像矩阵的格式转换。

2.:

练习图像读写命令以及图像文件格式之间的转换

熟悉以下功能模块:

图像文件输入和输出

图像显示:图像扭曲

3.:

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

4. 步骤和: (1) 从硬盘加载图像.tif(使用函数

(2) 在窗口中显示图像(使用函数 image 或) (3) 在图像右侧添加亮度条(使用函数)

图1 原图

缺点:亮度一次从 0 增加到 255

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

图2 使用函数获取图像数据

缺点:部分信息截图。 获得的信息就是图像的灰度值。 矩阵大小等于图像256*256的大小。 由于图像是uint8,所以它的值范围是0-255。

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

图3 不同灰度范围的图像

缺点:图中我用了四张图片进行比较。 大于该范围的变为白色,小于该范围的变为黑色。 可以发现灰度在64-128之间,大约在草坪上。

由于0-63范围内的大多数像素都大于这个范围,所以整体图片会呈现白色。

由于129-255范围内的大多数像素都小于该范围,因此整体图像较暗。

注意:我刚刚开始使用 (f,clims); 函数生成彩色图像。 这是因为在颜色图上执行线性映射。

稍后添加(灰色); 将图像变成灰色。

(6)制作4D图像动画(加载MRI,用于创建动画,使用函数movie播放动画)

图4 将4维图像制作成动画 缺点:这是一部由27张索引图片组成的电影,从数据D的第四维也可以看出。然后这些图片在时间维度上累加起来,形成电影

(7) 在主表面上显示图像(使用扭曲功能)

图 5 在圆柱面上显示图像

图中,画面是在圆柱体上完成的。 从旋转后的图片可以看出,图片只附着在圆柱体的周围,而没有附着在两个底面。如果附着在球上,则附着在整个球上。

注意:一开始圆柱体上只形成一张图片,而且是上下颠倒的,所以需要将两张拼接成一张,并在z值上加一个负号。

图6 将两幅图像拼接在一起后,图像也放置在球体上,如下

图 7 在球体上显示图像

5.(和):

代码:

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);

结果:

写代码并不容易。 既然看到了,不妨点个赞吧~

我也写了很多文章,请关注我~加油~

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码