数字图像处理实验指导书

上传人:hs****ma 文档编号:569334641 上传时间:2024-07-28 格式:PPT 页数:83 大小:1.62MB
返回 下载 相关 举报
数字图像处理实验指导书_第1页
第1页 / 共83页
数字图像处理实验指导书_第2页
第2页 / 共83页
数字图像处理实验指导书_第3页
第3页 / 共83页
数字图像处理实验指导书_第4页
第4页 / 共83页
数字图像处理实验指导书_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《数字图像处理实验指导书》由会员分享,可在线阅读,更多相关《数字图像处理实验指导书(83页珍藏版)》请在金锄头文库上搜索。

1、数字图像处理实验指导书2024/7/2812实验一实验一 熟悉图像处理的熟悉图像处理的Matlab平台平台实验目的实验目的熟悉熟悉Matlab的工作环境,掌握的工作环境,掌握Matlab下矩阵下矩阵的基本操作,熟练掌握的基本操作,熟练掌握Matlab下图像处下图像处理的基本操作理的基本操作(读、分解、转换、显示、读、分解、转换、显示、查看、写文件查看、写文件)。2024/7/283实验内容实验内容1.设置当前工作目录;设置当前工作目录;2.读入一幅读入一幅RGB图像,查看图像信息;图像,查看图像信息;3.将读入的图像分解为将读入的图像分解为R、G、B三幅图像分别保存为三幅图像分别保存为三个图像

2、文件;三个图像文件;4.将读入的图像转换成灰度图像并保存为图象文件;将读入的图像转换成灰度图像并保存为图象文件;5.显示、查看读入图像、分解图像、转换图像;显示、查看读入图像、分解图像、转换图像;2024/7/284实验要求实验要求1.独立完成实验内容;独立完成实验内容;2.记录每一项实验内容实现的步骤;记录每一项实验内容实现的步骤;3.打印输出原始图像、分解图像、转换图像;打印输出原始图像、分解图像、转换图像;4.独立撰写实验报告独立撰写实验报告2024/7/285实验方法、步骤实验方法、步骤1.设置当前工作目录设置当前工作目录n打开Matlab,从“文件”菜单选择“Set Path”,弹出

3、“Set Path”窗体,单击“Add Folder”按钮或“Add with Subfolders”按钮,弹出“浏览文件夹”窗口,选择自己的文件夹添加到当前工作目录中,点击“确定”,返回到“Set Path”窗体,依次点击“Save”按钮、“Close”按钮,完成当前工作目录的设置。2024/7/2862024/7/287实验方法、步骤实验方法、步骤2.读入一幅读入一幅RGB图像,查看图像信息图像,查看图像信息n在“Command”窗口的命令提示符“”后输入“I=imread(ss.jpg)命令,读入RGB图像“ss.jpg”,数据存在“I”矩阵中;n在“Command”窗口的命令提示符“”

4、后输入“imfinfo(ss.jpg)命令,显示图像“ss.jpg”文件信息。2024/7/2882024/7/289实验方法、步骤实验方法、步骤3.将读入的图像分解为将读入的图像分解为R、G、B三幅图像分别保存为三幅图像分别保存为三个图像文件;三个图像文件;n在“Command”窗口的命令提示符“”后分别输入“I_R=I”、“I_G=I;、“I_G=I”,拷贝“I”的3个副本分别存入矩阵“I_R”、“I_G”、“I_B”中;n用I_R(:,:,2)=0;”、I_R(:,:,3)=0;”、“I_G(:,:,1)=0;”、“I_G(:,:,3)=0;”和“I_B(:,:,1)=0;”、“I_B(

5、:,:,2)=0;”使得“I_R”、“I_G”、“I_B”保留的分别只有R、G、B分量。n分别用“imwrite(I_R,ss_R.jpg)”、“imwrite(I_R,ss_G.jpg)”和“imwrite(I_R,ss_B.jpg)”将它们分别写入“ss_R.jpg”、“ss_G.jpg”和“ss_B.jpg”磁盘文件中。2024/7/2810实验方法、步骤实验方法、步骤4.将读入的图像转换成灰度图像并保存为图象文件;将读入的图像转换成灰度图像并保存为图象文件;n在“Command”窗口的命令提示符“”后分别输入“I_Gray=rgb2gray(I)” 将图像转变为灰度图像并存于矩阵“I_

6、Gray”中,用“imwrite(I_Gray,ss_Gray.jpg)”将其写入ss_Gray.jpg”磁盘文件中。2024/7/2811实验方法、步骤实验方法、步骤5.显示、查看读入图像、分解图像、转换图像;显示、查看读入图像、分解图像、转换图像;用imshow()和imview()显示和查看各图像;用下面命令序列在一个视窗显示各图像:subplot(231);imshow(I);title(原始图像);subplot(233);imshow(I_Gray);title(灰度图像);subplot(234);imshow(I_R);title(红色分量);subplot(235);imsh

7、ow(I_G);title(绿色分量);subplot(236);imshow(I_B);title(蓝色分量);2024/7/28122024/7/2813思考题思考题1.Matlab的当前工作目录;的当前工作目录;2.Matlab处理图像时把图像当作什么进行的?处理图像时把图像当作什么进行的?3.如何查看如何查看RGB图像的各分量图像?图像的各分量图像?4.如何将如何将RGB图像转换成灰度图像?图像转换成灰度图像?2024/7/2814实验目的实验目的 了解数字图像频域变换的目的,熟悉了解数字图像频域变换的目的,熟悉DFT、DCT变换的频谱特征及小波变换的特点,变换的频谱特征及小波变换的特

8、点,掌握数字图像掌握数字图像FFT、DCT及及DWT变换变换的方法。的方法。实验二实验二 图像的频域变换图像的频域变换2024/7/2815实验内容实验内容1.在在Matlab下读入一幅图像,对其灰度图作下读入一幅图像,对其灰度图作快速傅立叶变换;快速傅立叶变换;2.在在Matlab下读入一幅图像,对其灰度图作下读入一幅图像,对其灰度图作DCT变换;变换;3.在在Matlab下读入一幅图像,对其作下读入一幅图像,对其作DWT分分解。解。2024/7/2816实验要求实验要求1.独立完成各项实验内容;独立完成各项实验内容;2.记录每一项实验内容实现的步骤;记录每一项实验内容实现的步骤;3.编写编

