数字图像处理实验指导书
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11 April 2020
10
实验方法、步骤
5.显示、查看读入图像、分解图像、转换图像;
• 用imshow()和imview()显示和查看各图像; • 用下面命令序列在一个视窗显示各图像:
subplot(231);imshow(I);title(‘原始图像’); subplot(233);imshow(I_Gray);title(‘灰度图像’); subplot(234);imshow(I_R);title(‘红色分量‘); subplot(235);imshow(I_G);title(‘绿色分量‘); subplot(236);imshow(I_B);title(‘蓝色分量‘);
数字图像处理实验指导书
谢洪波 河南理工大学
实验一 熟悉图像处理的Matlab平台
实验目的
熟悉Matlab的工作环境,掌握Matlab下矩 阵的基本操作,熟练掌握Matlab下图像 处理的基本操作(读、分解、转换、显 示、查看、写文件)。
11 April 2020
2
实验内容
1. 设置当前工作目录; 2. 读入一幅RGB图像,查看图像信息; 3. 将读入的图像分解为R、G、B三幅图像分别保存为
11 April 2020
5
11 April 2020
6
实验方法、步骤
2.读入一幅RGB图像,查看图像信息
在“Command”窗口的命令提示符“>>”后输入 “I=imread(‘ss.jpg’)命令,读入RGB图像“ss.jpg”,数据存 在“I”矩阵中;
在“Command”窗口的命令提示符“>>”后输入 “imfinfo(‘ss.jpg’)命令,显示图像“ss.jpg”文件信息。
% 提取特征分量和细节分量 a1=wrcoef2('a',c,s,'haar'); h1=wrcoef2('h',c,s,'haar'); v1=wrcoef2('v',c,s,'haar'); d1=wrcoef2('d',c,s,'haar');
11 April 2020
%显示一次小波分解各分量图像 subplot(232) a1=uint8(a1); imshow(a1) title('一次小波分解特征分量图像') subplot(235) h1=uint8(h1); imshow(h1) title('一次小波分解水平细节分量图像') subplot(233) v1=uint8(v1); imshow(v1) title('一次小波分解垂直细节分量图像') subplot(236) d1=uint8(d1); imshow(d1) title('一次小波分解对角细节分量图像')
11 April 2020
7
11 April 2020
8
实验方法、步骤
3.将读入的图像分解为R、G、B三幅图像分别保存为
三个图像文件;
在“Command”窗口的命令提示符“>>”后分别输入 “I_R=I”、“I_G=I;、“I_G=I”,拷贝“I”的3个副本分别 存入矩阵“I_R”、“I_G”、“I_B”中;
subplot(223)
imshow(A); title('傅立叶频谱图像') sfft_I=fftshift(fft_I); % 傅立叶频谱平面中心移至窗口中心
A=abs(sfft_I); %将频谱矩阵元素归一化到0~255
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255;
用I_R(:,:,2)=0;”、I_R(:,:,3)=0;”、“I_G(:,:,1)=0;”、 “I_G(:,:,3)=0;”和“I_B(:,:,1)=0;”、“I_B(:,:,2)=0;”使得 “I_R”、“I_G”、“I_B”保留的分别只有R、G、B分量。
分别用“imwrite(I_R,’ss_R.jpg’)”、
标原点移至窗口中心的FFT频谱图、DCT频谱图以 及1级小波分解图像; 5. 独立撰写实验报告
11 April 2020
16
实验方法、步骤
1.读入一幅图像,对其灰度图作快速傅立叶变换。
• 用imread()函数读如工作目录下的“风光壁纸33.jpg”图 像存于I矩阵中,用rgb2gray()函数将其转换成灰度图像;
“imwrite(I_R,’ss_G.jpg’)”和“imwrite(I_R,’ss_B.jpg’)”将它
们分别写入“ss_R.jpg”、“ss_G.jpg”和“ss_B.jpg”磁盘文
11 April 2件02中0 。
9
实验方法、步骤
4.将读入的图像转换成灰度图像并保存为图象文件;
在“Command”窗口的命令提示符“>>”后分别输入 “I_Gray=rgb2gray(I)” 将图像转变为灰度图像并存于矩阵 “I_Gray”中,用“imwrite(I_Gray,’ss_Gray.jpg’)”将其写入 ss_Gray.jpg”磁盘文件中。
11 April 2020
14
实验内容
1. 在Matlab下读入一幅图像,对其灰度图作 快速傅立叶变换;
2. 在Matlab下读入一幅图像,对其灰度图作 DCT变换;
3. 在Matlab下读入一幅图像,对其作DWT分 解。
11 April 2020
15
实验要求
1. 独立完成各项实验内容; 2. 记录每一项实验内容实现的步骤; 3. 编写FFT、DCT、DWT变换Matlab程序; 4. 打印输出原始图像、FFT的频谱图、将频率平面坐
• 点击“Two-Dimensional” 框架中的“Wavelet 2-d” 按钮,弹出“Wavelet 2-d”窗体;
11 April 2020
23
11 April 2020
24
11 April 2020
25
实验方法、步骤
• 点击“File”菜单,选“Load”→“Image”,选择 要做小波分解的图像”;
imshow(I); title('原始图像')
I=rgb2gray(I);
subplot(222)
imshow(I); title('灰度图像') fft_I=fft2(I); % 2-D快速傅立叶变换
A=abs(fft_I); %将频谱矩阵元素归一化到0~255
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255;
• 读入进行小波分解的图像,并把它转成灰度图 像,存于一个矩阵中,如:X;
• 用wavedct2函数对X进行分解,该函数的格式 如下:
[C,S] = wavedt2(X,N,'wname') • 用相关命令输出各图像 • 附:Xbfj.m文件
11 April 2020
28
Xbfj.m文件内容
%小波图像分解 clear clc X=imread('风光壁纸(蓝色主题)8.jpg'); subplot(231) imshow(X) title('原始图像') X=rgb2gray(X); subplot(234) imshow(X) title('原始灰度图像') % 对图象用2D小波进行一次分解 [c,s]=wavedec2(X,1,'haar');
• 用subplot()函数及imshow函数在同一窗Βιβλιοθήκη Baidu下显示原始图 像、灰度图像、FFT频谱图及移动后的频谱图。
• 附:FLY.m文件
11 April 2020
17
Fly.m文件内容
% 快速傅立叶变换,显示原始RGB图像、灰度图像、FFT频谱图
function fly(I)
subplot(221)
11 April 2020
32
实验三 图像增强与复原
实验目的
了解图像增强与复原的体系结构;熟悉灰 度变换、直方图修正、图像平滑、图像 锐化及伪彩色处理在数字图像增强方面 的作用及各自的特点;掌握图像增强的 灰度变换法、直方图修正法,掌握图像 平滑、图像锐化的滤波器设计方法,掌 握图像的伪彩色处理方法。
subplot(224)
imshow(A); title('原点移到中心的傅立叶频谱图像')
11 April 2020
18
11 April 2020
19
实验方法、步骤
2.读入一幅图像,对其灰度图作DCT变换。
• 用imread()函数读如工作目录下的“显微煤岩照 片.JPG”图像存于I矩阵中,用rgb2gray()函数将 其转换成灰度图像;
• 附:Lsyx_pp.m文件
11 April 2020
20
Lsyx_pp.m文件内容
% DCT变换,显示原始RGB图像、灰度图像、DCT频谱图
function lsyx_pp(I)
subplot(221)
imshow(I); title('原始图像')
I=rgb2gray(I);
subplot(223)
21
11 April 2020
22
实验方法、步骤
3.读入一幅图像,对其作DWT分解。
Matlab下对一幅图象进行小波分解有两种方 法,一是利用Mtlab提供的“小波工具 箱”,二是编写Matlab程序。
方法一:
• 点击“Start”按钮,选 “Toolbox”→“More…”→“Wavelet”→“Wavelet Main Menu (wavemenu)”,弹出“Wavelet Main Menu ”窗体;
• 从“Wavelet”列表中选择合适的小波母函数; • 从“Level”列表中选择小波分解的级别; • 点击“Analyze”按钮; • 调节各参数; • 对分解结果可以保存和输出。
11 April 2020
26
11 April 2020
27
实验步骤
3.读入一幅图像,对其作DWT分解。
方法二:
4
实验方法、步骤
1.设置当前工作目录
打开Matlab,从“文件”菜单选择“Set Path”,弹出“Set Path”窗体,单击“Add Folder…”按钮或“Add with Subfolders…”按钮,弹出“浏览文件夹”窗口,选择自己 的文件夹添加到当前工作目录中,点击“确定”,返回到 “Set Path”窗体,依次点击“Save”按钮、“Close”按钮, 完成当前工作目录的设置。
三个图像文件; 4. 将读入的图像转换成灰度图像并保存为图象文件;
5. 显示、查看读入图像、分解图像、转换图像;
11 April 2020
3
实验要求
1. 独立完成实验内容; 2. 记录每一项实验内容实现的步骤; 3. 打印输出原始图像、分解图像、转换图像; 4. 独立撰写实验报告
11 April 2020
imshow(I); title('原始灰度图像')
dct_I=dct2(I);
A=abs(dct_I);
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255;
subplot(224)
imshow(A); title('离散余弦频谱图像')
11 April 2020
29
11 April 2020
30
实验结果分析
对FFT频谱图、DCT频谱图及小波分解图做 必要分析说明;
11 April 2020
31
思考题
1. 离散傅立叶变换有那些性质?这些性质说 明了什么:
2. 从FFT变换得到频谱图说明FFT变换在数字 图像处理方面有何可能的作用?
3. 小波变换的优点有哪些?在数字图像处理 方面有何优势?
• 用fft2()函数对其进行FFT变换,并将变换得到的傅立叶 频谱存于fft_I矩阵中;
• 用fftshift()函数将傅立叶频谱坐标原点移至窗口中央并 存于sfft_I矩阵中;
• 显示FFT频谱图、移动后的频谱图。
• 由于fft_I和sfft_I均为复数矩阵,须用abs()函数求其模,并根据 矩阵元素的特点将其归一化到0~255之间;
• 用dct2()函数对其进行DCT变换,并将变换得到 的傅立叶频谱存于dct_I矩阵中;
• 显示DCT频谱图
• 由于dct_I为复数矩阵,须用abs()函数求其模,并根 据矩阵元素的特点将其归一化到0~255之间;
• 用subplot()函数及imshow函数在同一窗口下显 示原始图像、灰度图像、DCT频谱图
11 April 2020
11
11 April 2020
12
思考题
1.Matlab的当前工作目录; 2.Matlab处理图像时把图像当作什么进行的? 3.如何查看RGB图像的各分量图像? 4.如何将RGB图像转换成灰度图像?
11 April 2020
13
实验二 图像的频域变换
实验目的
了解数字图像频域变换的目的,熟悉 DFT、DCT变换的频谱特征及小波变换 的特点,掌握数字图像FFT、DCT及 DWT变换的方法。