当前位置:文档之家› 数字图像处理实验指导书

数字图像处理实验指导书

• 从“Wavelet”列表中选择合适的小波母函数; • 从“Level”列表中选择小波分解的级别; • 点击“Analyze”按钮; • 调节各参数; • 对分解结果可以保存和输出。
11 April 2020
26
11 April 2020
27
实验步骤
3.读入一幅图像,对其作DWT分解。
方法二:
% 提取特征分量和细节分量 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
5
11 April 2020
6
实验方法、步骤
2.读入一幅RGB图像,查看图像信息
在“Command”窗口的命令提示符“>>”后输入 “I=imread(‘ss.jpg’)命令,读入RGB图像“ss.jpg”,数据存 在“I”矩阵中;
在“Command”窗口的命令提示符“>>”后输入 “imfinfo(‘ss.jpg’)命令,显示图像“ss.jpg”文件信息。
• 用dct2()函数对其进行DCT变换,并将变换得到 的傅立叶频谱存于dct_I矩阵中;
• 显示DCT频谱图
• 由于dct_I为复数矩阵,须用abs()函数求其模,并根 据矩阵元素的特点将其归一化到0~255之间;
• 用subplot()函数及imshow函数在同一窗口下显 示原始图像、灰度图像、DCT频谱图
• 点击“Two-Dimensional” 框架中的“Wavelet 2-d” 按钮,弹出“Wavelet 2-d”窗体;
11 April 2020
23
11 April 2020、步骤
• 点击“File”菜单,选“Load”→“Image”,选择 要做小波分解的图像”;
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的频谱图、将频率平面坐
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变换的方法。
数字图像处理实验指导书
谢洪波 河南理工大学
实验一 熟悉图像处理的Matlab平台
实验目的
熟悉Matlab的工作环境,掌握Matlab下矩 阵的基本操作,熟练掌握Matlab下图像 处理的基本操作(读、分解、转换、显 示、查看、写文件)。
11 April 2020
2
实验内容
1. 设置当前工作目录; 2. 读入一幅RGB图像,查看图像信息; 3. 将读入的图像分解为R、G、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;
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;
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之间;
• 读入进行小波分解的图像,并把它转成灰度图 像,存于一个矩阵中,如: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');
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
标原点移至窗口中心的FFT频谱图、DCT频谱图以 及1级小波分解图像; 5. 独立撰写实验报告
11 April 2020
16
实验方法、步骤
1.读入一幅图像,对其灰度图作快速傅立叶变换。
• 用imread()函数读如工作目录下的“风光壁纸33.jpg”图 像存于I矩阵中,用rgb2gray()函数将其转换成灰度图像;
4
实验方法、步骤
1.设置当前工作目录
打开Matlab,从“文件”菜单选择“Set Path”,弹出“Set Path”窗体,单击“Add Folder…”按钮或“Add with Subfolders…”按钮,弹出“浏览文件夹”窗口,选择自己 的文件夹添加到当前工作目录中,点击“确定”,返回到 “Set Path”窗体,依次点击“Save”按钮、“Close”按钮, 完成当前工作目录的设置。
• 用subplot()函数及imshow函数在同一窗口下显示原始图 像、灰度图像、FFT频谱图及移动后的频谱图。
• 附:FLY.m文件
11 April 2020
17
Fly.m文件内容
% 快速傅立叶变换,显示原始RGB图像、灰度图像、FFT频谱图
function fly(I)
subplot(221)
21
11 April 2020
22
实验方法、步骤
3.读入一幅图像,对其作DWT分解。
Matlab下对一幅图象进行小波分解有两种方 法,一是利用Mtlab提供的“小波工具 箱”,二是编写Matlab程序。
方法一:
• 点击“Start”按钮,选 “Toolbox”→“More…”→“Wavelet”→“Wavelet Main Menu (wavemenu)”,弹出“Wavelet Main Menu ”窗体;
“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”磁盘文件中。
相关主题