9、写FFT、DCT、DWT变换变换Matlab程序;程序;4.打印输出原始图像、打印输出原始图像、FFT的频谱图、将频率平面坐的频谱图、将频率平面坐标原点移至窗口中心的标原点移至窗口中心的FFT频谱图、频谱图、DCT频谱图以频谱图以及及1级小波分解图像;级小波分解图像;5.独立撰写实验报告独立撰写实验报告2024/7/2817实验方法、步骤实验方法、步骤1.读入一幅图像,对其灰度图作快速傅立叶变换。读入一幅图像,对其灰度图作快速傅立叶变换。用imread()函数读如工作目录下的“风光壁纸33.jpg”图像存于I矩阵中,用rgb2gray()函数将其转换成灰度图像;用fft2()函数对其进行FFT

10、变换,并将变换得到的傅立叶频谱存于fft_I矩阵中; 用fftshift()函数将傅立叶频谱坐标原点移至窗口中央并存于sfft_I矩阵中;显示FFT频谱图、移动后的频谱图。由于fft_I和sfft_I均为复数矩阵,须用abs()函数求其模,并根据矩阵元素的特点将其归一化到0255之间;用subplot()函数及imshow函数在同一窗口下显示原始图像、灰度图像、FFT频谱图及移动后的频谱图。附:FLY.m文件2024/7/2818Fly.m文件内容文件内容% 快速傅立叶变换,显示原始快速傅立叶变换,显示原始RGB图像、灰度图像、图像、灰度图像、FFT频谱图频谱图function fly(I)

