图像显示 实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
HSV=rgb2hsv(J);%真彩色图像转换为HSV色彩空间图像
RGB=hsv2rgb(HSV);%HSV色彩空间图像转换为真彩色图像
imshow(HSV)%显示HSV色彩空间图像
figure(2)%建立图形窗口2
imshow(RGB)%显示HSV色彩空间图像
ntsc2rgb函数:
%将NTSC模型转换为RGB模型
montage(mri,map); %拼接索引图像
图10 27帧核磁共振图像
分析:显示多帧图像,montage可以同时显示多帧图像的所有帧
例6
mri=uint8(zeros(128,128,1,27)); %产生8位无符号的4维整数数组,其维数128*128*1*27,用来存储27帧核磁共振图像
for frame=1:27
YIQ=rgb2ntsc(J);%真彩色图像转换为YIQ色彩空间图像
imshow(J)%显示图像J
figure(2)%建立图形窗口2
imshow(YIQ)%显示经转换后的YIQ色彩空间图像
rgb2ycbcr函数:
%将RGB模型转换为YCbCr模型
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
imshow(YCbCr)%显示YCbCr空间图像
figure(2)%建立图形窗口2
imshow(RGB)%显示真彩色图像
五、实验小结:
(包括主要实验问题的最终结果描述、详细的收获体会,待解决的问题等)
在此次实验中,由于实验内容更贴近生活应用,因此比起上学期,我们更容易领悟该程序的表达,只是在细节方面还是很容易出错,甚至不容易拐过弯来。但经过此次实验,我们懂得要学着从复杂的程序中剥茧抽丝,把程序尽可能的简单化。
例7
[x,y,z]=cylinder; %纹理映射方式观察,向量X,Y,Z轴定义圆柱面中心线,矩阵X,Y,Z轴确定圆柱面
RGB=imread('LungRGB.jpg'); %RGB=imread('9.jpg') %从图像文件中读取图像数据;
warp(x,y,z,RGB); %将真彩色图像映射到柱面上
评分
实验报告
课程名称医学图像处理
实验名称图像显示
专业班级
姓名
学号
实验日期
实验地点
2015—2016学年度第2学期
一、实验目的
MATLAB的图像处理工具箱提供了多种图像显示和颜色、光照技术。本实验将具体介绍MATLAB中用于图像显示、颜色转换的各个函数的具体用法。
二、实验环境
1、硬件配置:处理器:Intel(R)Core(TM) i7-3770 CPU @3.40GHz 3.40GHz
动画显示z
把真彩图像映射到柱面上
5.图像颜色转换技术
(1)图像的褪色褪色函数imapprox,rgb2ind
(2)练习使用颜色模型转换函数:rgb2hsv,hsv2rgb,ntsc2rgb,rgb2ntsc,rgb2ycbcr,ycbcr2rgb,rgb2gray,im2bw
四、实验结果与分析
(包括实验原理、数据的准备、运行过程分析、源程序(代码)、图形图象界面等)
当用imshow显示另一图像时,MATLAB会字屏幕上用新图像替换旧图像。为保持第一幅图像并显示第二幅图像,可以用figure函数。
在练习使用颜色模型转换函数的时候,要注意先读取图像,再执行语句,显示图像,不然会出错。
手写签名:
imshow(I2,[]),colorbar %在I2图像旁边垂直方向,加上颜色条
图7 cell.Tif图8锐化图和颜色条
分析:添加颜色条;Sobel算子主要是滤波作用,加强边缘和细节,削弱图像中的低频分量,具有高通滤波特性。
例4
mri=uint8(zeros(128,128,1,27));%产生8位无符号的4维整数数组,其维数128*128*1*27,用来存储27帧核磁共振图像
HSV=rgb2hsv(J);%真彩色图像转换为HSV色彩空间图像
imshow(J)%显示图像J
figure(2)%建立图形窗口2
imshow(HSV)%显示经转换后的HSV色彩空间图像
图15 RGB图像图16 HSV图像
rgb2ntsc函数:
%将RGB模型转换为NTSC模型
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
rgbmap=imread('canoe.tif')
cmap=rgb2hsv(rgbmap)
rgb_image=imread('canoe.tif')
hsv_image=rgb2hsv(rgb_image)或者源自%将RGB模型转换为HSV模型
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
subplot(122); %生成一行二列的子图,这是第二个子图
imshow(J,[0,100]); %在灰度范围[0,100]内显示图像
图3原eight图图4灰度图像
分析:显示灰度图像
例2
BW=imread('eight.tif '); %读取图像
imshow(BW) %显示二值图像
figure(2) %用figure函数,保持第一幅图像同时显示第二幅图像
注意:此处的单引号用以界定filename字符串。
如命令行:f=imread(‘d:\image\rice.tif’);
将TIFF图像rice.tif读入图像数组f。命令行结尾处的分号用于取消输出。若命令行未包含分号,则MATLAB会立即显示该行命令的运算结果。MATLAB桌面工具条上的当前目录窗口会显示MATLAB的当前工作路径。当filename中不包含任何路径信息时,imread会从当前目录中寻找并读取图像文件。
函数size可以给出一幅图像的行数和列数:
size(f)
ans=
256 256
也可以使用如下形式自动确定一幅图像的大小:
[M,N]=size(f);
将返回图像的行数(M)和列数(N)。
2.显示图像
使用函数imshow
3.保存图像
使用函数imwrite
4.特殊图像显示技术
添加颜色条
显示多图像序列
显示多帧图像
imshow(~BW) %显示颜色反转后的二值图像
图5二值图像图6颜色反转后的二值图像
分析:显示二值图像
例3
I=imread('cell.tif');%读取图像
imshow(I);%显示图像
H=[1 2 1;0 0 0;-1 -2 -1]; %生成x方向上的Sobel算子模板
I2=filter2(H,I); %以H模板进行filter傅里叶变换
imshow(X,map) %显示索引图像,X为数据图像矩阵,map是调色板
figure,imshow(Y,newmap) %用figure函数,保持第一幅图像同时显示第二幅图像对比原图
图13原canoe图图14褪色后的图像
分析:图像的褪色,用20种颜色代替原来的256种颜色。
颜色模型转换函数
rgb2hsv函数:
imshow(J,20);%以灰度等级20显示图
图1原eight图图2灰度图像
因为在机房无法以灰度等级20显示图,所以下面用增大灰度范围显示图像
J=imread('eight.tif'); %读取图像
subplot(121); %生成一行二列的子图,这是第一个子图
imshow(J,[100,200]); %在灰度范围[100,200]内显示图像
for frame=1:27
[mri(:,:,:,frame),map]=imread('mri.tif',frame);%循环读出多帧图像中的每一幅图像,共有27帧
end
imshow(mri(:,:,:,3),map); %显示第3帧图像
图9第3帧核磁共振图像
分析:显示多帧图像中的第3帧;map是调色板矩阵,用于存储该索引色图像相关的颜色映射表
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
NTSC=rgb2ntsc(J);%真彩色图像转换为YIQ色彩空间图像
RGB=ntsc2rgb(NTSC);%YIQ色彩空间图像转换为真彩色图像
imshow(NTSC)%显示YIQ色彩空间图像
figure(2)%建立图形窗口2
[mri(:,:,:,frame),map]=imread('mri.tif',frame);%循环读出多帧图像中的每一幅图像,共有27帧
end
mov=immovie(mri,map); %构建动画文件
movie(mov); %播放动画
图11动画显示的最后一帧核磁共振图像
分析:按顺序动画显示27帧图像
Ycbcr=rgb2ycbcr(J);%真彩色图像转换为YCbCr空间图像
imshow(J)%显示图像J
figure(2)%建立图形窗口2
imshow(Ycbcr)%显示经转换后的YCbCr空间图像
hsv2rgb函数:
%将HSV模型转换为RGB模型
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
安装内存(RAM):4.00GB系统类型:64位操作系统
2、软件环境:MATLAB R2013b软件
三、实验内容
1.读取图像
使用函数imread
使用函数imread可以将图像读入MATLAB环境,imread的语法为imread(‘filename’)
其中,filename是一个含有图像文件全名的字符串(包括任何可用的扩展名)。
注:本项可以增加页数
例1
J=imread('eight.tif');%将TIFF图像eight.tif读入图像数组J
subplot(121);%把绘图窗口分成一行两列两块区域,在第一块区域绘图
imshow(J,[100,200]); %在灰度范围[100,200]内显示图像
subplot(122);%在第二块区域绘图
在实验中应注意的点:
在编写运行文件的时候要选择正确的路径,图片保存在哪里,就应该选择哪里,不然就会出现读取错误。
显示图像中的以灰度级20显示图像的时候,因为灰度级定义得太小,导致无图像显示,这时我们可以用增大灰度级的方法,imshow(J,100);或imshow(J,[0,100]);显示部分图像信息.
例5
mri=uint8(zeros(128,128,1,27)); %产生8位无符号的4维整数数组,其维数128*128*1*27,用来存储27帧核磁共振图像
for frame=1:27 %循环过程从1至27
[mri(:,:,:,frame),map]=imread('mri.tif',frame); %读入图像至fram中,每次循环都存储在mri中,并给出其色谱值end
图12真彩图的映射
分析:把真彩色图像映射到柱面上,三维图像卷起生成
例8
[X,map]=imread('canoe.tif'); %读取索引图像
[Y,newmap]=imapprox(X,map,20); %利用彩色映射newmap返回一个数组Y,该数组最多有20种颜色;用20种颜色代替原来的256种颜色。X可以是uint8类,uint16类或double类;若n小于256,则Y是uint8类,若n大于256,则Y是double类。
imshow(RGB)%显示真彩色图像
ycbcr2rgb函数:
%将YCbCr模型转换为RGB模型
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
YCbCr=rgb2ycbcr(J);%真彩色图像转换为YCbCr空间图像
RGB=ycbcr2rgb(YCbCr);%YCbCr空间图像转换为真彩色图像
RGB=hsv2rgb(HSV);%HSV色彩空间图像转换为真彩色图像
imshow(HSV)%显示HSV色彩空间图像
figure(2)%建立图形窗口2
imshow(RGB)%显示HSV色彩空间图像
ntsc2rgb函数:
%将NTSC模型转换为RGB模型
montage(mri,map); %拼接索引图像
图10 27帧核磁共振图像
分析:显示多帧图像,montage可以同时显示多帧图像的所有帧
例6
mri=uint8(zeros(128,128,1,27)); %产生8位无符号的4维整数数组,其维数128*128*1*27,用来存储27帧核磁共振图像
for frame=1:27
YIQ=rgb2ntsc(J);%真彩色图像转换为YIQ色彩空间图像
imshow(J)%显示图像J
figure(2)%建立图形窗口2
imshow(YIQ)%显示经转换后的YIQ色彩空间图像
rgb2ycbcr函数:
%将RGB模型转换为YCbCr模型
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
imshow(YCbCr)%显示YCbCr空间图像
figure(2)%建立图形窗口2
imshow(RGB)%显示真彩色图像
五、实验小结:
(包括主要实验问题的最终结果描述、详细的收获体会,待解决的问题等)
在此次实验中,由于实验内容更贴近生活应用,因此比起上学期,我们更容易领悟该程序的表达,只是在细节方面还是很容易出错,甚至不容易拐过弯来。但经过此次实验,我们懂得要学着从复杂的程序中剥茧抽丝,把程序尽可能的简单化。
例7
[x,y,z]=cylinder; %纹理映射方式观察,向量X,Y,Z轴定义圆柱面中心线,矩阵X,Y,Z轴确定圆柱面
RGB=imread('LungRGB.jpg'); %RGB=imread('9.jpg') %从图像文件中读取图像数据;
warp(x,y,z,RGB); %将真彩色图像映射到柱面上
评分
实验报告
课程名称医学图像处理
实验名称图像显示
专业班级
姓名
学号
实验日期
实验地点
2015—2016学年度第2学期
一、实验目的
MATLAB的图像处理工具箱提供了多种图像显示和颜色、光照技术。本实验将具体介绍MATLAB中用于图像显示、颜色转换的各个函数的具体用法。
二、实验环境
1、硬件配置:处理器:Intel(R)Core(TM) i7-3770 CPU @3.40GHz 3.40GHz
动画显示z
把真彩图像映射到柱面上
5.图像颜色转换技术
(1)图像的褪色褪色函数imapprox,rgb2ind
(2)练习使用颜色模型转换函数:rgb2hsv,hsv2rgb,ntsc2rgb,rgb2ntsc,rgb2ycbcr,ycbcr2rgb,rgb2gray,im2bw
四、实验结果与分析
(包括实验原理、数据的准备、运行过程分析、源程序(代码)、图形图象界面等)
当用imshow显示另一图像时,MATLAB会字屏幕上用新图像替换旧图像。为保持第一幅图像并显示第二幅图像,可以用figure函数。
在练习使用颜色模型转换函数的时候,要注意先读取图像,再执行语句,显示图像,不然会出错。
手写签名:
imshow(I2,[]),colorbar %在I2图像旁边垂直方向,加上颜色条
图7 cell.Tif图8锐化图和颜色条
分析:添加颜色条;Sobel算子主要是滤波作用,加强边缘和细节,削弱图像中的低频分量,具有高通滤波特性。
例4
mri=uint8(zeros(128,128,1,27));%产生8位无符号的4维整数数组,其维数128*128*1*27,用来存储27帧核磁共振图像
HSV=rgb2hsv(J);%真彩色图像转换为HSV色彩空间图像
imshow(J)%显示图像J
figure(2)%建立图形窗口2
imshow(HSV)%显示经转换后的HSV色彩空间图像
图15 RGB图像图16 HSV图像
rgb2ntsc函数:
%将RGB模型转换为NTSC模型
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
rgbmap=imread('canoe.tif')
cmap=rgb2hsv(rgbmap)
rgb_image=imread('canoe.tif')
hsv_image=rgb2hsv(rgb_image)或者源自%将RGB模型转换为HSV模型
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
subplot(122); %生成一行二列的子图,这是第二个子图
imshow(J,[0,100]); %在灰度范围[0,100]内显示图像
图3原eight图图4灰度图像
分析:显示灰度图像
例2
BW=imread('eight.tif '); %读取图像
imshow(BW) %显示二值图像
figure(2) %用figure函数,保持第一幅图像同时显示第二幅图像
注意:此处的单引号用以界定filename字符串。
如命令行:f=imread(‘d:\image\rice.tif’);
将TIFF图像rice.tif读入图像数组f。命令行结尾处的分号用于取消输出。若命令行未包含分号,则MATLAB会立即显示该行命令的运算结果。MATLAB桌面工具条上的当前目录窗口会显示MATLAB的当前工作路径。当filename中不包含任何路径信息时,imread会从当前目录中寻找并读取图像文件。
函数size可以给出一幅图像的行数和列数:
size(f)
ans=
256 256
也可以使用如下形式自动确定一幅图像的大小:
[M,N]=size(f);
将返回图像的行数(M)和列数(N)。
2.显示图像
使用函数imshow
3.保存图像
使用函数imwrite
4.特殊图像显示技术
添加颜色条
显示多图像序列
显示多帧图像
imshow(~BW) %显示颜色反转后的二值图像
图5二值图像图6颜色反转后的二值图像
分析:显示二值图像
例3
I=imread('cell.tif');%读取图像
imshow(I);%显示图像
H=[1 2 1;0 0 0;-1 -2 -1]; %生成x方向上的Sobel算子模板
I2=filter2(H,I); %以H模板进行filter傅里叶变换
imshow(X,map) %显示索引图像,X为数据图像矩阵,map是调色板
figure,imshow(Y,newmap) %用figure函数,保持第一幅图像同时显示第二幅图像对比原图
图13原canoe图图14褪色后的图像
分析:图像的褪色,用20种颜色代替原来的256种颜色。
颜色模型转换函数
rgb2hsv函数:
imshow(J,20);%以灰度等级20显示图
图1原eight图图2灰度图像
因为在机房无法以灰度等级20显示图,所以下面用增大灰度范围显示图像
J=imread('eight.tif'); %读取图像
subplot(121); %生成一行二列的子图,这是第一个子图
imshow(J,[100,200]); %在灰度范围[100,200]内显示图像
for frame=1:27
[mri(:,:,:,frame),map]=imread('mri.tif',frame);%循环读出多帧图像中的每一幅图像,共有27帧
end
imshow(mri(:,:,:,3),map); %显示第3帧图像
图9第3帧核磁共振图像
分析:显示多帧图像中的第3帧;map是调色板矩阵,用于存储该索引色图像相关的颜色映射表
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
NTSC=rgb2ntsc(J);%真彩色图像转换为YIQ色彩空间图像
RGB=ntsc2rgb(NTSC);%YIQ色彩空间图像转换为真彩色图像
imshow(NTSC)%显示YIQ色彩空间图像
figure(2)%建立图形窗口2
[mri(:,:,:,frame),map]=imread('mri.tif',frame);%循环读出多帧图像中的每一幅图像,共有27帧
end
mov=immovie(mri,map); %构建动画文件
movie(mov); %播放动画
图11动画显示的最后一帧核磁共振图像
分析:按顺序动画显示27帧图像
Ycbcr=rgb2ycbcr(J);%真彩色图像转换为YCbCr空间图像
imshow(J)%显示图像J
figure(2)%建立图形窗口2
imshow(Ycbcr)%显示经转换后的YCbCr空间图像
hsv2rgb函数:
%将HSV模型转换为RGB模型
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
安装内存(RAM):4.00GB系统类型:64位操作系统
2、软件环境:MATLAB R2013b软件
三、实验内容
1.读取图像
使用函数imread
使用函数imread可以将图像读入MATLAB环境,imread的语法为imread(‘filename’)
其中,filename是一个含有图像文件全名的字符串(包括任何可用的扩展名)。
注:本项可以增加页数
例1
J=imread('eight.tif');%将TIFF图像eight.tif读入图像数组J
subplot(121);%把绘图窗口分成一行两列两块区域,在第一块区域绘图
imshow(J,[100,200]); %在灰度范围[100,200]内显示图像
subplot(122);%在第二块区域绘图
在实验中应注意的点:
在编写运行文件的时候要选择正确的路径,图片保存在哪里,就应该选择哪里,不然就会出现读取错误。
显示图像中的以灰度级20显示图像的时候,因为灰度级定义得太小,导致无图像显示,这时我们可以用增大灰度级的方法,imshow(J,100);或imshow(J,[0,100]);显示部分图像信息.
例5
mri=uint8(zeros(128,128,1,27)); %产生8位无符号的4维整数数组,其维数128*128*1*27,用来存储27帧核磁共振图像
for frame=1:27 %循环过程从1至27
[mri(:,:,:,frame),map]=imread('mri.tif',frame); %读入图像至fram中,每次循环都存储在mri中,并给出其色谱值end
图12真彩图的映射
分析:把真彩色图像映射到柱面上,三维图像卷起生成
例8
[X,map]=imread('canoe.tif'); %读取索引图像
[Y,newmap]=imapprox(X,map,20); %利用彩色映射newmap返回一个数组Y,该数组最多有20种颜色;用20种颜色代替原来的256种颜色。X可以是uint8类,uint16类或double类;若n小于256,则Y是uint8类,若n大于256,则Y是double类。
imshow(RGB)%显示真彩色图像
ycbcr2rgb函数:
%将YCbCr模型转换为RGB模型
J=imread('LungRGB.jpg');%读入文件名为LungRGB.jpg的图像
YCbCr=rgb2ycbcr(J);%真彩色图像转换为YCbCr空间图像
RGB=ycbcr2rgb(YCbCr);%YCbCr空间图像转换为真彩色图像