数字图像处理实习报告

数字图像处理实习报告

       实验报告

       学 院: 地信院

       班 级: 生医110

       姓 名:

       学 号:

       指导教师: 戴培山,喻罡

       时 间: 2022.7.15

       数字图像处理实习一.目的1. 用MATLAB或其他的语言来实现数字图像处理方面的一些操作; 2. 熟悉MATLAB7.1的一些基本函数及与数字图像处理相关的函数; 3. 熟悉图形用户界面(GUI),并用其来编写界面;

       4.熟悉数字图像处理课程中的一些知识点,如图像灰度变化,直方图,图像增强,滤波,图像复原,形态学处理,图像边缘检测,图像放大和缩小等等,并能用MATLAB实现以上的功能; 5. 掌握从简单到复杂的方法,一步一步的实现功能,并能耐心排错,养成合作互助精神。

       二.任务

       1.实现图像的打开,显示,保存操作,实现图像的旋转; 2.实现图像的灰度变换(图像反转,对数反转,幂次反转); 3.实现图像的大小变换;

       4.实现图像的直方图处理及直方图均衡化;

       5.实现图像的空域和频域增强,实现均值滤波,维纳滤波,中值滤波及巴特沃斯低通、高通滤波; 6.实现图像的加噪,如椒盐噪声、高斯噪声等;

       7.实现图像的形态学运算,如开运算,闭运算,膨胀运算,腐蚀运算等操作;

       8.实现图像的边缘检测,如Robert算子边缘检测,Sobel算子边缘检测,Prewitt算子边缘检测,Log算子边缘检测,Canny算子边缘检测;

       9.实现整个界面的设计,编排,最终达到一种比较完美的效果。

       三.主要内容

       程序和界面截图

       设计步骤 1启动GUIDE

       在命令窗口中键入guide,启动GUIDE,显示如下图所示的“GUIDE Quick Start” 对话框。

       打开“GUIDE Quick Start”对话框,利用GUIDE 模板创建新的GUI,选择一个模板后,单机OK 按钮,在输出编辑器中打开GUI。如下:

       2输出编辑器

       在GUIDE中打开GUI以后,它显示在输出编辑器中。输出编辑器是所有GUIDE工具的控制面板。可以通过拖拉控件来设计GUI,这些控件位于输出编辑器左侧的工具箱中,有按钮、弹出式菜单和坐标系等多种。也可以用输出编辑器设置GUI控件的基本属性。3菜单编辑器

       利用菜单编辑器,可以创建、设置、修改下拉式菜单和弹出式菜单。在GUIDE中单机工具栏上的按钮,或者选择“Tools”菜单中的“Menu Editor…”选项,打开菜单编辑器的界面,如下图所示:

       钮用于创建下拉式主菜单的子菜单 最终GUI菜单栏运行效果图如下:

       上图中左上角:数字图像处理实习报告

       数字图像处理报告

       数字图像处理实习报告

       专业:生医090

       小组成员:李建鲁、张丹

       指导老师:喻 罡

       2022年7月10日

       数字图像处理报告

       数字图像处理报告

       数字图像处理

       一、目的1.用MATLAB或其他的语言来实现数字图像处理方面的一些操作; 2.熟悉MATLAB7.1的一些基本函数及与数字图像处理相关的函数; 3.熟悉图形用户界面(GUI),并用其来编写界面;

       4.熟悉数字图像处理课程中的一些知识点,如图像灰度变化,直方图,图像增强,滤波,图像复原,形态学处理,图像边缘检测,图像放大和缩小等等,并能用MATLAB实现以上的功能;

       5.掌握从简单到复杂的方法,一步一步的实现功能,并能耐心排错,养成合作互助精神。

       二、任务

       1.实现图像的打开,显示,保存操作,实现图像的旋转; 2.实现图像的灰度变换(图像反转,对数反转,幂次反转); 3.实现图像的大小变换;

       4.实现图像的直方图处理及直方图均衡化;

       5.实现图像的空域和频域增强,实现均值滤波,维纳滤波,中值滤波及巴特沃斯低通、高通滤波;

       6.实现图像的加噪,如椒盐噪声、高斯噪声等;

       7.实现图像的形态学运算,如开运算,闭运算,膨胀运算,腐蚀运算等操作; 8.实现图像的边缘检测,如Robert算子边缘检测,Sobel算子边缘检测,Prewitt算子边缘检测,Log算子边缘检测,Canny算子边缘检测; 9.实现整个界面的设计,编排,最终达到一种比较完美的效果。

       三、主要内容及步骤

       本次实验主要是利用设计编辑器进行GUI界面设计,并进行相应代码编写,以实现数字图像处理。

       步骤:1、启动GUIDE。直接输入guide运行或单击File菜单栏中的New打开GUI模块界面。

       数字图像处理报告

       2、利用GUI界面中的控件完成界面设计。 3、用属性编辑器设置各个控件的相关属性。4、编写回调程序。

       主要界面

       四、算法实现(相应代码)

       数字图像处理报告

       打开:

       [filename,pathname]=...uigetfile({'*.jpg','JPEG-Files(*.jpg)';...'*.tif','TIF-Files(*.tif)';'*.png','PNG-Files(*.png)';...'*.*','All Files(*.*)'},'••__','untitled.jpg');str=[pathname,filename];global image;global dai;image=imread(str);dai=image;

       axes(handles.axes1);imshow(image);

       数字图像处理报告

       图像翻转:可以实现顺时针90度的选转,每点击一下,则选择90° global dai;

       dai=imrotate(dai,90,'bilinear');axes(handles.axes2);imshow(dai);

       对数翻转:

       global dai;

       A=double(dai);[m,n]=size(dai);

       for x=1:m

       for y=1:n

       g(x,y)=log(A(x,y) 1);end

       end

       axes(handles.axes2);imshow(mat2gray(g));

       数字图像处理报告

       幂次翻转:

       global dai;a=double(dai);[m,n]=size(dai);

       for x=1:m for y=1:n g(x,y)=0;

       g(x,y)=a(x,y).^5;

       end

       end

       axes(handles.axes2);imshow(mat2gray(g));

       直方图:

       数字图像处理报告

       global dai;

       axes(handles.axes2);[counts,x]=imhist(dai);bar(x,counts);

       直方图均衡化: global dai;

       J= histeq(dai);axes(handles.axes2);imshow(J);

       开运算:

       global dai;

       se=strel('disk',1);

       pp3=imopen(dai,se);axes(handles.axes2);

       数字图像处理报告

       imshow(pp3);

       闭运算:

       global dai;

       se=strel('disk',1);pp4=imclose(dai,se);axes(handles.axes2);imshow(pp4);

       膨胀运算:

       global dai;

       se=strel('disk',1);pp1=imdilate(dai,se);axes(handles.axes2);

       数字图像处理报告

       imshow(pp1);

       腐蚀运算:

       global dai;

       se=strel('disk',1);pp2=imerode(dai,se);axes(handles.axes2);

       imshow(pp2);

       数字图像处理报告

       椒盐噪声:加入的参数为0.05 global dai global image prompt={'输入参数1:'};defans={'0'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});dai=imnoise(image,'salt & pepper',p1);%生成椒盐噪声 axes(handles.axes2);imshow(dai);imwrite(dai,'salt.jpg');

       数字图像处理报告

       高斯噪声:输入的参数1为0.5参数2为0.5 global dai global image prompt={'输入参数1:','输入参数2:'};defans={'0','0'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});p2=str2num(p{2});dai=imnoise(image,'gauian',p1,p2);%生成高斯噪声 axes(handles.axes2);imshow(dai);

       数字图像处理报告

       Log算子边缘检测: global dai;

       BW4=edge(dai,'log');axes(handles.axes2);imshow(BW4);

       Sobel算子边缘检测:

       数字图像处理报告

       global dai;

       BW2=edge(dai,'sobel');axes(handles.axes2);imshow(BW2);

       Canny算子边缘检测: global dai;

       BW5=edge(dai,'canny');axes(handles.axes2);imshow(BW5);

       数字图像处理报告

       Prewitt算子边缘检测: global dai;

       BW3=edge(dai,'prewitt');axes(handles.axes2);imshow(BW3);

       数字图像处理报告

       均值滤波:

       global dai;

       axes(handles.axes2);

       k1=filter2(fspecial('average',5),dai)/255;imshow(k1);

       数字图像处理报告

       维纳滤波:

       数字图像处理报告

       global dai;axes(handles.axes2);prompt={'输入参数1:','输入参数2:'};defans={'5','5'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});p2=str2num(p{2});dai=wiener2(dai,[p1,p2]);%维纳滤波 imshow(dai);imwrite(dai,'wiener.jpg');

       数字图像处理报告

       中值滤波:

       global dai dai=medfilt2(dai,[5,5],'symmetric');axes(handles.axes2);%中值滤波 imshow(dai);imwrite(dai,'medfilt.jpg');

       数字图像处理报告

       巴特奥斯滤波: global dai;

       axes(handles.axes2);f=double(dai);g=fft2(f);g=fftshift(g);[N1,N2]=size(g);n=2;d0=50;n1=fix(N1/2);n2=fix(N2/2);

       for i=1:N

       1for j=1:N2

       d=sqrt((i-n1)^2 (j-n2)^2);h=1/(1 0.414*(d/d0)^(2*n));result(i,j)=h*g(i,j);

       end

       end

       result=ifftshift(result);X2=ifft2(result);X3=uint8(real(X2));imshow(X3);

       数字图像处理报告

       高通滤波:

       global dai;

       axes(handles.axes2);f=double(dai);g=fft2(f);g=fftshift(g);[N1,N2]=size(g);n=2;d0=5;

       n1=fix(N1/2);n2=fix(N2/2);

       for i=1:N

       for j=1:N2

       d=sqrt((i-n1)^2 (j-n2)^2);

       if d==0 h=0;

       else

       h=1/(1 (d0/d)^(2*n));

       end

       result(i,j)=h*g(i,j);

       end

       end

       result=ifftshift(result);X2=ifft2(result);

       数字图像处理报告

       X3=uint8(real(X2));imshow(X3);

       图像旋转:可以任意角度旋转,上图为旋转30°的截图 global image

       axes(handles.axes2);prompt={'旋转角度:'};defans={'0'};

       p=inputdlg(prompt,'input',1,defans);p1=str2num(p{1});

       f=imrotate(image,p1,'bilinear','crop');imshow(f);

       handles.img=f;

       guidata(hObject,handles);

       数字图像处理报告

       上下翻转:

       global image f=flipud(image);axes(handles.axes2)imshow(f);

       handles.img=f;guidata(hObject,handles);

       镜像翻转:

       axes(handles.axes2);global image f=fliplr(image);imshow(f);handles.img=f;

       guidata(hObject,handles);

       数字图像处理报告

       转换成灰度: global dal;global image %T=getimage;

       dal=rgb2gray(image);axes(handles.axes2);imshow(dal);

       截图:

       global dal;global image

       axes(handles.axes2);

       dal=imcrop(image);axes(handles.axes2);imshow(dal);

       数字图像处理报告

       global image axes(handles.axes2);imshow(image);

       数字图像处理报告

       撤销:

       axes(handles.axes2);global T imshow(T);

       数字图像处理报告

       放大与缩小: global image

       axes(handles.axes2);b=double(image);

       a=str2num(get(handles.edit5,'String'));c=imresize(b,a,'nearest');imshow(uint8(c));axes(handles.axes2);

       数字图像处理报告

       保存:

       [FileName FilePath]=uiputfile({'*.jpg','JPEG-Files(*.jpg)';...'*.tif','TIF-Files(*.tif)';'*.png','PNG-Files(*.png)';...'*.*','All Files(*.*)'},'••__','untitled.jpg');

       if ~isequal([FileName,FilePath],[0,0])FileFullName=[FilePath FileName];axes(handles.axes2);ITER=getimage(gca);

       imwrite(ITER,FileFullName,'jpg');

       else

       msgbox('保存失败!');

       end

       数字图像处理报告

       六、讨论

       (1)在基于空域的图像增强中,对数变换和指数变化,能压缩或抑制明暗灰度级,从而是图片变得清晰。

       (2)直方图均衡化能是变化后的图像函数密度分布近似均匀化,扩展了像素动态范围,但不能抑制噪声。

       (3)均值滤波能有效除去图像中不相关的细节,减少噪声,但易引起边缘模糊;中值滤波去噪能力强,对椒盐噪声尤为有效,能有效保持图像的细节(边缘)。(4)基于频域的图像增强中,巴特沃斯滤波和高斯滤波都能使图像平滑,但巴特沃斯不能彻底消除振铃效应,而高斯可以。

       (5)边缘检测中:Sobert算子在用于水平和垂直方向的检测时精确度高但容易丢失边缘。不能抑制噪声,对陡峭的地噪声图像检测效果好。Sobel算子能抑制一定的噪声,易引起边缘模糊,检测出为噪声,检测效果低。Prewitt算子和Sobel相似。Log算子对噪声抑制明显,亦能是边缘平滑,但有时会丢失很多边缘。Canny算子抗躁能力强,检测精度高。

       七、实习总结

       刚开始听到老师讲实习内容是觉得比较简单,因为以前用过MATLAB做过类似的实验,何况这次可以调用MATLAB中本身库函数。但真正去看了题目时觉得好难,既要用GUI设计界面,又要编写代码,而对于MATLAB的应用也不是很熟练。经过查阅资料,和队友讨论总算有了思路。

       刚刚开始时的确不熟悉,总是犯错,有各种各样的问题,加上粗心大意,经常错误还找不到错误。通过这15天的实习我学会了很多知识,对如何获得知识也有了一定的感知。并且有效地培养我们自学能力和合作互作精神。

       首先,对于这个题目,要有充分利用老师见过的知识和上次实践的相关内容。同时,和同学讨论,了解他人的想法和思路,最后得出自己的思路。

       其次,熟悉MATLAB的基本运用,利用GUI设计界面的方法及相关库函数的使用和代码的编写。

       最后,是实验的调试,找出错误,并改正,从而达到预期的效果。

       通过本次实验,有效地巩固了课本知识,综合各方面因素,让我们理解数字图像处理各种方法的优缺点。

       八、参考文献

       1、数字图像处理

       2、《EEE图像处理学报》[1996]的专刊中介绍了非线性图像处理的内容。

       3、网上资料

