1、数字图像处理实验指导书谢洪波河南理工大学1/3/2023Digital Image Process12实验一实验一 熟悉图像处理的熟悉图像处理的Matlab平台平台实验目的实验目的熟悉熟悉Matlab的工作环境,掌握的工作环境,掌握Matlab下矩下矩阵的基本操作,熟练掌握阵的基本操作,熟练掌握Matlab下图像下图像处理的基本操作处理的基本操作(读、分解、转换、显读、分解、转换、显示、查看、写文件示、查看、写文件)。1/3/20233实验内容实验内容1.设置当前工作目录;设置当前工作目录;2.读入一幅读入一幅RGB图像,查看图像信息;图像,查看图像信息;3.将读入的图像分解为将读入的图像分解
2、为R、G、B三幅图像分别保存为三幅图像分别保存为三个图像文件;三个图像文件;4.将读入的图像转换成灰度图像并保存为图象文件;将读入的图像转换成灰度图像并保存为图象文件;5.显示、查看读入图像、分解图像、转换图像;显示、查看读入图像、分解图像、转换图像;1/3/20234实验要求实验要求1.独立完成实验内容;独立完成实验内容;2.记录每一项实验内容实现的步骤;记录每一项实验内容实现的步骤;3.打印输出原始图像、分解图像、转换图像;打印输出原始图像、分解图像、转换图像;4.独立撰写实验报告独立撰写实验报告1/3/20235实验方法、步骤实验方法、步骤1.设置当前工作目录设置当前工作目录n打开Mat
3、lab,从“文件”菜单选择“Set Path”,弹出“Set Path”窗体,单击“Add Folder”按钮或“Add with Subfolders”按钮,弹出“浏览文件夹”窗口,选择自己的文件夹添加到当前工作目录中,点击“确定”,返回到“Set Path”窗体,依次点击“Save”按钮、“Close”按钮,完成当前工作目录的设置。1/3/202361/3/20237实验方法、步骤实验方法、步骤2.读入一幅读入一幅RGB图像,查看图像信息图像,查看图像信息n在“Command”窗口的命令提示符“”后输入“I=imread(ss.jpg)命令,读入RGB图像“ss.jpg”,数据存在“I”矩
4、阵中;n在“Command”窗口的命令提示符“”后输入“imfinfo(ss.jpg)命令,显示图像“ss.jpg”文件信息。1/3/202381/3/20239实验方法、步骤实验方法、步骤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;”
5、和“I_B(:,:,1)=0;”、“I_B(:,:,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”磁盘文件中。1/3/202310实验方法、步骤实验方法、步骤4.将读入的图像转换成灰度图像并保存为图象文件;将读入的图像转换成灰度图像并保存为图象文件;n在“Command”窗口的命令提示符“”后分别输入“I_Gray=rgb2gray(I
6、)”将图像转变为灰度图像并存于矩阵“I_Gray”中,用“imwrite(I_Gray,ss_Gray.jpg)”将其写入ss_Gray.jpg”磁盘文件中。1/3/202311实验方法、步骤实验方法、步骤5.显示、查看读入图像、分解图像、转换图像;显示、查看读入图像、分解图像、转换图像;用imshow()和imview()显示和查看各图像;用下面命令序列在一个视窗显示各图像:subplot(231);imshow(I);title(原始图像);subplot(233);imshow(I_Gray);title(灰度图像);subplot(234);imshow(I_R);title(红色分量
7、);subplot(235);imshow(I_G);title(绿色分量);subplot(236);imshow(I_B);title(蓝色分量);1/3/2023121/3/202313思考题思考题1.Matlab的当前工作目录;的当前工作目录;2.Matlab处理图像时把图像当作什么进行的?处理图像时把图像当作什么进行的?3.如何查看如何查看RGB图像的各分量图像?图像的各分量图像?4.如何将如何将RGB图像转换成灰度图像?图像转换成灰度图像?1/3/202314实验目的实验目的 了解数字图像频域变换的目的,熟悉了解数字图像频域变换的目的,熟悉DFT、DCT变换的频谱特征及小波变换的特
8、点,变换的频谱特征及小波变换的特点,掌握数字图像掌握数字图像FFT、DCT及及DWT变换变换的方法。的方法。实验二实验二 图像的频域变换图像的频域变换1/3/202315实验内容实验内容1.在在Matlab下读入一幅图像,对其灰度图作下读入一幅图像,对其灰度图作快速傅立叶变换;快速傅立叶变换;2.在在Matlab下读入一幅图像,对其灰度图作下读入一幅图像,对其灰度图作DCT变换;变换;3.在在Matlab下读入一幅图像,对其作下读入一幅图像,对其作DWT分分解。解。1/3/202316实验要求实验要求1.独立完成各项实验内容;独立完成各项实验内容;2.记录每一项实验内容实现的步骤;记录每一项实
9、验内容实现的步骤;3.编写编写FFT、DCT、DWT变换变换Matlab程序;程序;4.打印输出原始图像、打印输出原始图像、FFT的频谱图、将频率平面坐的频谱图、将频率平面坐标原点移至窗口中心的标原点移至窗口中心的FFT频谱图、频谱图、DCT频谱图以频谱图以及及1级小波分解图像;级小波分解图像;5.独立撰写实验报告独立撰写实验报告1/3/202317实验方法、步骤实验方法、步骤1.读入一幅图像,对其灰度图作快速傅立叶变换。读入一幅图像,对其灰度图作快速傅立叶变换。用imread()函数读如工作目录下的“风光壁纸33.jpg”图像存于I矩阵中,用rgb2gray()函数将其转换成灰度图像;用ff
10、t2()函数对其进行FFT变换,并将变换得到的傅立叶频谱存于fft_I矩阵中;用fftshift()函数将傅立叶频谱坐标原点移至窗口中央并存于sfft_I矩阵中;显示FFT频谱图、移动后的频谱图。由于fft_I和sfft_I均为复数矩阵,须用abs()函数求其模,并根据矩阵元素的特点将其归一化到0255之间;用subplot()函数及imshow函数在同一窗口下显示原始图像、灰度图像、FFT频谱图及移动后的频谱图。附:FLY.m文件1/3/202318Fly.m文件内容文件内容%快速傅立叶变换,显示原始快速傅立叶变换,显示原始RGB图像、灰度图像、图像、灰度图像、FFT频谱图频谱图functi
11、on fly(I)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(原点移到中心的傅立叶频谱图像原点移到中心的傅立叶频谱图像)1/3/2023191/3/202320实验方法、步骤实验方法、步骤2.读入一幅图像,对其灰度图作读入一幅图像,对其灰度图作DCT变换。变换。用imread()函数读如工作目录下的“显微煤岩照片.JPG”图像存于I矩阵中,用rgb2gray()函数将其转换成灰度图像;用dct2()函数对其进
13、行DCT变换,并将变换得到的傅立叶频谱存于dct_I矩阵中;显示DCT频谱图 由于dct_I为复数矩阵,须用abs()函数求其模,并根据矩阵元素的特点将其归一化到0255之间;用subplot()函数及imshow函数在同一窗口下显示原始图像、灰度图像、DCT频谱图 附:Lsyx_pp.m文件1/3/202321Lsyx_pp.m文件内容文件内容%DCT变换,显示原始变换,显示原始RGB图像、灰度图像、图像、灰度图像、DCT频谱图频谱图function lsyx_pp(I)subplot(221)imshow(I);title(原始图像原始图像)I=rgb2gray(I);subplot(22
14、3)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(离散余弦频谱图像离散余弦频谱图像)1/3/2023221/3/202323实验方法、步骤实验方法、步骤3.读入一幅图像,对其作读入一幅图像,对其作DWT分解。分解。Matlab下对一幅图象进行小波分解有两种方法,下对一幅图象进行小波分解有两种方法,一是利用一是利用Mtlab提供的提供的“小波工具箱小波工具箱”,二是,二是编写编写Matlab
15、程序。程序。方法一:方法一:点击“Start”按钮,选“Toolbox”“More”“Wavelet”“Wavelet Main Menu(wavemenu)”,弹出“Wavelet Main Menu”窗体;点击“Two-Dimensional”框架中的“Wavelet 2-d”按钮,弹出“Wavelet 2-d”窗体;1/3/2023241/3/2023251/3/202326实验方法、步骤实验方法、步骤点击“File”菜单,选“Load”“Image”,选择要做小波分解的图像”;从“Wavelet”列表中选择合适的小波母函数;从“Level”列表中选择小波分解的级别;点击“Analyze
16、”按钮;调节各参数;对分解结果可以保存和输出。1/3/2023271/3/202328实验步骤实验步骤3.读入一幅图像,对其作读入一幅图像,对其作DWT分解。分解。方法二:方法二:读入进行小波分解的图像,并把它转成灰度图像,存于一个矩阵中,如:X;用wavedct2函数对X进行分解,该函数的格式如下:C,S=wavedt2(X,N,wname)用相关命令输出各图像附:Xbfj.m文件1/3/202329Xbfj.m文件内容文件内容%小波图像分解小波图像分解clearclcX=imread(风光壁纸(蓝色主题)风光壁纸(蓝色主题)8.jpg);subplot(231)imshow(X)title
17、(原始图像原始图像)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);%显示一次小波分解各分量图像显示一次小波分解各分量图像subplot(232)a1=uint8(a1);imshow(a1)title(一次小
18、波分解特征分量图像一次小波分解特征分量图像)subplot(235)h1=uint8(h1);imshow(h1)title(一次小波分解水平细节分量图像一次小波分解水平细节分量图像)subplot(233)v1=uint8(v1);imshow(v1)title(一次小波分解垂直细节分量图像一次小波分解垂直细节分量图像)subplot(236)d1=uint8(d1);imshow(d1)title(一次小波分解对角细节分量图像一次小波分解对角细节分量图像)1/3/2023301/3/202331实验结果分析实验结果分析对对FFT频谱图、频谱图、DCT频谱图及小波分解图做频谱图及小波分解图做
19、必要分析说明;必要分析说明;1/3/202332思考题思考题1.离散傅立叶变换有那些性质?这些性质说离散傅立叶变换有那些性质?这些性质说明了什么:明了什么:2.从从FFT变换得到频谱图说明变换得到频谱图说明FFT变换在数字变换在数字图像处理方面有何可能的作用?图像处理方面有何可能的作用?3.小波变换的优点有哪些?在数字图像处理小波变换的优点有哪些?在数字图像处理方面有何优势?方面有何优势?1/3/202333实验目的实验目的 了解图像增强与复原的体系结构;了解图像增强与复原的体系结构;熟悉灰熟悉灰度变换、直方图修正、图像平滑、图像度变换、直方图修正、图像平滑、图像锐化及伪彩色处理在数字图像增强
20、方面锐化及伪彩色处理在数字图像增强方面的作用及各自的特点;的作用及各自的特点;掌握图像增强的掌握图像增强的灰度变换法、直方图修正法,掌握图像灰度变换法、直方图修正法,掌握图像平滑、图像锐化的滤波器设计方法,掌平滑、图像锐化的滤波器设计方法,掌握图像的伪彩色处理方法。握图像的伪彩色处理方法。实验三实验三 图像增强与复原图像增强与复原 1/3/202334实验内容实验内容1.读入一幅有明显明暗缺陷的灰度图像,读入一幅有明显明暗缺陷的灰度图像,分析其直方图特征,分别用分段灰度线分析其直方图特征,分别用分段灰度线性变换法、直方图均衡法和图像灰度调性变换法、直方图均衡法和图像灰度调整法整法(imadju
21、st)分别进行处理;分别进行处理;2.读入一幅灰度图像读入一幅灰度图像,分别给其加上,分别给其加上“乘性乘性噪声噪声”、“椒盐噪声椒盐噪声”,然后分别用,然后分别用“均值均值滤波滤波”、“中值滤波中值滤波”和和“巴特沃斯滤波巴特沃斯滤波”对对其做平滑处理;其做平滑处理;1/3/202335实验内容实验内容3.读入一幅灰度图像,分别用读入一幅灰度图像,分别用“Sobel算子算子”、“Laplacian算子算子”、“梯形滤波器梯形滤波器”对其做对其做锐化处理;锐化处理;4.读入一幅灰度图像,分别用读入一幅灰度图像,分别用“灰度级分层灰度级分层法法”、“灰度变换法灰度变换法”和和“频域伪彩色处理频域
22、伪彩色处理法法”对其进行伪彩色增强;对其进行伪彩色增强;5.读入一幅图像,对其进行模糊化,然后读入一幅图像,对其进行模糊化,然后用用“逆滤波法逆滤波法”对其进行复原处理。对其进行复原处理。1/3/202336实验要求实验要求1.独立完成各项实验内容;独立完成各项实验内容;2.记录每一项实验内容实现的步骤;记录每一项实验内容实现的步骤;3.编写编写“灰度增强灰度增强”、“平滑平滑”、“锐化锐化”、“伪彩色增伪彩色增强强”、“图像复原图像复原”的的Matlab程序;程序;4.打印输出经打印输出经“灰度增强灰度增强”、“平滑平滑”、“锐化锐化”、“伪伪彩色增强彩色增强”、“图像复原图像复原”处理的图
23、像及各自的原处理的图像及各自的原始图像;始图像;5.独立撰写实验报告独立撰写实验报告1/3/202337实验方法、步骤实验方法、步骤1.读入一幅有明显明暗缺陷的灰度图像,分析其直方图特征,读入一幅有明显明暗缺陷的灰度图像,分析其直方图特征,分别用分段灰度线性变换法、直方图均衡法和图像灰度调分别用分段灰度线性变换法、直方图均衡法和图像灰度调整法整法(imadjust)分别进行处理;分别进行处理;在“资源管理器”下以“缩略图”的方式浏览图片库,发现名为“6_gray.jpg”的图像明显整体偏暗,在Matlab下读入该图像,用imhist函数提取该图像的灰度直方图(图3-1)。从该图像的灰度直方图可
24、以看出:该图像大多数像素的灰度值在140以下,140240灰度级间象素数分布均匀,缺少240255灰度级的象素,将0255灰度级归一化到01,140对应0.55。1/3/202338图3-11/3/202339 分段灰度线性变换:分段灰度线性变换:根据上述分析,将原图像灰度值在0140采用线性变换到0200,140200线性变换到200255。变换后的图像及其灰度直方图见图3-2。直方图均衡:直方图均衡:在Matlab下用histeq函数可以对一幅图像直接进行直方图均衡,对“6_gray.jpg”做直方图均衡后的图像及其灰度直方图见图3-2。图像灰度调整:图像灰度调整:在Matlab下imad
25、just函数用以对图像的灰度级调整,根据前面分析,将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(分段灰度线性变换分段灰度线性变换);%直方图均衡法法直方图均衡法法I=uint8(I);J=histeq(I);subplot(2,3,5);imshow(J);title(直方图
26、均衡图像直方图均衡图像);%图像灰度调整图像灰度调整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.m1/3/202342实验方法、步骤实验方法、步骤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(fspecial(average,3),I_noise_salt_pepper)/255;I_noise_speckle_avera
28、ge=filter2(fspecial(average,3),I_noise_speckle)/255;1/3/202343 对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);巴特沃斯滤波:巴特沃斯滤波:首先对添加噪声的图像进行快速傅立叶变换首先对添加噪声的图像进行快速傅立叶变换 fft_I_noise_speckle=fft2
29、(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=BUTTERH.*fft_I_noise_speckle;快速傅立叶逆变换快速傅立叶逆变换 BUTTERfiltered=ifft2(BUTTERG);1/3/202
30、344 图3-31/3/2023%实验三_2:对加上“乘性噪声”、“椒盐噪声”%用“均值滤波”、“中值滤波”对其做平滑处理;%对“乘性噪声”图像进行“巴特沃斯滤波”做平滑处理;clear;J,map=imread(18.jpg);I=rgb2gray(J);%添加“椒盐噪声”I_noise_salt_pepper=imnoise(I,salt&pepper);%添加“乘性噪声”I_noise_speckle=imnoise(I,speckle);%对I_noise_salt_pepper用33模板做均值滤波I_noise_salt_pepper_average=filter2(fspecial
31、(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_salt_pepper,3,3);%I_noise_speckle用33模板做中值滤波I_noise_speckle_med=medfilt2(I_noise_speckle,3,
32、3);shiyan_3_2.m1/3/2023%巴特沃斯滤波:%对添加噪声的图像进行快速傅立叶变换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=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%进行巴特沃斯滤波BUTTE
33、RG=BUTTERH.*fft_I_noise_salt_pepper;%快速傅立叶逆变换BUTTERfiltered=ifft2(BUTTERG);1/3/2023subplot(3,3,1);imshow(J);title(原始图像);subplot(3,3,2);imshow(I);title(灰度图像);subplot(3,3,3);imshow(I_noise_salt_pepper);title(加“椒盐噪声”(salt&pepper)图像);subplot(3,3,4);imshow(I_noise_speckle);title(加“乘性噪声”(speckle)图像);subpl
34、ot(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(“乘性噪声”图像33模板均值滤波);subplot(3,3,8);imshow(I_noise_speckle_med);title(“乘性噪声”图像33模板中值滤波);subplot(3,3,9);imshow
35、(BUTTERfiltered,map);title(“椒盐噪声”图像经“巴特沃斯滤波”);1/3/202348实验方法、步骤实验方法、步骤3.读入一幅灰度图像,分别用读入一幅灰度图像,分别用“Sobel算子算子”、“Laplacian算子算子”、“梯形滤波器梯形滤波器”对其做锐化处理;对其做锐化处理;Matlab下在空间域对图像做锐化处理有两种方法,对于Matlab提供的算子,可以直接用滤波的方法,对于知道模板矩阵的,也可采取“模板-卷积”的方法。Matlab提供了“Sobel算子”,这里采取滤波的方法,对“Laplacian算子,其模板矩阵为0 1 0,1-4 1,0 1 0,这里采取“模
36、板-卷积”的方法。Matlab下在频率域对图像做锐化处理方法与平滑类似。1/3/2023%实验三_3:%用“Sobel算子”、“Laplacian算子”、%“梯形滤波器”对图像做锐化处理clear;I map=imread(BANNER.jpg);subplot(2,2,1);imshow(I,map);title(原始图像);I=rgb2gray(I);subplot(2,2,2);imshow(I,map);title(灰度图像);%用“Sobel算子”对图像做锐化处理H=fspecial(sobel);J=filter2(H,I);subplot(2,3,4);imshow(J);tit
37、le(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=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(
38、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.m1/3/202350图3-41/3/2023实验方法、步骤实验方法、步骤4.读入一幅灰度图像,分别用读入一幅灰度图像,分别用“灰度级分层法灰度级分层法”、“灰灰度变换法度变换法”和和“频域伪彩色处理法频域伪彩色处理法”对其进行伪彩色对其进行伪彩色增强;增强;“灰度级分层法灰度级分层法
39、”:Matlab下用grayslice函数对灰度图像进行分层,在显示该分层图像时指定颜色模型,就可以对该灰度图像进行彩色显示,从而达到伪彩色增强的目的;%Matlab中灰度分层法伪彩色图象的实现clear;I=imread(1.jpg);imshow(I);title(原始灰度图像);I=rgb2gray(I);X=grayslice(I,24);figure,imshow(X,copper(24);title(24级灰度分层copper(24)伪彩色图像);1/3/202352图3-51/3/202353“灰度变换法灰度变换法”:读入一幅灰度图像,计算图像的尺寸,根据图像尺寸设定循环,逐个像
40、素进行灰度到彩色的转换(梯形法)。当像素的灰度值1/4最高灰度级,而1/2最高灰度级,3/4最高灰度级时,将其归到G(绿色)位平面,并用线性拉伸的方法映射到绿色的0255区间;将三个位平面合成为一幅彩色图像。1/3/2023%Matlab中灰度变换法伪彩色图象的实现clear;I=imread(高对比度:精美高清风光壁纸5.jpg);%I=rgb2gray(I);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)
41、=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(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(灰度分级伪彩
42、色图像);1/3/202355图3-61/3/202356“频域伪彩色处理法频域伪彩色处理法”:读入一幅灰度图像,进行FFT变换,分别进行低通滤波、带通滤波、高通滤波,得到三个独立的频率分量,人为地将它们分别归属为R、G、B分量,再分别将R、G、B分量进行快速傅立叶逆变换,得到R、G、B三个位平面,最后将三个位平面合成为一幅伪彩色图像。1/3/2023%Matlab频域伪彩色图象的实现clear;I=imread(风景04.jpg);I=rgb2gray(I);I=imadjust(I);subplot(1,2,1);imshow(I);title(原始灰度图像);I=double(I);M
43、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;1/3/2023for u=1:M for v=1:N D(u,v)=sqrt(u2+v2);Red_L(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);
44、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);Blue=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=
45、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(:,:,3)=Blue_color;OUT=abs(OUT);subplot(1,2,2);imshow(OUT);title(频率域伪彩色图像频率域伪彩色图像);1/3/202359图3-71/3/202360实验方法、步骤实验方法、步骤5.读入一幅图像,对其进行模糊化,然后用读入一幅图像,对其
46、进行模糊化,然后用“逆滤波逆滤波法法”对其进行复原处理。对其进行复原处理。一幅质量改进或退化的图像可以近似地用方程一幅质量改进或退化的图像可以近似地用方程g=Hf+n表示,其中表示,其中g为图像,为图像,H为变形算子,又称点扩散函数为变形算子,又称点扩散函数(PSF),f为原始的真实图像,为原始的真实图像,n为附加噪声,它在图像为附加噪声,它在图像捕获过程中产生并且使图像质量下降。捕获过程中产生并且使图像质量下降。Matlab工具中有工具中有4个图像恢复函数:个图像恢复函数:deconvwnr:用Wiener滤波器实现图像恢复deconvreg:用regularized滤波器实现图像恢复dec
47、onvlucy:用Lucy-Richardson算法实现图像恢复deconvblind:用Blind去卷积算法实现图像恢复这4个函数都将PSF和模糊图像作为主要变量。1/3/202361deconvwnr 函数求取最小二乘解,deconvreg函数求取有约束的最小二乘解,可以设置对输出图像的约束。使用这些函数中的任何一个,都应提供一些与噪声相关的信息来减少恢复过程中可能出现的噪声扩大。deconvlucy函数实现了一个加速衰减的Lucy-Richardson算法。使用该函数不需要提供有关模糊图像中附加噪声的信息。deconvblind函数用盲去卷积算法,它在不知道PSF的情况下进行图像恢复。调
48、用该函数时,将PSF的初值作为一个变量进行传递。该函数不仅返回一个修复后的图像,还返回一个修复后的PSF。1/3/202362deconvwnr 函数求取最小二乘解,deconvreg函数求取有约束的最小二乘解,可以设置对输出图像的约束。使用这些函数中的任何一个,都应提供一些与噪声相关的信息来减少恢复过程中可能出现的噪声扩大。deconvlucy函数实现了一个加速衰减的Lucy-Richardson算法。使用该函数不需要提供有关模糊图像中附加噪声的信息。deconvblind函数用盲去卷积算法,它在不知道PSF的情况下进行图像恢复。调用该函数时,将PSF的初值作为一个变量进行传递。该函数不仅返
49、回一个修复后的图像,还返回一个修复后的PSF。1/3/2023I=imread(31.jpg);%读入原始图像读入原始图像IPSF=fspecial(motion,30,10);%生成点扩散函数生成点扩散函数MF=imfilter(I,PSF,circular);%用点扩散函数实现图像模糊用点扩散函数实现图像模糊(退化退化)noise=imnoise(zeros(size(I),gaussian);%产生高斯噪声产生高斯噪声INITPSF=ones(size(MF);J=deconvwnr(MF,PSF);K=deconvreg(MF,PSF);M=deconvblind(MF,INITPSF
50、,3);subplot(2,2,1);imshow(I);title(原始图象原始图象);subplot(2,2,2);imshow(MF);title(运动模糊图象运动模糊图象);subplot(2,3,4);imshow(J);title(维纳逆滤波图象维纳逆滤波图象);subplot(2,3,5);imshow(K);title(拉格郎日逆滤波图象拉格郎日逆滤波图象);subplot(2,3,6);imshow(M);title(Blind逆滤波图象逆滤波图象);1/3/202364图3-81/3/202365实验结果分析实验结果分析1.比较分段灰度线性变换法、直方图均衡法和图像灰度调整