11、subplot(221) imshow(I); title(原始图像原始图像) I=rgb2gray(I); subplot(222) imshow(I); title(灰度图像灰度图像) fft_I=fft2(I); % 2-D快速傅立叶变换快速傅立叶变换 A=abs(fft_I); %将频谱矩阵元素归一化到将频谱矩阵元素归一化到0255 A=(A-min(min(A)/(max(max(A)-min(min(A)*255; subplot(223) imshow(A); title(傅立叶频谱图像傅立叶频谱图像) sfft_I=fftshift(fft_I); % 傅立叶频谱平面中心移至窗

12、口中心傅立叶频谱平面中心移至窗口中心 A=abs(sfft_I); %将频谱矩阵元素归一化到将频谱矩阵元素归一化到0255 A=(A-min(min(A)/(max(max(A)-min(min(A)*255; subplot(224) imshow(A); title(原点移到中心的傅立叶频谱图像原点移到中心的傅立叶频谱图像)2024/7/28192024/7/2820实验方法、步骤实验方法、步骤2.读入一幅图像,对其灰度图作读入一幅图像,对其灰度图作DCT变换。变换。用imread()函数读如工作目录下的“显微煤岩照片.JPG”图像存于I矩阵中,用rgb2gray()函数将其转换成灰度图像

13、;用dct2()函数对其进行DCT变换,并将变换得到的傅立叶频谱存于dct_I矩阵中; 显示DCT频谱图由于dct_I为复数矩阵,须用abs()函数求其模,并根据矩阵元素的特点将其归一化到0255之间;用subplot()函数及imshow函数在同一窗口下显示原始图像、灰度图像、DCT频谱图附:Lsyx_pp.m文件2024/7/2821Lsyx_pp.m文件内容文件内容% DCT变换,显示原始变换,显示原始RGB图像、灰度图像、图像、灰度图像、DCT频谱图频谱图function lsyx_pp(I) subplot(221) imshow(I); title(原始图像原始图像) I=rgb2

14、gray(I); subplot(223) 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(离散余弦频谱图像离散余弦频谱图像) 2024/7/28222024/7/2823实验方法、步骤实验方法、步骤3.读入一幅图像,对其作读入一幅图像,对其作DWT分解。分解。Matlab下对一幅图象进行小波分解有两种方法,下对一幅图象进行小波分解有两种方法,一是利用一是利用Mtlab提供的提

15、供的“小波工具箱小波工具箱”,二,二是编写是编写Matlab程序。程序。方法一:方法一:点击“Start”按钮,选“Toolbox”“More”“Wavelet”“Wavelet Main Menu (wavemenu)”,弹出“Wavelet Main Menu ”窗体;点击“Two-Dimensional” 框架中的“Wavelet 2-d”按钮,弹出“Wavelet 2-d”窗体;2024/7/28242024/7/28252024/7/2826实验方法、步骤实验方法、步骤点击“File”菜单,选“Load”“Image”,选择要做小波分解的图像”;从“Wavelet”列表中选择合适的小

16、波母函数;从“Level”列表中选择小波分解的级别;点击“Analyze”按钮;调节各参数;对分解结果可以保存和输出。2024/7/28272024/7/2828实验步骤实验步骤3.读入一幅图像,对其作读入一幅图像,对其作DWT分解。分解。方法二:方法二:读入进行小波分解的图像,并把它转成灰度图像,存于一个矩阵中,如:X;用wavedct2函数对X进行分解,该函数的格式如下: C,S = wavedt2(X,N,wname)用相关命令输出各图像附:Xbfj.m文件2024/7/2829Xbfj.m文件内容文件内容%小波图像分解小波图像分解clearclcX=imread(风光壁纸(蓝色主题)风

17、光壁纸(蓝色主题)8.jpg);subplot(231)imshow(X)title(原始图像原始图像)X=rgb2gray(X);subplot(234)imshow(X)title(原始灰度图像原始灰度图像)% 对图象用对图象用2D小波进行一次分解小波进行一次分解c,s=wavedec2(X,1,haar);% 提取特征分量和细节分量提取特征分量和细节分量a1=wrcoef2(a,c,s,haar);h1=wrcoef2(h,c,s,haar);v1=wrcoef2(v,c,s,haar);d1=wrcoef2(d,c,s,haar);%显示一次小波分解各分量图像显示一次小波分解各分量图像

18、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(一次小波分解对角细节分量图像一次小波分解对角细节分量图像)2024/7/28302024/7/2831实验

19、结果分析实验结果分析对对FFT频谱图、频谱图、DCT频谱图及小波分解图做频谱图及小波分解图做必要分析说明;必要分析说明;2024/7/2832思考题思考题1.离散傅立叶变换有那些性质?这些性质说明离散傅立叶变换有那些性质?这些性质说明了什么:了什么:2.从从FFT变换得到频谱图说明变换得到频谱图说明FFT变换在数字变换在数字图像处理方面有何可能的作用?图像处理方面有何可能的作用?3.小波变换的优点有哪些?在数字图像处理方小波变换的优点有哪些?在数字图像处理方面有何优势?面有何优势?2024/7/2833实验目的实验目的 了解图像增强与复原的体系结构;了解图像增强与复原的体系结构;熟悉灰度熟悉灰

20、度变换、直方图修正、图像平滑、图像锐变换、直方图修正、图像平滑、图像锐化及伪彩色处理在数字图像增强方面的化及伪彩色处理在数字图像增强方面的作用及各自的特点;作用及各自的特点;掌握图像增强的灰掌握图像增强的灰度变换法、直方图修正法,掌握图像平度变换法、直方图修正法,掌握图像平滑、图像锐化的滤波器设计方法,掌握滑、图像锐化的滤波器设计方法,掌握图像的伪彩色处理方法。图像的伪彩色处理方法。实验三实验三 图像增强与复原图像增强与复原 2024/7/2834实验内容实验内容1.读入一幅有明显明暗缺陷的灰度图像,分读入一幅有明显明暗缺陷的灰度图像,分析其直方图特征,分别用分段灰度线性变析其直方图特征,分别

21、用分段灰度线性变换法、直方图均衡法和图像灰度调整法换法、直方图均衡法和图像灰度调整法(imadjust)分别进行处理;分别进行处理;2.读入一幅灰度图像读入一幅灰度图像 ,分别给其加上,分别给其加上“乘乘性噪声性噪声”、“椒盐噪声椒盐噪声”,然后分别用,然后分别用“均值滤波均值滤波”、“中值滤波中值滤波”和和“巴特沃巴特沃斯滤波斯滤波”对其做平滑处理;对其做平滑处理;2024/7/2835实验内容实验内容3.读入一幅灰度图像,分别用读入一幅灰度图像,分别用“Sobel算子算子”、“Laplacian算子算子”、“梯形滤波器梯形滤波器”对其做锐化处理;对其做锐化处理;4.读入一幅灰度图像,分别用

22、读入一幅灰度图像,分别用“灰度级分层灰度级分层法法”、“灰度变换法灰度变换法”和和“频域伪彩色处频域伪彩色处理法理法”对其进行伪彩色增强;对其进行伪彩色增强;5.读入一幅图像,对其进行模糊化,然后用读入一幅图像,对其进行模糊化,然后用“逆滤波法逆滤波法”对其进行复原处理。对其进行复原处理。2024/7/2836实验要求实验要求1.独立完成各项实验内容;独立完成各项实验内容;2.记录每一项实验内容实现的步骤;记录每一项实验内容实现的步骤;3.编写编写“灰度增强灰度增强”、“平滑平滑”、“锐化锐化”、“伪伪彩色增强彩色增强”、“图像复原图像复原”的的Matlab程序;程序;4.打印输出经打印输出经

23、“灰度增强灰度增强”、“平滑平滑”、“锐化锐化”、“伪彩色增强伪彩色增强”、“图像复原图像复原”处理的图像及各处理的图像及各自的原始图像;自的原始图像;5.独立撰写实验报告独立撰写实验报告2024/7/2837实验方法、步骤实验方法、步骤1.读入一幅有明显明暗缺陷的灰度图像,分析其直方图特征,读入一幅有明显明暗缺陷的灰度图像,分析其直方图特征,分别用分段灰度线性变换法、直方图均衡法和图像灰度调分别用分段灰度线性变换法、直方图均衡法和图像灰度调整法整法(imadjust)分别进行处理;分别进行处理;在“资源管理器”下以“缩略图”的方式浏览图片库,发现名为“6_gray.jpg”的图像明显整体偏暗

24、,在Matlab下读入该图像,用imhist函数提取该图像的灰度直方图(图3-1)。从该图像的灰度直方图可以看出: 该图像大多数像素的灰度值在140以下,140240灰度级间象素数分布均匀,缺少240255灰度级的象素,将0255灰度级归一化到01,140对应0.55。2024/7/2838图3-12024/7/2839分段灰度线性变换:分段灰度线性变换:根据上述分析,将原图像灰度值在0140采用线性变换到0200,140200线性变换到200255。变换后的图像及其灰度直方图见图3-2。直方图均衡:直方图均衡:在Matlab下用histeq函数可以对一幅图像直接进行直方图均衡,对“6_gra

25、y.jpg”做直方图均衡后的图像及其灰度直方图见图3-2。图像灰度调整:图像灰度调整:在Matlab下imadjust函数用以对图像的灰度级调整, 根据前面分析,将0140调整到00.55,鉴于imadjust只能对一个灰度区间进行调整,对原图像140255不做调整。由于原图像明显偏暗,这里gamma去=f0)&(I(i,j)f1) G(i,j)=k1*I(i,j); else G(i,j)=k2*(I(i,j)-f1)+g1; end endendsubplot(3,3,4);G=uint8(G);imshow(G);title(分段灰度线性变换分段灰度线性变换);%直方图均衡法法直方图均衡

26、法法I=uint8(I);J=histeq(I);subplot(2,3,5);imshow(J);title(直方图均衡图像直方图均衡图像);%图像灰度调整图像灰度调整K=imadjust(I,0 0.55,0 1,0.7);subplot(2,3,6);imshow(K);title(图像灰度调整图像灰度调整 Low=0, High=0.55 gamma=0.7);shiyan_3_1.m2024/7/2842实验方法、步骤实验方法、步骤2.读入一幅灰度图像读入一幅灰度图像 ,分别给其加上,分别给其加上“乘性噪声乘性噪声”、“椒盐椒盐噪声噪声”,然后分别用,然后分别用“均值滤波均值滤波”、

27、“中值滤波中值滤波”对其做对其做平滑处理;对平滑处理;对“乘性噪声乘性噪声”图像进行图像进行“巴特沃斯滤波巴特沃斯滤波”做做平滑处理;平滑处理;在Matlab下读入一幅灰度图像,I=imread(9_gray.jpg);分别对其添加“乘性噪声”、“椒盐噪声”。I_noise_salt_pepper=imnoise(I,salt & pepper); I_noise_speckle=imnoise(I,speckle);对I_noise_salt_pepper和 I_noise_speckle用33模板做均均值滤波值滤波 I_noise_salt_pepper_average=filter2(f

28、special(average,3), I_noise_salt_pepper)/255; I_noise_speckle_average=filter2(fspecial(average,3), I_noise_speckle)/255;2024/7/2843对I_noise_salt_pepper和 I_noise_speckle用33模板做中中值滤波值滤波 I_noise_salt_pepper_med=medfilt2(I_noise_salt_pepper,3,3); I_noise_speckle_med=medfilt2(I_noise_speckle,3,3); 巴特沃斯滤波:

29、巴特沃斯滤波: 首先对添加噪声的图像进行快速傅立叶变换首先对添加噪声的图像进行快速傅立叶变换 fft_I_noise_speckle=fft2(double(I_noise_speckle); 移动频谱坐标中心到屏幕中心移动频谱坐标中心到屏幕中心 fftshift(fft_I_noise_speckle); 设定截止频率:设定截止频率:Dcut=100; 计算巴特沃斯传递函数:计算巴特沃斯传递函数: D(u,v)=sqrt(u2+v2); BUTTERH(u,v)=1/(1+(sqrt(2)-1)*(D(u,v)/Dcut)2); 进行巴特沃斯滤波进行巴特沃斯滤波 BUTTERG=BUTTER

30、H.*fft_I_noise_speckle; 快速傅立叶逆变换快速傅立叶逆变换 BUTTERfiltered=ifft2(BUTTERG);2024/7/2844图3-32024/7/28% 实验三_2:对加上“乘性噪声”、“椒盐噪声”% 用“均值滤波”、“中值滤波”对其做平滑处理;% 对“乘性噪声”图像进行“巴特沃斯滤波”做平滑处理;clear;J,map=imread(18.jpg);I=rgb2gray(J);% 添加“椒盐噪声”I_noise_salt_pepper=imnoise(I,salt & pepper);% 添加“乘性噪声”I_noise_speckle=imnoise(

31、I,speckle);% 对I_noise_salt_pepper用33模板做均值滤波I_noise_salt_pepper_average=filter2(fspecial(average,3), I_noise_salt_pepper)/255;% 对I_noise_speckle用33模板做均值滤波 I_noise_speckle_average=filter2(fspecial(average,3), I_noise_speckle)/255;% 对I_noise_salt_pepper用33模板做中值滤波I_noise_salt_pepper_med=medfilt2(I_noise

32、_salt_pepper,3,3);% I_noise_speckle用33模板做中值滤波I_noise_speckle_med=medfilt2(I_noise_speckle,3,3); shiyan_3_2.m2024/7/28% 巴特沃斯滤波:% 对添加噪声的图像进行快速傅立叶变换fft_I_noise_salt_pepper=fft2(double(I_noise_salt_pepper);% 移动频谱坐标中心到屏幕中心fftshift(fft_I_noise_salt_pepper);% 设定截止频率:Dcut=100;% 计算巴特沃斯传递函数:M N=size(I);for u=

33、1:M for v=1:N D(u,v)=sqrt(u2+v2); BUTTERH(u,v)=1/(1+(sqrt(2)-1)*(D(u,v)/Dcut)2); endend% 进行巴特沃斯滤波BUTTERG=BUTTERH.*fft_I_noise_salt_pepper;% 快速傅立叶逆变换BUTTERfiltered=ifft2(BUTTERG);2024/7/28subplot(3,3,1);imshow(J);title(原始图像);subplot(3,3,2);imshow(I);title(灰度图像);subplot(3,3,3);imshow(I_noise_salt_pepp

34、er);title(加“椒盐噪声”(salt&pepper)图像);subplot(3,3,4);imshow(I_noise_speckle);title(加“乘性噪声”(speckle)图像);subplot(3,3,5);imshow(I_noise_salt_pepper_average);title(“椒盐噪声”图像33模板均值滤波);subplot(3,3,6);imshow(I_noise_salt_pepper_med);title(“椒盐噪声”图像33模板中值滤波);subplot(3,3,7);imshow(I_noise_speckle_average);title(“乘

35、性噪声”图像33模板均值滤波);subplot(3,3,8);imshow(I_noise_speckle_med);title(“乘性噪声”图像33模板中值滤波);subplot(3,3,9);imshow(BUTTERfiltered,map);title(“椒盐噪声”图像经“巴特沃斯滤波”);2024/7/2848实验方法、步骤实验方法、步骤3.读入一幅灰度图像,分别用读入一幅灰度图像,分别用“Sobel算子算子”、“Laplacian算子算子”、“梯形滤波器梯形滤波器”对其做锐化对其做锐化处理;处理;Matlab下在空间域对图像做锐化处理有两种方法,对于Matlab提供的算子,可以直接

36、用滤波的方法,对于知道模板矩阵的,也可采取“模板-卷积”的方法。Matlab提供了“Sobel算子”,这里采取滤波的方法,对“Laplacian算子,其模板矩阵为0 1 0,1 -4 1,0 1 0,这里采取“模板-卷积”的方法。Matlab下在频率域对图像做锐化处理方法与平滑类似。2024/7/28%实验三_3:%用“Sobel算子”、“Laplacian算子”、% “梯形滤波器”对图像做锐化处理clear;I map=imread(BANNER.jpg);subplot(2,2,1);imshow(I,map);title(原始图像);I=rgb2gray(I);subplot(2,2,2

37、);imshow(I,map);title(灰度图像);%用“Sobel算子”对图像做锐化处理H=fspecial(sobel);J=filter2(H,I);subplot(2,3,4);imshow(J);title(Sobel算子锐化);%用“Laplacian算子”对图像做锐化处理I=double(I);h=0 1 0,1 -4 1,0 1 0J=conv2(I,h,same);subplot(2,3,5);imshow(J);title(Laplacian算子锐化);%“梯形滤波器”对图像做锐化处理M N=size(I);F=fft2(double(I);fftshift(F);D0

38、=200;D1=100;for u=1:M for v=1:N D(u,v)=sqrt(u2+v2); if D(u,v)D1 TRAPEH(u,v)=0; elseif D(u,v)=D0 TRAPEH(u,v)=(D(u,v)-D1)/(D0-D1); else TRAPEH(u,v)=1; end endendTRAPEG=TRAPEH.*F;TRAPEfiltered=ifft2(TRAPEG);subplot(2,3,6);imshow(TRAPEfiltered,map);title(梯形高通滤波);shiyan_3_3.m2024/7/2850图3-42024/7/28实验方法、

39、步骤实验方法、步骤4.读入一幅灰度图像,分别用读入一幅灰度图像,分别用“灰度级分层法灰度级分层法”、“灰度变换法灰度变换法”和和“频域伪彩色处理法频域伪彩色处理法”对其进对其进行伪彩色增强;行伪彩色增强;“灰度级分层法灰度级分层法”:Matlab下用grayslice函数对灰度图像进行分层,在显示该分层图像时指定颜色模型,就可以对该灰度图像进行彩色显示,从而达到伪彩色增强的目的;%Matlab中灰度分层法伪彩色图象的实现clear;I=imread(1.jpg);imshow(I);title(原始灰度图像);I=rgb2gray(I);X=grayslice(I,24);figure,ims

40、how(X,copper(24);title(24级灰度分层copper(24)伪彩色图像);2024/7/2852图3-52024/7/2853“灰度变换法灰度变换法”:读入一幅灰度图像,计算图像的尺寸,根据图像尺寸设定循环,逐个像素进行灰度到彩色的转换(梯形法)。当像素的灰度值1/4最高灰度级,而1/2最高灰度级,3/4最高灰度级时,将其归到G(绿色)位平面,并用线性拉伸的方法映射到绿色的0255区间;将三个位平面合成为一幅彩色图像。2024/7/28%Matlab中灰度变换法伪彩色图象的实现clear;I=imread(高对比度:精美高清风光壁纸5.jpg);%I=rgb2gray(I)

41、;subplot(1,2,1);imshow(I);title(原始灰度图像);I=double(I);M N=size(I);L=256;for i=1:N for j=1:M if I(j,i)L/4 R(j,i)=0; G(j,i)=4*I(j,i); B(j,i)=L; elseif I(j,i)=L/2 R(j,i)=0; G(j,i)=L; B(j,i)=-4*I(j,i)+2*L; elseif I(j,i)=3*L/4 R(j,i)=4*I(j,i)-2*L; G(j,i)=L; B(j,i)=-0; else R(j,i)=L; G(j,i)=-4*I(j,i)+4*L; B

42、(j,i)=-0; end endendOUT=zeros(M,N,3);OUT(:,:,1)=R;OUT(:,:,2)=G;OUT(:,:,3)=B;OUT=uint8(OUT);subplot(1,2,2);imshow(OUT);title(灰度分级伪彩色图像);2024/7/2855图3-62024/7/2856“频域伪彩色处理法频域伪彩色处理法”:读入一幅灰度图像,进行FFT变换,分别进行低通滤波、带通滤波、高通滤波,得到三个独立的频率分量,人为地将它们分别归属为R、G、B分量,再分别将R、G、B分量进行快速傅立叶逆变换,得到R、G、B三个位平面,最后将三个位平面合成为一幅伪彩色图像

43、。2024/7/28%Matlab频域伪彩色图象的实现clear;I=imread(风景04.jpg);I=rgb2gray(I);I=imadjust(I);subplot(1,2,1);imshow(I);title(原始灰度图像);I=double(I);M N=size(I);F=fft2(I);fftshift(F);Red_cut=5;Green_cut=205;Blue_center=100;Blue_width=200;Blue_u0=10.5;Blue_v0=10.3;2024/7/28for u=1:M for v=1:N D(u,v)=sqrt(u2+v2); Red_L

44、(u,v)=1/(1+(sqrt(2)-1)*(D(u,v)/Red_cut)2); Green_H(u,v)=1/(1+(sqrt(2)-1)*(Green_cut/D(u,v)2); Blue_D(u,v)=sqrt(u-Blue_u0)2+(v-Blue_v0)2); Blue_H(u,v)=1-1/(1+Blue_D(u,v)*Blue_width/(Blue_D(u,v)2-(Blue_center)2)2); endEndRed=Red_L.*F; Red_color=ifft2(Red);Green=Green_H.*F; Green_color=ifft2(Green);Blu

45、e=Blue_H.*F; Blue_color=ifft2(Blue);Red_color=real(Red_color)/256; Red_color=imadjust(Red_color);Green_color=real(Green_color)/256; Green_color=imadjust(Green_color);Blue_color=real(Blue_color)/256; Blue_color=imadjust(Blue_color);OUT=zeros(M,N,3);OUT(:,:,1)=Red_color; OUT(:,:,2)=Green_color; OUT(:,

46、:,3)=Blue_color;OUT=abs(OUT);subplot(1,2,2);imshow(OUT);title(频率域伪彩色图像频率域伪彩色图像);2024/7/2859图3-72024/7/2860实验方法、步骤实验方法、步骤5.读入一幅图像,对其进行模糊化,然后用读入一幅图像,对其进行模糊化,然后用“逆滤逆滤波法波法”对其进行复原处理。对其进行复原处理。一幅质量改进或退化的图像可以近似地用方程一幅质量改进或退化的图像可以近似地用方程g=Hf+n表示,其中表示,其中g为图像,为图像,H为变形算子,又称点扩散函数为变形算子,又称点扩散函数(PSF),f为原始的真实图像,为原始的真实

47、图像,n为附加噪声,它在图像为附加噪声,它在图像捕获过程中产生并且使图像质量下降。捕获过程中产生并且使图像质量下降。Matlab工具中有工具中有4个图像恢复函数:个图像恢复函数:deconvwnr:用Wiener滤波器实现图像恢复deconvreg: 用regularized滤波器实现图像恢复deconvlucy:用Lucy-Richardson算法实现图像恢复deconvblind:用Blind去卷积算法实现图像恢复这4个函数都将PSF和模糊图像作为主要变量。2024/7/2861deconvwnr 函数求取最小二乘解,deconvreg函数求取有约束的最小二乘解,可以设置对输出图像的约束。

48、使用这些函数中的任何一个,都应提供一些与噪声相关的信息来减少恢复过程中可能出现的噪声扩大。deconvlucy函数实现了一个加速衰减的Lucy-Richardson算法。使用该函数不需要提供有关模糊图像中附加噪声的信息。deconvblind函数用盲去卷积算法,它在不知道PSF的情况下进行图像恢复。调用该函数时,将PSF的初值作为一个变量进行传递。该函数不仅返回一个修复后的图像,还返回一个修复后的PSF。2024/7/2862deconvwnr 函数求取最小二乘解,deconvreg函数求取有约束的最小二乘解,可以设置对输出图像的约束。使用这些函数中的任何一个,都应提供一些与噪声相关的信息来减

49、少恢复过程中可能出现的噪声扩大。deconvlucy函数实现了一个加速衰减的Lucy-Richardson算法。使用该函数不需要提供有关模糊图像中附加噪声的信息。deconvblind函数用盲去卷积算法,它在不知道PSF的情况下进行图像恢复。调用该函数时,将PSF的初值作为一个变量进行传递。该函数不仅返回一个修复后的图像,还返回一个修复后的PSF。2024/7/28I=imread(31.jpg); %读入原始图像读入原始图像IPSF=fspecial(motion,30,10); %生成点扩散函数生成点扩散函数MF=imfilter(I,PSF,circular); %用点扩散函数实现图像模

50、糊用点扩散函数实现图像模糊(退化退化)noise=imnoise(zeros(size(I),gaussian); %产生高斯噪声产生高斯噪声INITPSF=ones(size(MF);J=deconvwnr(MF,PSF);K=deconvreg(MF,PSF);M=deconvblind(MF,INITPSF,3);subplot(2,2,1);imshow(I);title(原始图象原始图象);subplot(2,2,2);imshow(MF);title(运动模糊图象运动模糊图象);subplot(2,3,4);imshow(J);title(维纳逆滤波图象维纳逆滤波图象);subpl

51、ot(2,3,5);imshow(K);title(拉格郎日逆滤波图象拉格郎日逆滤波图象);subplot(2,3,6);imshow(M);title(Blind逆滤波图象逆滤波图象);2024/7/2864图3-82024/7/2865实验结果分析实验结果分析1.比较分段灰度线性变换法、直方图均衡法和图像灰度调整法比较分段灰度线性变换法、直方图均衡法和图像灰度调整法(imadjust)对灰度图像处理的效果,分析各自的优缺点;对灰度图像处理的效果,分析各自的优缺点;2.比较比较“均值滤波均值滤波”、“中值滤波中值滤波”及及“巴特沃斯滤波巴特沃斯滤波”对图像对图像平滑处理的效果,分析各自的优缺

52、点;平滑处理的效果,分析各自的优缺点;3.比较比较“Sobel”、“Laplacian”、“梯形滤波器梯形滤波器”对图像做锐对图像做锐化处理的效果,分析各自的优缺点;化处理的效果,分析各自的优缺点;4.分析分析“灰度级分层法灰度级分层法”、“灰度变换法灰度变换法”和和“频域伪彩色处理频域伪彩色处理法法”对图像进行伪彩色增强分析各自的优缺点及各自适用对图像进行伪彩色增强分析各自的优缺点及各自适用在什么情况下;在什么情况下;2024/7/2866思考题思考题1.灰度变换的目的是什么?有哪些实现方法?灰度变换的目的是什么?有哪些实现方法?2. 什么是图像平滑?图像平滑的方法有哪些?什么是图像平滑?图

53、像平滑的方法有哪些?3.图像锐化的目的是什么?有哪些方法可以实现?图像锐化的目的是什么?有哪些方法可以实现?4. 频域低通滤波的原理是什么?频域低通滤波的原理是什么?5.什么是同态滤波?什么是同态滤波?6.伪彩色处理的方法有哪些?伪彩色处理的方法有哪些?7.逆滤波复原的基本原理是什么?逆滤波复原的基本原理是什么?2024/7/2867实验目的实验目的 了解插值运算常用的方法及其在图像几何变了解插值运算常用的方法及其在图像几何变换中特点,熟悉图像代数变换与几何变换中特点,熟悉图像代数变换与几何变换的原理、作用、特点;掌握图像算术换的原理、作用、特点;掌握图像算术运算、几何运算的方法。运算、几何运

54、算的方法。实验四实验四 图像的代数变换与几何变换图像的代数变换与几何变换 2024/7/2868实验内容实验内容1.读入两幅图像,对它们分别做读入两幅图像,对它们分别做+、-、/运算,分析处运算,分析处理结果;理结果;2.读入一幅图像读入一幅图像 ,对其进行水平平移、垂直平移,对其进行水平平移、垂直平移50像素像素(图像扩大图像扩大);3.读入一幅图像,对其进行水平转置、垂直转置、对角读入一幅图像,对其进行水平转置、垂直转置、对角转置;转置;4.读入一幅图像,对其旋转操作;读入一幅图像,对其旋转操作;5.读入一幅图像,对其进行等比例、不等比例缩放;读入一幅图像,对其进行等比例、不等比例缩放;6

55、.读入一幅图像,对其进行水平错切、垂直错切;读入一幅图像,对其进行水平错切、垂直错切;2024/7/2869实验要求实验要求1.独立完成各项实验内容;独立完成各项实验内容;2.记录每一项实验内容实现的步骤;记录每一项实验内容实现的步骤;3.编写编写“平移平移”、“镜像镜像”、“旋转旋转”、“缩放缩放”、“错切错切”的的Matlab程序;程序;4.打印输出打印输出“算数变换算数变换”、“几何变换几何变换”前后的图像;前后的图像;5.独立撰写实验报告独立撰写实验报告2024/7/2870实验方法、步骤实验方法、步骤1.读入两幅图像,对它们分别做读入两幅图像,对它们分别做+、-、/运算,分析处理结果

56、;运算,分析处理结果;+运算:在运算:在matlab下可以用下可以用“+”运算符运算符(注意溢出问题注意溢出问题) ,也可以,也可以用用“imadd”函数实现。函数实现。I = imread(rice.png);J = imread(cameraman.tif);K = imadd(I,J); figure, imshow(K);L = double(I)+ double(J); figure, imshow(uint8(L);-运算:在运算:在matlab下可以用下可以用“-”运算符运算符(注意溢出问题注意溢出问题) ,“imsubtract” 函数函数(注意节段问题注意节段问题)和和ima

57、bsdiff函数实现。函数实现。I = imread(rice.png);J = imread(cameraman.tif);K = imsubtract(I,J); figure, imshow(K);L = imabsdiff(I,J); figure, imshow(L);M = double(I) - double(J); figure, imshow(uint8(L);2024/7/2871运算:在运算:在matlab下可以用下可以用“ ”运算符逐像素进行,也运算符逐像素进行,也可以可以 “immultiply”函数,两种方法都要注意溢出问题。函数,两种方法都要注意溢出问题。%抠图c

58、lear;I=imread(SS.JPG);subplot(1,3,1);imshow(I);title(图像1);I=double(I);J=imread(SSBW.jpg);subplot(1,3,2);imshow(J);title(图像2);J=double(J);m n l=size(I);MULT=zeros(m,n,l);for i=1:l for j=1:n for k=1:m MULT(k,j,i)=I(k,j,i).*J(k,j,i); end endendmax_mult=max(max(max(MULT);min_mult=min(min(min(MULT);for i

59、=1:l for j=1:n for k=1:m MULT(k,j,i)=MULT(k,j,i).*(255/(max_mult-min_mult); end endendresult_im=uint8(MULT);subplot(1,3,3);imshow(result_im);title(图像1图像2);2024/7/2872/运算:在运算:在matlab下可以用下可以用“ /”运算符实现,也可以运算符实现,也可以 “imdivide”函数实现。函数实现。clear;I=imread(18.jpg);JJ=rgb2gray(I);J(:,:,1)=JJ;J(:,:,2)=JJ;J(:,:,

60、3)=JJ;I_LS=double(I);J_LS=double(J);L=(imdivide(I_LS,J_LS);subplot(2,2,1);imshow(I);title(图像图像1);subplot(2,2,2);imshow(J);title(图像图像2);subplot(2,1,2);imshow(L);2024/7/2873实验方法、步骤实验方法、步骤2.读入一幅图像读入一幅图像 ,对其进行水平平移、垂直平移,对其进行水平平移、垂直平移50像素像素(图像扩大图像扩大);方法一:%图像平移function outImage=immove(inImage,Tx,Ty)outImag

61、e = zeros(size(inImage);Tx=fix(Tx);Ty=fix(Ty);m, n,l = size(inImage);if (Tx0 & Ty0) outImage(1:m-abs(Tx),1:n-abs(Ty),:) = inImage(abs(Tx)+1:m,abs(Ty)+1:n,:); elseif (Tx0) outImage(1:m-abs(Tx),Ty+1:n,:) = inImage(abs(Tx)+1:m,1:n-abs(Ty),:);elseif (Tx=0 & Ty=0) outImage(Tx+1:m,Ty+1:n,:)=inImage(1:m-Tx

62、,1:n-Ty,1:l);else outImage(Tx+1:m,1:n-abs(Ty),:)=inImage(1:m-Tx,abs(Ty)+1:n,:);endsubplot(1,2,1);imshow(inImage);title(原始图像);subplot(1,2,2);imshow(uint8(outImage);title(平移图像);2024/7/2874实验方法、步骤实验方法、步骤2.读入一幅图像读入一幅图像 ,对其进行水平平移、垂直平移,对其进行水平平移、垂直平移50像素像素(图像扩大图像扩大);方法二:用translate、imdilate函数 %图像平移图像平移clear

63、;I = imread(ss.jpg);se = translate(strel(1), 50 50);J = imdilate(I,se);subplot(1,2,1)imshow(I),title(原始图像)subplot(1,2,2)imshow(J);title(平移图像);2024/7/2875实验方法、步骤实验方法、步骤3.读入一幅图像,对其进行水平、垂直、对角转置;读入一幅图像,对其进行水平、垂直、对角转置;%图像镜像变换clear;I=double(imread(9.jpg);SIZE=size(I);%水平镜像I_flip_LR(1:SIZE(1),1:SIZE(2),:)=

64、I(1:SIZE(1),SIZE(2):-1:1,:);%垂直镜像I_flip_UD(1:SIZE(1),1:SIZE(2),:)=I(SIZE(1):-1:1,1:SIZE(2),:);%对角镜像I_flip_LR_UD(1:SIZE(1),1:SIZE(2),:)=I(SIZE(1):-1:1,SIZE(2):-1:1,:);subplot(2,2,1)imshow(uint8(I);title(原始图像);subplot(2,2,2)imshow(uint8(I_flip_LR);title(水平镜像);subplot(2,2,3)imshow(uint8(I_flip_UD);titl

65、e(垂直镜像);subplot(2,2,4)imshow(uint8(I_flip_LR_UD);title(对角镜像);2024/7/2876实验方法、步骤实验方法、步骤4.读入一幅图像,对其旋转操作;读入一幅图像,对其旋转操作; 方法一%Matlab图像旋转旋转function im_rotate(Image,Angle) %Image为位图数据X,Y,n=size(Image); %X,Y为其行列数%计算四个角点的新坐标,确定旋转后的显示区域LeftTop(1,1)=-(Y-1)*sin(Angle);LeftTop(1,2)=(Y-1)*cos(Angle);LeftBottom(1,

66、1)=0;LeftBottom(1,2)=0;RightTop(1,1)=(X-1)*cos(Angle)-(Y-1)*sin(Angle);RightTop(1,2)=(X-1)*sin(Angle)+(Y-1)*cos(Angle);RightBottom(1,1)=(X-1)*cos(Angle);RightBottom(1,2)=(X-1)*sin(Angle);%计算显示区域的行列数Xnew=max(LeftTop(1,1),LeftBottom(1,1),RightTop(1,1),RightBottom(1,1)-min(LeftTop(1,1),LeftBottom(1,1),

67、RightTop(1,1),RightBottom(1,1);Ynew=max(LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2)-min(LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2);% 分配新显示区域矩阵ImageNew=zeros(round(Xnew),round(Ynew),n)+127;2024/7/2877%计算原图像各像素的新坐标for indexX=0:(X-1) for indexY=0:(Y-1) for i=1:n ImageNe

68、w(round(indexX*cos(Angle)-indexY*sin(Angle)+round(abs(min(LeftTop(1,1),LeftBottom(1,1),RightTop(1,1),RightBottom(1,1)+1,1+round(indexX*sin(Angle)+indexY*cos(Angle)+round(abs(min(LeftTop(1,2),LeftBottom(1,2),RightTop(1,2),RightBottom(1,2),i)=Image(indexX+1,indexY+1,i); end end endsubplot(1,2,1);imsho

69、w(Image);title(原始图像);subplot(1,2,2);imshow(ImageNew/255);title(旋转图像);2024/7/2878实验方法、步骤实验方法、步骤4.读入一幅图像,对其旋转操作;读入一幅图像,对其旋转操作; 方法二%Matlab图像旋转旋转clear;I=imread(17.jpg);I_rot30=imrotate(I,30,nearest); %旋转30I_rot45=imrotate(I,45,nearest); %旋转45I_rot60=imrotate(I,60,nearest); %旋转60subplot(2,2,1);imshow(I);

70、title(原始图像);subplot(2,2,2);imshow(I_rot30);title(旋转30);subplot(2,2,3);imshow(I_rot45);title(旋转45);subplot(2,2,4);imshow(I_rot60);title(旋转60);2024/7/2879实验方法、步骤实验方法、步骤5.读入一幅图像,对其进行等比例、不等比例缩放;读入一幅图像,对其进行等比例、不等比例缩放;方法一%Matlab采用等间隔采样对图像缩小function im_shrink=imshrink_eq(I,k)Type_I=uint8(isrgb(I);Size=size

71、(I); %计算输入图像大小计算输入图像大小im_shrink_W=round(Size(1)*k) %计算缩放后图像宽度计算缩放后图像宽度im_shrink_H=round(Size(2)*k) %计算缩放后图像高度计算缩放后图像高度if Type_I=1 im_shrink=zeros(im_shrink_W,im_shrink_H,Size(3); for i=1:im_shrink_W for j=1:im_shrink_H im_shrink(i,j,:)=I(round(i/k),round(j/k),:); end end2024/7/2880else im_shrink=zer

72、os(im_shrink_W,im_shrink_H); for i=1:im_shrink_W for j=1:im_shrink_H im_shrink(i,j)=I(round(i/k),round(j/k); end endendim_shrink=uint8(im_shrink);subplot(1,2,1)imshow(I);title(原始图像原始图像);subplot(1,2,2)imshow(im_shrink);title(等间隔采样缩等间隔采样缩放放图像图像);imwrite(im_shrink,sf_1.jpg);2024/7/2881实验方法、步骤实验方法、步骤5.读

73、入一幅图像,对其进行等比例、不等比例缩放;读入一幅图像,对其进行等比例、不等比例缩放;方法一B = imresize(A,m,method);B = imresize(A,rows cols,method);method: nearest bilinear bicubic . = imresize(.,method,N)2024/7/2882实验方法、步骤实验方法、步骤6.读入一幅图像,对其进行水平错切、垂直错切;读入一幅图像,对其进行水平错切、垂直错切;%Matlab 实现RGB图像的错切function Im_shear=imshear(I,angle,type);subplot(1,2,

74、1)imshow(I);title(原始图像原始图像);I=double(I);Size=size(I);if type=1%水平水平错切错切 Im_shear=zeros(Size(1),round(Size(2)*tan(pi/180*abs(angle),Size(3); for i=1:Size(1) for j=1:Size(2) Im_shear(i+round(j*tan(pi/180*angle),j,:)=I(i,j,:); end endElse%垂直垂直错切错切 Im_shear=zeros(round(Size(1)*tan(pi/180*abs(angle),Size

75、(2),Size(3); for i=1:Size(1) for j=1:Size(2) Im_shear(i,j+round(i*tan(pi/180*angle),:)=I(i,j,:); end endendsubplot(1,2,2)imshow(uint8(Im_shear);title(错切图像错切图像);2024/7/2883实验结果分析实验结果分析1.分析说明图像的算术运算各有什么作用;分析说明图像的算术运算各有什么作用;2.分析说明图像平移过程中如果不做的放大会出现什分析说明图像平移过程中如果不做的放大会出现什么效果;么效果;3.分析说明能图像镜像与平移的异同;分析说明能图像镜像与平移的异同;3.分析图像旋转与图像错切的异同分析图像旋转与图像错切的异同,如何通过错切实现如何通过错切实现图像的旋转效果;图像的旋转效果;4.分析说明对一图像先进行缩小,再进行放大,能与分析说明对一图像先进行缩小,再进行放大,能与原图像相同吗?原图像相同吗?2024/7/28

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号