遥感数字图像处理实习报告

       目录

       一、实习目的 ......1 二、实习要求......1 三、实习内容......1 3.1 图像裁剪...1 3.2 图像配准...3 3.3 监督分类...6 四、实习总结.....16

       I

       一、实习目的(1)熟悉使用erdas软件

       (2)了解图像处理的原理与步骤,提高动手能力

       二、实习要求

       (1)对图像进行裁剪

       (2)将TM图像与与临川区图像进行配准(校正)(3)对图像进行监督分类

       三、实习内容

       3.1 图像裁剪

       利用临川区行政边界AOI文件对TM图象进行裁剪,裁剪出临川区TM图象。基本步骤如下:

       (1)打开erdas imagine 9.2,单击“data proparation”,如图

       图1 data proparation 界面

       (2)单击“subset imagine”,进入以下界面:

       图2 subset界面

       (3)图像裁剪的方法有三种

       ① 在TM影像上,通过AOI工具进行裁剪,裁剪出所需要的范围 ② 通过使用文件裁剪

       ③ AOI裁剪,在subset界面,单击AOI,图3 AOI文件的输入

       (4)输入AOI文件后,确认并进行裁剪,得到以下结果

       图4 裁剪后的结果

       3.2 图像配准

       map-to-image: 1:10万临川区土地利用图与TM图象配准;

       要求最初选GCP点6-10个,及检测点5个,各点均匀分布,RMS检验误差小于30米(1个像元)。

       (1)进入“data proparation”界面,单击以下图中所示:

       图5 data proparation 界面

       (2)选择视窗,应该注意影像图的选择,选择tiff格式的临川区规划图(需校正的影像)

       图6 视窗的选择

       (3)模型的选择(多项式)

       图7 模型选择界面

       (4)模型选择后,进行参数的设置,如:次数的选择【次数不多选择的控制点个数不多】、单位的选择

       图8 参数设置

       (5)设置完参数,进入控制点建立所涉及的窗口,选择已存在的窗口

       图9 采集点的形式

       (6)弹出以下窗口,这时就应该选择TM影像图(参考影像),之后还会显示图像的参考椭球、区间等,并进入图像校正界面,进行控制点的选择。

       注:1)选择控制点后,比如上面选择2次,在:数字图像处理编程实习报告

       遥感灰度图像地物识别预处理

       XX

       武汉大学 遥感科学与技术专业, 武汉 430079

       E-mail: XXX@XXXX.com

       摘 要:通过航摄等方式获取的遥感图像往往是灰度图像,辨识度不高,为了更好地分辨植被、水系、建筑等不同地物及其分布状况,就需要对图像进行预处理,包括平滑、边缘锐化、伪彩色增强等。关键词: 遥感图像,预处理,平滑,锐化,伪彩色增强

       1 引言

       随着遥感技术的快速发展及日益增长的生产生活需求,遥感图像在现实中的应用越来越广泛。为了使图像拥有更好的显示效果,发挥更大作用,就需要与相关的数字图像处理方法联系起来。1.1 问题的提出

       遥感图像很大一部分是灰度图像,不能展现真实的地物原貌,辨识度不高,需要想办法解决。1.2 本报告研究的意义

       本报告主要介绍遥感灰度图像为了更好地进行地物识别而采取的部分简单处理步骤,使笔者对遥感生产实践加深了了解,同时巩固了相关数字图像处理知识。

       1.3 本报告研究的结构安排

       本报告分为引言、算法描述、实验结果及分析、总结与展望、实习心得与体会等五个部分阐述。

       2 算法描述

       2.

       1算法1-中值滤波

       刚获取的原始遥感图像由于仪器质量、大气因素、光照因素等多方面影响,会产生部分干扰及噪声。预处理的:《数字图像处理》

       实验五 图像的几何变换

       一.实验目的及要求

       掌握图像几何变换的基本原理,熟练掌握数字图像的缩放、旋转、平移、镜像和转置的基本原理及其MATLAB编程实现方法。

       二、实验内容

       (一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。

       1.图像缩放 clear all, close all I = imread('cameraman.tif');Scale = 1.35;

       % 将图像放大1.35倍

       J1 = imresize(I, Scale, 'nearest');

       % using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');

       % using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');help imresize

       % 查看imresize使用帮助

       1.95倍

       I = imread('cameraman.tif');Scale = 1.96;

       % 将图像放大1.96倍

       J1 = imresize(I, Scale, 'nearest');

       % using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');

       % using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');

       说明:

       注意观察不同插值方法的图像表现; 改变图像缩放因子Scale,重做上述实验。2.图像旋转

       clear all, close all I = imread('cameraman.tif');Theta = 45;

       % 将图像逆时针旋转45。

       J1 = imrotate(I, Theta, 'nearest');

       % using the nearest neighbor interpolation Theta =-45;

       % 将图像顺时针旋转45。

       J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');% 查看imrotate使用帮助

       5 help imrotate %-------

       图像旋转30顺时针逆时针

       clear all, close all I = imread('cameraman.tif');Theta = 30;

       % 将图像逆时针旋转30。

       J1 = imrotate(I, Theta, 'nearest');

       % using the nearest neighbor interpolation Theta =-30;

       % 将图像顺时针旋转30。

       J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');7

       8 说明:

       注意观察不同插值方法和输出图像后处理方法的图像表现; 改变旋转角度大小和方向,重做上述实验。

       3.图像水平镜象

       clear all, close all I = imread('cameraman.tif');I1 = flipdim(I,2);

       I2 = flipdim(I,1);figure(1), subplot(1,2,1), imshow(I);subplot(1,2,2), imshow(I1);figure(2), subplot(2,1,1), imshow(I);subplot(2,1,2), imshow(I2);%----

       (二)用MATLAB编程实现以下图像几何变换(参考自编讲义相关章节)

       10 1.图像扭曲变换 2.球面变换

       三、实验设备

       1.PIII以上微机; 2.MATLAB6.5;

       四、预习与思考

       1.预习实验内容,阅读教材熟悉实验原理;

       2.查阅资料,熟悉实验中涉及的有关MATLAB函数;

       3.利用课余时间,采用MATLAB底层函数编程实现实验内容

       (二)中的图像平移、图像转置等几何变换。

       五、实验报告要求

       1.简述试验的目的和试验原理;

       2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果; 3.打印出所编写的实验程序。4.写出本实验的心得体会及意见。

       实验六

       数字图像处理应用

       一.实验目的及要求

       1.利用MATLAB提供的图像处理函数实现图像中物体属性的测量; 2.训练综合运用MATLAB图像处理函数的能力; 3.了解数字图像处理基本应用。

       二、实验内容

       以大米粒特性测量为例,综合应用课程中图像分割、形态学滤波、图像增强、图像特征提取等图像处理方法,实现大米粒特性自动测量。实验过程简述:

       1. 读取和显示图像 2. 估计图像背景 3. 获取背景均匀的图像 4. 图像增强 5. 图像二值化分割 6. 区域标记及为彩色处理

       7. 测量图像中的区域特性(面积、质心等)

       8.统计大米粒的特性分布规律。

       (一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结

       11 果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。

       % Read and Display an Image clear, close all,close all;I = imread('rice.png');

       figure, imshow(I)

       % Use Morphological Opening to Estimate the Background

       background = imopen(I,strel('disk',15));

       figure, imshow(background);

       %Display the Background Approximation as a Surface

       figure, surf(double(background(1:8:end,1:8:end))),zlim([0 255]);set(gca,'ydir','reverse');% Subtract the Background Image from the Original Image I2 = imsubtract(I,background);figure, imshow(I2)% Adjust the Image Contrast I3 = imadjust(I2, stretchlim(I2), [0 1]);figure, imshow(I3);% Apply Thresholding to the Image level = graythresh(I3);bw = im2bw(I3,level);figure, imshow(bw)% Determine the Number of Objects in the Image [labeled,numObjects] = bwlabel(bw,4);

       % Label components.numObjects % Examine the Label Matrix RGB_label = label2rgb(labeled, @spring, 'c', 'shuffle');figure, imshow(RGB_label);% Measure Object Properties in the Image graindata = regionprops(labeled,'basic')allgrains = [graindata.Area];% Compute Statistical Properties of Objects in the Image max(allgrains);biggrain = find(allgrains==695)mean(allgrains);figure, hist(allgrains,20);12

       (详见MATLAB IPT的 帮助文档demo中的Correcting Nonuniform Illumination)

       (二)查看MATLAB IPT 帮助文档,研究其它应用演示

       三、实验设备

       16 1.PIII以上微机; 2.MATLAB6.5;

       四、预习与思考

       1.预习实验内容,阅读教材熟悉实验原理; 2.查阅资料,熟悉实验中涉及的有关函数。

       3.利用课余时间,采用MATLAB函数编程实现实验内容

       (二)。

       五、实验报告要求

       1.简述试验的目的和试验原理;

       2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果; 3.打印出所编写的实验程序。4.写出本实验的心得体会及意见。

数字图像处理

       中南大学

       数字图像处理实验 实验名称:空间滤波和频域滤波

       班级:电子信息0802班

       姓名:李哲 学号:0909080609 实验日期:2022年12月22日

       目录

       一,实验目的„„„„„„„„„„„„„„„„„„„„„„„3 二,给图像添加噪声„„„„„„„„„„„„„„„„„„„„4 三,对被噪声污染的图像进行中值滤波和均值滤波„„„„„„„5 四,对图像进行空间域的锐化„„„„„„„„„„„„„„„„6 五,MATLAB以外函数空间滤波和图像锐化„„„„„„„„„„7 六,自带函数傅立叶变换和反变换„„„„„„„„„„„„„„8 七,低通滤波器程序„„„„„„„„„„„„„„„„„„„„9 八,心得体会 „„„„„„„„„„„„„„„„„„„„„„10 九,参考文献 „„„„„„„„„„„„„„„„„„„„„„10

       一、实验目的 1,空间滤波:

       图像平滑主要目的是减少噪声。噪声有很多种类,不同的噪声有不同的抑制措施。本实验要求用平滑线性滤波和中值滤波2种最典型、最常用的处理算法进行程序设计,学习如何对已被噪声污染的图像进行“净化”。通过平滑处理,对结果图像加以比较,得出自己的实验结论。学习如何用锐化处理技术来加强图像的目标边界和图像细节,对图像进行梯度算子、拉普拉斯算子,使图像的某些特征(如边缘、轮廓等)得以进一步的增强及突出。本实验锐化处理主要在空间域中进行 2,频域滤波:

       掌握傅里叶变换的基本性质; 掌握傅里叶正变换和反变换; 通过实验了解二维频谱的分布特点; 掌握怎样利用傅立叶变换进行频域滤波

       利用MATLAB程序数字图像的傅立叶变换并且进行频域滤波

       二,给图像添加椒盐噪声或者高斯噪声: 原理:利用MATLAB自带函数添加噪声 程序代码:A=imread('onion.png');I=rgb2gray(A);imshow(I);J = imnoise(I,'salt & pepper',0.05);figure,imshow(J),title('椒盐噪声');%添加椒盐噪声 K = imnoise(I,'gauian',0,0.03);

       figure,imshow(K),title('高斯噪声');%添加高斯噪声

       三,对被噪声污染的图像进行中值滤波和均值滤波: 原理:自带函数进行中值滤波和均值滤波 源程序:A=imread('onion.png');I=rgb2gray(A);J = imnoise(I,'salt & pepper',0.05);k2=medfilt2(J,[5 5]);k3=medfilt2(J,[7 7]);imshow(J),title('原图');figure,imshow(k2),title('中值滤波5*5模板');figure,imshow(k3),title('中值滤波7*7模板');

       四,对图像进行空间域的锐化: 原理:自带函数进行空间锐化。源程序:I=imread('coins.png');subplot(121),imshow(I),title('原图像');H=fspecial('sobel');I2=filter2(H ,I);subplot(122),imshow(I2),title('sobel算子锐化图像');

       五,MATLAB以外函数空间滤波和图像锐化:

       源程序:I = imread('eight.tif');J = imnoise(I,'salt & pepper',0.02);K = medfilt2(J);imshow(J);title('噪声干扰图像')figure, imshow(K);title('medfilt2滤波图像')X=J;a=2;b=2;k=floor(a*b/2) 1;[M,N]=size(X);uint8 Y=zeros(M,N);funBox=zeros(a,b);temp=zeros(a*b);

       for i=1:M-a

       for j=1:N-b

       funBox=X(i:i a,j:j b);

       temp=funBox(:);

       tempSort=sort(temp);

       Y(i,j)=tempSort(k);

       end;end;figure, imshow(Y);title('滤波图像')

       六,利用Matlab的图像处理工具箱中提供的函数实现图像的傅立叶变换和反变换: 源程序:

       A=imread('onion.png');f=rgb2gray(A);subplot(131),imshow(f),title('原图');F=fft2(f);% 快速傅立叶变换

       subplot(132),imshow(F),title('傅里叶变换')Fabs=abs(F);% 求幅频绝对值 Fc=fftshift(Fabs);% 中心移位 SFc=log(1 Fc);% 对数变换

       iFc1=ifftshift(Fc);% 中心移位的逆变换,绝对值 iF2=ifft2(iFc1);% 快速傅立叶变换的逆变换

       subplot(133),imshow(iF2),title('快速傅立叶变换的逆变换')

       七,低通滤波器程序:

       I=imread('testpat1.png');subplot(221),imshow(I);title('原始图像')J1=imnoise(I,'gauian',0.02);% 叠加高斯白噪声

       subplot(222),imshow(J1);title('添加高斯白噪声的图像')f=double(J1);

       % 数据类型转换 g=fft2(f);

       % 傅立叶变换 g=fftshift(g);

       [M,N]=size(g);nn=2;

       % 二阶巴特沃斯(Butterworth)低通滤波器 d0=50;

       % 设置截止频率 m=fix(M/2);n=fix(N/2);for i=1:M for j=1:N

       d=sqrt((i-m)^2 (j-n)^2);

       h=1/(1 0.414*(d/d0)^(2*nn));% 计算低通滤波器传递函数

       result(i,j)=h*g(i,j);end end result=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2));subplot(223),imshow(J3);title('低通滤波后图像')

       心得体会

       1,进一步熟悉了Matlab软件、编程以及图像处理工具箱 2,学会利用自带函数对图像做简单的处理,例如:均值化等。3,熟练了一些基本函数的运用,例如fspecial,imfilter等。4,加深了对MATLAB编程的理解。

       5,对于试验中的出现的一些问题,懂得怎样去处理。6,通过实际操作,增强了自己的动手能力,把理论用于实践。

       参考文献:数字图像处理:数字图像处理——彩色图像实验报告

       6.3实验步骤

       (1)对彩色图像的表达和显示

       * * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * *

       rgbcube(0,0,10);

       %从正面观察彩色立方体

       rgbcube(10,0,10);%从侧面观察彩色立方 rgbcube(10,10,10);%从对角线观察彩色立方体

       %* * * * * * * * * *索引图像的显示和转换* * * * * * * * * f=imread('D:PictureFig0604(a)(iris).tif');figure,imshow(f);

       %f是RGB真彩图像

       %rgb图像转换成8色索引图像,不采用抖动方式

       [X1,map1]=rgb2ind(f,8,'nodither');figure,imshow(X1,map1);

       %采用抖动方式转换到8色索引图像

       [X2,map2]=rgb2ind(f,8,'dither');figure,imshow(X2,map2);%显示效果要好一些 g=rgb2gray(f);

       %f转换为灰度图像

       g1=dither(g);

       %将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);

       %显示灰度图像

       figure,imshow(g1);

       %显示抖动处理后的二值图像

       程序运行结果:

       *

       彩色立方体原图

       不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像

       灰度图像抖动处理后的二值图像

       (2)彩色空间转换

       f=imread('D:PictureFig0604(a)(iris).tif');figure,imshow(f);

       %转换到NTSC彩色空间

       %f是RGB真彩图像

       ntsc_image=rgb2ntsc(f);

       figure,imshow(ntsc_image(:,:,1));%显示亮度信息 figure,imshow(ntsc_image(:,:,2));%显示色差信息 figure,imshow(ntsc_image(:,:,3));%显示色差信息

       %转换到HIS彩色空间

       hsi_image=rgb2hsi(f);

       figure,imshow(hsi_image(:,:,1));%显示色度信息 figure,imshow(hsi_image(:,:,2));%显示饱和度信息 figure,imshow(hsi_image(:,:,3));%显示亮度信息

       程序运行结果:

       原图

       转换到NTSC彩色空间

       显示亮度信息显示色差信息显示色差信息

       转换到HIS彩色空间

       显示色差信息显示饱和度信显示亮度信息

       (3)彩色变换

       f=imread('D:PictureFig0614(a)(Chalk Original).tif');

       G=ice('image',f);

       %打开ice窗口对图像进行调整

       %在窗口中执行以下操作:

       %a)得到图像的补色

       %b)拖动映射曲线,对图像显示效果进行修改

       %c)在颜色通道中选中某一颜色,然后对映射曲线进行修改

       程序运行结果(1):

       全彩色图片ICE窗口

       它的补色ICE窗口

       拖动映射曲线,图像的显示效果

       ICE窗口

       f2=imread('D:Picture JLK Magenta.tif');figure,imshow(f2);%在CMYK彩色空间内打开图像 选择Red

       ICE窗口

       g2=ice('image',f2,'space','CMYK');

       �的图像色彩偏红,拖动映射曲线,%调整映射参数,使图像的色彩看起来比较正常。

       程序运行结果(2)

       原图

       在CMYK彩色空间内打开图像

       调整映射参数后

       ICE窗口

       (4)彩色空间滤波

       %* * * * * * * * * * * * * * * * * * * * 彩色图像平滑 * * * * * * * * * * * * * * * * * * * * * *

       fc=imread('D:PictureFig0604(a)(iris).tif');figure,imshow(fc);h=rgb2hsi(fc);

       H=h(:,:,1);

       S=h(:,:,2);

       I=h(:,:,3);

       %转换到HIS彩色空间

       %色度分量

       %饱和度分量

       %亮度分量

       %×25的方形平滑算子 w=fspecial('average',25);

       I_filtered=imfilter(I,w,'replicate');%对亮度分量进行平滑操作 H1=cat(3,H,S,I_filtered);%将H、S、I三个分量重新组合起来f=hsi2rgb(H1);

       f=min(f,1);

       %转换到RGB彩色空间

       %f的值控制在[0,1]之间

       figure,imshow(f);

       %彩色图像平滑处理 %* * * **** * * * * * * * * * * * * 彩色图像锐化 * * * * * * * * * * * * * * * * * * * * * *

       fb=imread('D:PictureFig0604(a)(iris).tif');lapmask=[1 1 1;1-8 1;1 1 1];%拉普拉斯算子 g=imfilter(fb,lapmask,'replicate');%拉普拉斯算子处理 figure,imshow(g);

       %图像锐化后与原图像相减

       fen=imsubtract(fb,g);

       figure,imshow(fen);%显示差值图像

       程序运行结果:

       原图彩色图像平滑处理

       拉普拉斯算子处理

       锐化处理

       (5)彩色图像分割

       %* * * * * * * * * * * * * * * * * 彩色边缘检测* * * * * * * * * * * *

       close all;clear;clc;

       f=imread('iris.tif');%f如图6-4所示

       %直接计算彩色边缘VG,并得到对单独彩色平面的二维梯度求和形成的梯度PPG

       [VG,A,PPG]=colorgrad(f);

       figure,imshow(VG,[ ]);

       %显示彩色梯度图像 figure,imshow(A,[ ]);

       %显示彩色梯度对应的角度图像

       figure,imshow(PPG,[ ]);

       %显示分量梯度图像

       g=VG-PPG;

       %计算两种梯度方法得到的梯度之差 figure,imshow(g,[ ]);

       程序运行结果:

       %显示差值图像

       彩色梯度图像 彩色梯度对应的角度图像

       分量梯度图像两种梯度差值图像

       %* * * * * * * * * * * * * * * * * 彩色图像分割 * * * * * * * * * * * * * * * * * * * * * * * * *

       f=imread('jupitermoon.tif');%f如图6-4所示 mask=roipoly(f);

       %取得选定区域图像的红色分量

       %手工选定图中红色区域

       R=immultiply(mask,f(:,:,1));

       %取得选定区域图像的绿色分量

       G=immultiply(mask,f(:,:,2));%取得选定区域图像的蓝色分量

       B=immultiply(mask,f(:,:,3));

       g=cat(3,R,G,B);

       %取得选定区域的RGB图像 figure,imshow(g);

       %显示取得选定区域

       [M,N,K]=size(g);

       %选定区域的大小

       I=reshape(g,M*N,3);

       %对g中的像素进行重排,按列序拉成一行 idx=find(mask);

       %找到mask中的像素在重排后的图像g中位置 I=double(I(idx,1:3));

       %转换到double类型 [C,m]=covmatrix(I);

       %计算协方差矩阵C主对角线上的元素,即方差 %>>sd=sqrt(d)%求得这些元素的平方根,即均方差

       均方差

       %用欧式距离对图像进行彩色分割,阈值为25

       E25=colorseg('euclidean',f,25,m);E251=f;E251(E25==0)=0 figure,imshow(E251,[]);

       %用马氏距离对图像进行彩色分割,阈值为25 M25=colorseg('mahalanobis',f,25,m,C);figure , imshow(M25 , [ ]);程序运行结果:

       原图选定区域

       欧氏距离彩色分割马氏距离彩色分割

       6.4 思考题

       (1)请将图6-1所示的彩色图像转换到灰度图像,并根据灰度值对此灰度图像进行索引化,手工指定索引表中的RGB值,并把此索引图像显示出来。

       程序代码如下

       %思路:把原图想转换为128位索引图

       close all;clear;clc;%将f从灰度图像转换为索引图像,x是索引图像; %map是索引矩阵,R,G,B的值都相等

       f=imread('D:PictureRGB_iris.tif');figure,imshow(f);

       %f是RGB图像 f1=rgb2gray(f);

       %将f转换成灰度图像 figure,imshow(f1);[x,map]=gray2ind(f1,128);

       figure,imshow(x);%将map中的值做下面改变则R,G,B的值不相等,产生彩色

       %把灰度图像转化成128位的索引图

       map(1,:)=0.5;map(: ,1)=0.5;map(2,:)=0.4;map(1,1)=0;figure,imshow(f1,map);

       程序运行结果:

       原RGB图像

       灰度图像

       索引图 修改索引表后的图像

       (2)6.3节的(4)是将图像转换到HIS空间后再对亮度分量进行平滑操作,试直接对原图像的RGB三个分量分别进行平滑操作,并计算两种操作方法的图像差值。

       程序代码如下:

       f=imread('D:PictureRGB_iris.tif');figure,imshow(f);%直接对原图像的RGB三个分量分别进行平滑操作 H=f(:,:,1);

       S=f(:,:,2);

       I=f(:,:,3);

       %色度分量

       %饱和度分量

       %亮度分量

       %×25的方形平滑算子 w=fspecial('average',25);

       H_filtered=imfilter(H,w,'replicate');

       %对色度分量进行平滑操作 S_filtered=imfilter(S,w,'replicate');

       %对饱和度分量进行平滑操作 I_filtered=imfilter(I,w,'replicate');

       %对亮度分量进行平滑操作 %将H、S、I三个分量重新组合起来

       Ha=cat(3,H_filtered,S_filtered,I_filtered);Ha=im2double(Ha);

       %转化成double类型 figure,imshow(Ha);%转换到HIS彩色空间 h=rgb2hsi(f);

       %转换到HIS彩色空间

       H=h(:,:,1);

       S=h(:,:,2);

       I=h(:,:,3);

       %色度分量

       %饱和度分量 %亮度分量 %×25的方形平滑算子 w=fspecial('average',25);

       I_filtered=imfilter(I,w,'replicate');%对亮度分量进行平滑操作 %将H、S、I三个分量重新组合起来 H1=cat(3,H,S,I_filtered);fb=hsi2rgb(H1);

       %转换到RGB彩色空间 fb=min(fb,1);

       figure,imshow(fb);

       %f的值控制在[0,1]之间

       %彩色图像平滑处理

       fen=imsubtract(Ha,fb);figure,imshow(fen);程序运行结果:

       %计算两中方式处理后图像的差值

       原图

       直接对RGB三分量进行平滑操作转换到HIS空间对亮度进行平滑操作

       差值图像

       试验中的问题和心得体会:

       本次实验是彩色图像处理。

       (1)通过这个实验我了解了RGB图像以及索引图像在MATLAB中的存储和询问方式

       (2)了解RGB空间到其他彩色空间的转换方式和转换方法(3)知道了一些彩色图像的空间滤波方法(4)了解在RGB向量空间中检测彩色边缘的方法(5)了解在RGB向量空间中对图像进行分割的方法

       遇到的问题:在做思考题(2)的时候,计算两种平滑处理的得到图像的差值的中程序出现了问题,经过看出错信息,认真检查程序后,发现是因为直接平滑处理的图像是unit8类型的,而转换到HIS空间后,得到的图像是double类型,二者的类型不同,导致使用imsubtract函数的时候出现了问题。感觉做matlab的实验和平时编写C代码的时候有很多地方是相同的,都会经历:编码,debug,正确这三个过程,这个过程本身就具有挑战性和趣味性。

数字图像处理图像变换实验报告

       数字图象处理实验指导书

       实验一 图象变换实验

       实 验

       实验名称:图像处理姓名:刘强

       班级:电信

       学号:

       报 告

       1102

       1404110128

       数字图象处理实验指导书

       实验一 图象变换实验

       实验一 图像变换实验——图像点运算、几何变换及正交变换

       一、实验条件

       PC机 数字图像处理实验教学软件

       大量样图

       二、实验目的1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的简单操作;

       2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体步骤;

       3、观察图像的灰度直方图,明确直方图的作用和意义;

       4、观察图像点运算和几何变换的结果,比较不同参数条件下的变换效果;

       5、观察图像正交变换的结果,明确图像的空间频率分布情况。

       三、实验原理

       1、图像灰度直方图、点运算和几何变换的基本原理及编程实现步骤

       图像灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。

       图像点运算是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。点运算可以看作是“从象素到象素”的复制操作,而这种复制操作是通过灰度变换函数实现的。如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为:

       B(x,y)=f[A(x,y)] 其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值和输出灰度值之间的转换关系。一旦灰度变换函数确定,该点运算就完全确定下来了。另外,点运算处理将改变图像的灰度直方图分布。点运算又被称为对比度增强、对比度拉伸或灰度变换。点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸和均衡等。

       图像几何变换是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放和图像旋转等,其理论基础主要是一些矩阵运算,详细原理可以参考有关书籍。

       实验系统提供了图像灰度直方图、点运算和几何变换相关内容的文字说明,用户在操作过程中可以参考。下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:

       数字图象处理实验指导书

       实验一 图象变换实验

       2、图像正交变换的基本原理及编程实现步骤 数字图像的处理方法主要有空域法和频域法,点运算和几何变换属于空域法。频域法是将图像变换到频域后再进行处理,一般采用的变换方式是线性的正交变换(酉变换),主要包括傅立叶变换、离散余弦变换、沃尔什变换、霍特林变换和小波变换等。正交变换被广泛应用于图像特征提取、图像增强、图像复原、图像压缩和图像识别等领域。

       正交变换实验的重点是快速傅立叶变换(FFT),其原理过于复杂,可以参考有关书籍,这里不再赘述。至于FFT的编程实现,系统采用的方法是:首先编制一个一维FFT程序模块,然后调用该模块对图像数据的列进行一维FFT,再对行进行一维FFT,最后计算并显示幅度谱。程序流程图如下:

       四、实验内容

       图像灰度直方图

       点运算:图像反色、灰度线性变换、阈值变换、窗口变换、灰度拉伸和灰度

       数字图象处理实验指导书

       实验一 图象变换实验

       均衡

       几何变换:图像镜像变换、图像转置、图像平移、图像缩放和图像旋转 正交变换:傅立叶变换、离散余弦变换、沃尔什变换、霍特林变换和小波正反变换

       注意:

       1、所有实验项目均针对8位BMP灰度图像进行处理,其它格式(如JPG)的图像可以利用系统提供的图像格式转换工具进行转换,再进行处理;

       2、本次实验的重点是图像的灰度直方图和点运算,几何变换和正交变换只作一般性了解。

       五、实验步骤

       以图像灰度阈值变换为例说明实验的具体步骤,其它实验项目的步骤与此类似。

       1、打开计算机,在系统桌面上双击“数字图像处理实验教学软件系统”的可执行文件“图象处理”的图标,进入实验系统;

       2、执行文件→打开,在OPEN对话框中选择待处理的图像,按【OK】后系统显示出图像;

       3、执行查看→图像基本信息,将显示图像基本信息对话框,如图所示;

       数字图象处理实验指导书

       实验一 图象变换实验

       4、执行查看→灰度直方图,查看图像的灰度直方图,如图所示;

       5、执行图像变换→正交变换→傅立叶变换,查看图像的频率域分布情况,如图所示;

       数字图象处理实验指导书

       实验一 图象变换实验

       6、执行图像变换→正交变换→小波变换,查看图像经过小波变换的效果,如图所示;

       7、执行图像变换→点运算→阈值变换,修改阈值变换对话框中的阈值参数,如图所示;

       数字图象处理实验指导书

       实验一 图象变换实验

       8、设置完阈值参数后按【OK】,系统显示阈值变换后的图像,与原图像进行比较,观察阈值变换的效果,如图所示;

       9、重复步骤4,查看阈值变换后图像的直方图分布情况;

       数字图象处理实验指导书

       实验一 图象变换实验

       10、重复步骤5,查看阈值变换后图像的频率域分布情况;

       11、执行文件→保存或另存为,保存处理后的图像;

       12、执行文件→重新加载,重新加载原始图像,但要注意先前对图像的处理将会丢失; 注意:

       13、在执行步骤2时可能会出现有些图像文件不能打开的情况,如图所示,此时可以先利用图像格式转换工具将图像文件转换为8位BMP图像,再利用系统进行处理。步骤14和15是使用图像格式转换工具的方法;

       14、在桌面上双击图像格式转换工具Jpg2bmp的图标,进入转换工具界面,如图所示;

       15、按照界面提示,把JPG格式的图像文件转换成8位BMP图像。

       数字图象处理实验指导书

       实验一 图象变换实验

       步骤13示意图

       步骤14示意图

       六、思考题

       1、图像灰度线性变换、阈值变换、窗口变换、灰度拉伸和灰度均衡之间有何区别?

       灰度线性变换就是将图像的像素值通过指定的线性函数进行变换,以此增强或者减弱图像的灰度。

       灰度的阈值变换可以让一幅图像变成黑白二值图。

       灰度的窗口变换也是一种常见的点运算。它的操作和阈值变换类似。从实现方法上可以看作是灰度折线变换的特列。窗口灰度变换处理结合了双固定阈值法,与其不同之处在于窗口内的灰度值保持不变。

       灰度拉伸又叫做对比度拉伸,它与线性变换有些类似,不同之处在于灰度拉伸使用的是分段线性变换,所以它最大的优势是变换函数可以由用户任意合成。

       灰度均衡是增强图像的有效方法之一。灰度均衡同样属于改进图像的方法,灰度均衡的图像具有较大的信息量。从变换后图像的直方图来看,灰度分布更加均匀。

       2、利用图像镜像和旋转变换可以实现图像转置吗?如果可以,应该怎样实现?

       可以。进行一次镜像变换,顺(逆)时针旋转两次,再以与第一次相反的方向镜像变换。

       数字图象处理实验指导书

       实验一 图象变换实验

       实验二 图像增强及复原实验

       七、实验条件

       PC机 数字图像处理实验教学软件

       大量样图

       八、实验目的1、熟练使用“数字图像处理实验教学软件系统”;

       2、熟悉图像增强及复原的基本原理,了解编程实现的具体步骤;

       3、观察图像中值滤波、平滑、锐化和伪彩色编码的结果,比较不同参数条件下的图像增强效果;

       4、观察图像退化和复原的结果,比较不同复原方法的复原效果。

       九、实验原理

       1、图像增强和复原的基本原理

       对降质图像的改善处理通常有两类方法:图像增强和图像复原。

       图像增强不考虑图像降质的原因,只将图像中感兴趣的特征有选择地进行突出,并衰减图像的次要信息,改善后的图像不一定逼近原始图像,只是增强了图像某些方面的可读性,如突出了目标轮廓,衰减了各种噪声等。图像增强可以用空域法和频域法分别实现,空域法主要是在空间域中对图像象素灰度值直接进行运算处理,一般包括中值滤波、模板平滑和梯度锐化等,空域法可以用下式来描述:

       g(x,y)=f(x,y)*h(x,y)其中f(x,y)是处理前图像,g(x,y)表示处理后图像,h(x,y)为空间运算函数。图像增强的频域法是在图像的频率域中对图像的变换值进行某种运算处理,然后变换回空间域,系统涉及的各种滤波器属于频域法增强,这是一种间接处理方法,可以用下面的过程模型来描述:

       其中:F(u,v)=[ f(x,y)],G(u,v)= F(u,v)H(u,v),g(x,y)=1[ G(u,v)],和1分别表示频域正变换和反变换。实验系统提供了图像增强相关内容的文字说明,用户在操作过程中可以参考。

       图像复原是针对图像降质的原因,设法去补偿降质因素,使改善后的图像尽可能逼近原始图像,提高了图像质量的逼真度。关于图像复原的详细原理可以参考相关书籍,这里不再赘述。本系统提供了图像的噪声退化、卷积退化和运动模糊退化操作,并提供了相应的逆滤波复原、维纳复原和运动模糊复原操作。本次

       数字图象处理实验指导书

       实验一 图象变换实验

       实验中图像复原只作一般性了解。

       2、编程实现步骤

       下面以图像增强中的中值滤波操作为例给出编程实现的程序流程图,如下:

       十、实验内容

       图像增强:中值滤波、图像模板平滑、理想低通滤波器平滑、巴特沃斯低通滤波器平滑、梯度锐化、拉普拉斯锐化、理想高通滤波器锐化、巴特沃斯高通滤波器锐化和伪彩色编码

       图像复原:图像的噪声退化、卷积退化、卷积加噪声退化、运动模糊退化、逆滤波复原、维纳复原和运动模糊复原

       注意:

       3、所有实验项目均针对8位BMP灰度图像进行处理;

       4、本次实验的重点是图像增强中的中值滤波和模板平滑,图像复原只作一般性了解。

       十一、实验步骤

       以图像中值滤波操作为例说明实验的具体步骤,其它实验项目的步骤与此类似。

       11、打开计算机,在系统桌面上双击“数字图像处理实验教学软件系统”的可执行文件“图象处理”的图标,进入实验系统;

       12、执行文件→打开,在OPEN对话框中选择待处理的图像,按【OK】后系统显示出图像;

       数字图象处理实验指导书

       实验一 图象变换实验

       13、执行查看→图像基本信息,将显示图像基本信息对话框,如图所示;

       14、执行查看→灰度直方图,查看图像的灰度直方图,如图所示;

       数字图象处理实验指导书

       实验一 图象变换实验

       15、执行图像变换→正交变换→傅立叶变换,查看图像的频率域分布情况,如图所示;

       16、执行图像增强→中值滤波,选择或自定义对话框中的滤波器参数,如图所示;

       数字图象处理实验指导书

       实验一 图象变换实验

       17、设置完滤波器参数后按【OK】,系统显示中值滤波后的图像,与原图像进行比较,观察中值滤波的效果,如图所示;

       18、重复步骤4,查看中值滤波后图像的直方图分布情况;

       数字图象处理实验指导书

       实验一 图象变换实验

       19、重复步骤5,查看中值滤波后图像的频率域分布情况;

       10、执行文件→保存或另存为,保存处理后的图像;

       11、执行文件→重新加载,重新加载原始图像,但要注意先前对图像的处理将会丢失。

       数字图象处理实验指导书

       实验一 图象变换实验

       十二、思考题

       1、图像中值滤波和模板平滑之间有何区别?

       图像平滑处理就是用平滑模板对图像进行处理,以减少图像的噪声。而中值滤波是一种非线性的信号处理方法。

       2、图像增强和图像复原之间有何区别?

       图像增强:利用一定的技术手段,不用考虑图像是否失真(即原 始图像在变换后可能会失真)而且不用分析图像降质的原因。针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。

       图像复原:针对质量降低或者失真的图像,恢复图像原始的内容或者质量。图像复原的过程包含对图像退化模型的分析,再对退化的图像进行复原。图像退化是由于成像系统受各种因素的影响,导致了图像质量的降低,称之为图像退化。这些因素包括传感器噪声、摄像机聚焦不佳、物体与摄像机之间的相对移动、随机大气湍流、光学系统的象差、成像光源和射线的散射等。图像复原大致可以分为两种方法:

       一种方法适用于缺乏图像先验知识的情况,此时可对退化过程建立模型进行描述,进而寻找一种去除或消弱其影响的过程,是一种估计方法;

       另一种方法是针对原始图像有足够的先验知识的情况,对原始图像建立一个数学模型并根据它对退化图像进行拟合,能够获得更好的复原效果。

       3、图像维纳复原为什么比逆滤波复原效果好?

       维纳滤波复原的原理可表示为

       对于维纳滤波,由上式可知,当

       时,由于存在 项,所以数字图象处理实验指导书

       实验一 图象变换实验

       不会出现被0除的情形,同时分子中含有项,在处。当时,此时维纳滤波就变成 了逆滤波;当时,表明维纳滤波避免了逆滤波中 出现的对噪声过多的放大作用,也就是说图像维纳复原比逆滤波复原效果好。