《数字图像处理实验15192.pdf》由会员分享,可在线阅读,更多相关《数字图像处理实验15192.pdf(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、.数字图像处理 实验报告 学院:信息工程学院 专业:电子信息工程 学号:.2015 年 6 月 18 日 目 录 实验一 图像的读取、存储和显示2 实验二 图像直方图分析6 实验三 图像的滤波及增强15 实验四 噪声图像的复原19 实验五 图像的分割与边缘提取23 附录 1 MATLAB 简介27 .实验一 图像的读取、存储和显示 一、实验目的与要求 1熟悉及掌握在 MATLAB 中能够处理哪些格式图像。2熟练掌握在 MATLAB 中如何读取图像。3掌握如何利用 MATLAB 来获取图像的大小、颜色、高度、宽度等等相关信息。4掌握如何在 MATLAB 中按照指定要求存储一幅图像的方法。5图像的
2、显示。二、实验原理.一幅图像可以被定义为一个二维函数 f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在 RGB 彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。图像关于 x 和y 坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图 1 所示。因此,当 f 的
3、x、y 分量和振幅都是有限且离散的量时,称该图像为数字图像。三、实验设备(1)PC 计算机(2)MatLab 软件/语言包括图像处理工具箱(Image Processing Toolbox)(3)实验所需要的图片 四、实验容及步骤 1利用 imread()函数读取一幅图像,假设其名为 flower.tif,存入一个数组中;2利用 whos 命令提取该读入图像 flower.tif 的基本信息;3利用 imshow()函数来显示这幅图像;4利用 imfinfo 函数来获取图像文件的压缩,颜色等等其他的详细信息;5 利用 imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的 jpg 文
4、件设为 flower.jpg 语法:imwrite(原图像,新图像,quality,q),q 取 0-100。6 同样利用 imwrite()函数将最初读入的 tif 图象另存为一幅 bmp 图像,设为flower.bmp。7用 imread()读入图像:Lenna.jpg 和 camema.jpg;8用 imfinfo()获取图像 Lenna.jpg 和 camema.jpg 的大小;9用 figure,imshow()分别将 Lenna.jpg 和 camema.jpg 显示出来,观察两幅图像的质量。10.用 im2bw 将一幅灰度图像转化为二值图像,并且用 imshow 显示出来观察图像
5、的特征。.11.将每一步的函数执行语句拷贝下来,写入实验报告,并且将得到第3、9、10 步得到的图像效果拷贝下来。五、实验源程序 clc;clear;close all;I=imread(D:pictureflower.tif);%读入原图像,tif 格式 whos I;%显示图像 I 的基本信息 imfinfo(D:pictureflower.tif);imwrite(I,D:pictureflower.jpg,quality,50);imwrite(I,D:pictureflower.bmp);%以位图(BMP)的格式存储图像 g=im2bw(I);%将图像转为二值图像 imwrite(g
6、,D:pictureflower1.tif);subplot(2,2,1),imshow(I),title(原图(tif 格式);subplot(2,2,2),imshow(D:pictureflower.jpg),title(压缩图(jpg 格式);subplot(2,2,3),imshow(D:pictureflower.bmp),title(位图(BMP 格式);subplot(2,2,4),imshow(g),title(二值图);六、实验结果.原 图格 式压 缩 图格 式位 图格 式二 值 图 七、实验心得 通过本次实验可以熟练的运用 MATLAB 编程软件。.实验二 图像直方图分析
7、 .一实验目的 1了解MATLAB的操作环境和基本功能。2掌握MATLAB中图像增强与平滑的函数的使用方法。3加深理解图像增强与平滑的算法原理。二、实验容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。(可将每段程序保存为一个.m文件)1直方图均衡化 2直接灰度变换 3空域平滑滤波(模糊、去噪)4空域锐化滤波(二)采用MATLAB底层函数编程实现 1灰度变换之动态围扩展 假定原图像f(x,y)的灰度围为a,b,希望变换后图像 g(x,y)的灰度围扩展至c,d,则线性变换可表示为:cayxfabcdyxg),
8、(),(用MATLAB底层函数编程实现上述变换函数。观察图像 pout.tif的灰度直方图,选择合适的参数a,b、c,d对图像pout.tif进行灰度变换,以获得满意的视觉效果。2非锐化掩蔽和高斯滤波 从原图像中减去其非锐化(平滑过的)图像的过程称为非锐化掩蔽,其基本步骤为:对原图像进行平滑滤波得到模糊图像(,)f x y;.从原图像中减去模糊图像,产生的差值图像称为模板(,)maskgx y;将模板加到原图像上,得到锐化后的图像(,)g x y。即,(,)(,)-(,)maskgx yf x yf x y(,)(,)(,)1maskg x yf x ykgx yk;用MATLAB函数编程实现
9、上述功能。三、实验设备与软件 1计算机;2MATLAB6.5 及以上;四、实验源程序(一)1直方图均衡化 clc;clear all;close all I=imread(pout.tif);subplot(2,3,1);imshow(I);title(原图);subplot(2,3,2);imhist(I);%显示原图的直方图 title(原图的直方图);I2,T=histeq(I);%原图进行均衡化 subplot(2,3,3);imshow(I2);%显示均衡化后图 title(均衡化后的图);subplot(2,3,4);imhist(I2);%显示原图均衡化后的直方图 title(原
10、图均衡化后的直方图);.subplot(2,3,5);plot(0:255)/255,T);%绘制均衡化函数图 title(均衡化函数图);imwrite(I2,D:picture1pout.png);imfinfo(D:picture1pout.png)%显示写入图的信息 2直接灰度变换 clc;clear all;close all I=imread(cameraman.tif);subplot(2,3,1),imshow(I),title(原图(cameraman);J=imadjust(I,0 0.2,0.5 1);subplot(2,3,2),imshow(J),title(图cam
11、eraman 调整灰度值后的图 );X,MAP=imread(forest.tif);%X为图像数据矩阵,MAP为颜色表数据矩阵 subplot(2,3,3),imshow(X,MAP),title(原图(forest);I2=ind2gray(X,MAP);J2=imadjust(I2,0.5);J3=imadjust(I2,1.5);subplot(2,3,4),imshow(I2),title(forest的灰度图);subplot(2,3,5),imshow(J2),title(forest调整图像灰度值后明亮输出的图);subplot(2,3,6),imshow(J3),title(
12、forest调整图像灰度值后灰暗输出的图);3空域平滑滤波(模糊、去噪)clc;clear all;close all I=imread(eight.tif);h1=ones(3,3)/9;h2=ones(5,5)/25;I1=imfilter(I,h1);%用3*3的方阵(元素值为 0.11)过滤原图 I2=imfilter(I,h2);%用5*5的方阵(元素值为 0.04)过滤原图 figure(1);subplot(2,2,1),imshow(I),title(原图);subplot(2,2,2),imshow(I1),title(用3*3的方阵(元素值为 0.11)过滤原图);subp
13、lot(2,2,3),imshow(I2),title(用5*5的方阵(元素值为 0.04)过滤原图);.J1=imnoise(I,gaussian,0,0.005);%加入高斯(Gaussian)噪声 J2=imnoise(I,salt&pepper,0.02);%加入椒盐噪声 K1=imfilter(J1,fspecial(average,3);%对J1进行平均值平滑滤波 K2=imfilter(J2,fspecial(average,3);%对J2进行平均值平滑滤波 figure(2);subplot(2,2,1),imshow(J1),title(加入高斯噪声);subplot(2,2
14、,2),imshow(J2),title(加入椒盐噪声);subplot(2,2,3),imshow(K1),title(对加入高斯噪声的图进行平均值平滑滤波);subplot(2,2,4),imshow(K2),title(对加入椒盐噪声的图进行平均值平滑滤波);K3=medfilt2(J1,3 3);%对J1进行中值滤波 K4=medfilt2(J2,3 3);%对J2进行中值滤波 figure(3);subplot(2,2,1),imshow(J1),title(加入高斯噪声);subplot(2,2,2),imshow(J2),title(加入椒盐噪声);subplot(2,2,3),
15、imshow(K3),title(对加入高斯噪声的图进行中值滤波);subplot(2,2,4),imshow(K4),title(对加入椒盐噪声的图进行中值滤波);4空域锐化滤波 clc;clear all;close all I=imread(moon.tif);w=fspecial(laplacian,0);%拉普拉斯算子 w1=1,1,1;1,-8,1;1,1,1;%新算子(w1)I1=imfilter(I,w,replicate);%拉普拉斯算子对原图锐化滤波 subplot(2,4,1),imshow(I),title(原图);subplot(2,4,2),imshow(I1),t
16、itle(拉普拉斯算子对原图锐化滤波图);f=im2double(I);%把原图的数据类型转换为双精度浮点类型(图不变)f1=imfilter(f,w,replicate);%拉普拉斯算子对图 f锐化滤波.subplot(2,4,4),imshow(f1,),title(拉普拉斯算子对 f锐化滤波图);f2=imfilter(f,w1,replicate);%新算子(w1)对图f锐化滤波 subplot(2,4,5),imshow(f1,),title(新算子(w1)对 f锐化滤波图);f4=f-f1;%图f减去其锐化滤波(拉普拉斯算子)后的图 f8=f-f2;%图f减去其锐化滤波(新算子(w
17、1)后的图 subplot(2,4,3),imshow(f),title(原图的数据类型变为双精度浮点型即图 f);subplot(2,4,6),imshow(f4),title(图 f减去其锐化滤波(拉普拉斯算子)后的图);subplot(2,4,8),imshow(f8),title(图 f减去其锐化滤波(新算子(w1)后的图);(二)1灰度变换之动态围扩展 clc;clear all;close all I=imread(pout.tif);%数据为240行16列的矩阵 subplot(2,2,1),imshow(I),title(原图(pout);I1=double(I)./doubl
18、e(100);%对原图数据进行处理 J=0.625.*(I1-0.1)+0.4;%a=0.1,b=0.9,c=0.4,d=0.9调整原图的灰度值变明亮 subplot(2,2,2),imshow(J),title(图pout调整灰度值后的图);subplot(2,2,3),imhist(I1),title(原图的直方图);%显示原图的直方图 subplot(2,2,4),imhist(J),title(pout调整灰度值后的直方图);%显示pout调整灰度值后的直方图 2非锐化掩蔽和高斯滤波 clc;clear all;close all I=imread(pout.tif);J=imfilt
19、er(I,fspecial(average,3);%对 I 进行平均值平滑滤波 subplot(2,2,1),imshow(I),title(原图);subplot(2,2,2),imshow(J),title(对原图进行平均值平滑滤波得到模糊图像J);.M=I-J;%从原图像I 中减去模糊图像J,产生的差值图像M 称为模板 N=30*M+I;%将模板M 加到原图像I 上,得到锐化后的图像N subplot(2,2,3),imshow(M),title(I减 J 产生的差值图像M);subplot(2,2,4),imshow(N),title(M的 30 倍加 I 得到的锐化后的图像N);五、
20、实验结果(一)1直方图均衡化 原 图原 图 的 直 方 图均 衡 化 后 的 图原 图 均 衡 化 后 的 直 方 图均 衡 化 函 数 图 2直接灰度变换.原图图调整灰度值后的图原图的灰度图调整图像灰度值后明亮输出的图调整图像灰度值后灰暗输出的图 对于imadjust(I,low_in high_in,low_out high_out,gamma)函数,gamma大于1图像比原图像增强,小于1,灰度比图像小,有模糊感,图像不够清晰.3空域平滑滤波(模糊、去噪).原 图用的 方 阵(元 素 值 为)过 滤 原 图用的 方 阵(元 素 值 为)过 滤 原 图 加 入 高 斯 噪 声加 入 椒 盐
21、 噪 声对 加 入 高 斯 噪 声 的 图 进 行 平 均 值 平 滑 滤 波 对 加 入 椒 盐 噪 声 的 图 进 行 平 均 值 平 滑 滤 波.加 入 高 斯 噪 声加 入 椒 盐 噪 声对 加 入 高 斯 噪 声 的 图 进 行 中 值 滤 波 对 加 入 椒 盐 噪 声 的 图 进 行 中 值 滤 波 4空域锐化滤波 原 图拉 普 拉 斯 算 子 对 原 图 锐 化 滤 波 图原 图 的 数 据 类 型 变 为 双 精 度 浮 点 型 即 图拉 普 拉 斯 算 子 对 锐 化 滤 波 图新 算 子()对 锐 化 滤 波 图图 减 去 其 锐 化 滤 波(拉 普 拉 斯 算 子)后
22、的 图图 减 去 其 锐 化 滤 波(新 算 子()后 的 图 使用空域滤波使图像对比度增大,并且w8=1,1,1;1,-8,1;1,1,1 算子增强效果更明显(二).1 灰度变换之动态围扩展 原 图图调 整 灰 度 值 后 的 图原 图 的 直 方 图调 整 灰 度 值 后 的 直 方 图 2非锐化掩蔽和高斯滤波 .原 图对 原 图 进 行 平 均 值 平 滑 滤 波 得 到 模 糊 图 像减 产 生 的 差 值 图 像的倍 加 得 到 的 锐 化 后 的 图 像 六实验心得 通过本次实验对高斯噪声与椒盐噪声有了更清楚的认识,也学会如何用平滑滤波,锐化滤波,高斯滤波处理图像,学到了很多新知识
23、.实验三 图像的滤波及增强 一、实验目的 1 进一步了解 MatLab 软件/语言,学会使用 MatLab 对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。2 了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。3 熟悉傅立叶变换的基本性质;4 熟练掌握 FFT 变换方法及应用;二、实验容与步骤(1)模板滤波 a)调入并显示原始图像 Sample2-1.jpg。b)利用 imnoise 命令在图像 Sample2-1.jpg 上加入高斯(gaussian)噪声 .c)利用预定义函数fspecial 命令产生平均(average)滤波器 11
24、1191111 d)分别采用3x3 和 5x5 的模板,分别用平均滤波器以及中值滤波器,对加入噪声的图像进行处理并观察不同噪声水平下,上述滤波器处理的结果;e)选择不同大小的模板,对加入某一固定噪声水平噪声的图像进行处理,观察上述滤波器处理的结果。f)利用 imnoise 命令在图像 Sample2-1.jpg 上加入椒盐噪声(salt&pepper)g)重复 c)e)的步骤 h)输出全部结果并进行讨论。(2)频域滤波 1 将图像容读入存;2 用 Fourier变换算法,对图像作二维Fourier 变换;3 将其幅度谱进行搬移,在图像中心显示;4 用 Fourier系数的幅度进行 Fourie
25、r反变换;5 用 Fourier系数的相位进行 Fourier反变换;6 比较 4、5 的结果,评价人眼对图像幅频特性和相频特性的敏感度。7记录和整理实验报告。三、实验仪器(1)IBM-PC 计算机系统 (2)MatLab 软件/语言包括图像处理工具箱(Image Processing Toolbox)(3)实验所需要的图片.四 实验源程序(1)模板滤波 clc;clear all;close all I=imread(cameraman.tif);J=imnoise(I,gauss,0.02);%添加高斯噪声,叠加密度为 0.02 ave1=fspecial(average,3);%产生 3
26、3 的均值模板 ave2=fspecial(average,5);%产生 55 的均值模板 K=filter2(ave1,J)/255;%均值滤波 33 L=filter2(ave2,J)/255;%均值滤波 55 M=medfilt2(J,3 3);%中值滤波 33 模板 N=medfilt2(J,5 5);%中值滤波 55 模板 subplot(2,3,1),imshow(I);title(原图);subplot(2,3,2),imshow(J);title(添加高斯噪声图 J);subplot(2,3,3),imshow(K);title(对 J 均值滤波 33);subplot(2,3
27、,4),imshow(L);title(对 J 均值滤波 55);subplot(2,3,5),imshow(M);title(对 J 中值滤波 33);subplot(2,3,6),imshow(N);title(对 J 中值滤波 55);J1=imnoise(I,salt&pepper,0.02);%添加椒盐噪声,叠加密度为 0.02 K1=filter2(ave1,J1)/255;%均值滤波 33 L1=filter2(ave2,J1)/255;%均值滤波 55 M1=medfilt2(J1,3 3);%中值滤波 33 模板 N1=medfilt2(J1,5 5);%中值滤波 55 模板
28、 figure(2);subplot(2,3,1),imshow(I);title(原图);subplot(2,3,2),imshow(J1);title(添加椒盐噪声 J1);subplot(2,3,3),imshow(K1);title(对 J1 均值滤波 33);subplot(2,3,4),imshow(L1);title(对 J1 均值滤波 55);subplot(2,3,5),imshow(M1);title(对 J1 中值滤波 33);subplot(2,3,6),imshow(N1);title(对 J1 中值滤波 55);.(2)频域滤波 clc;clear all;clos
29、e all I=imread(cameraman.tif);%读入原图像文件 fftI=fft2(I);%二维离散傅立叶变换 sfftI=fftshift(fftI);%直流分量移到频谱中心 RR=real(sfftI);%取傅立叶变换的实部 II=imag(sfftI);%取傅立叶变换的虚部 A=sqrt(RR.2+II.2);%计算频谱幅值 A=(A-min(min(A)/(max(max(A)-min(min(A)*225;%归一化 f1=ifft2(A);%用 Fourier系数的幅度进行Fourier反变换;f2=ifft2(angle(fftI);%用 Fourier系数的相位进行
30、Fourier反变换;subplot(2,2,2),imshow(A),title(原图像的频谱);%显示原图像的频谱 subplot(2,2,1),imshow(I),title(原图);subplot(2,2,3),imshow(f1,),title(用 Fourier系数的幅度进行Fourier反变换后的图);subplot(2,2,4),imshow(f2,),title(用 Fourier系数的相位进行Fourier反变换后的图);五实验结果(1)模板滤波.原 图添 加 高 斯 噪 声 图对 均 值 滤 波对 均 值 滤 波对 中 值 滤 波对 中 值 滤 波 原 图添 加 椒 盐
31、噪 声对均 值 滤 波对均 值 滤 波对中 值 滤 波对中 值 滤 波 .(2)频域滤波 原 图 像 的 频 谱原 图用系 数 的 幅 度 进 行反 变 换 后 的 图用系 数 的 相 位 进 行反 变 换 后 的 图 六实验心得 通过这次实验了解了高斯噪声和椒盐噪声的特点。高斯噪声完全由其时变平均值和两瞬时的协方差函数来确定,若噪声为平稳的,则平均值与时间无关,而协方差函数则变成仅和所考虑的两瞬时之差有关的相关函数,它在意义上等效于功率谱密度。高斯噪声可以是大量独立的脉冲所产生的,从而在任何有限时间间隔,这些脉冲中的每一个脉冲值与所有脉冲值的总和相比都可忽略不计。3实际上热噪声、散弹噪声及量
32、子噪声都是高斯噪声。椒盐噪声是由图像传感器,传输信道,解码处理等产生的黑白相间的亮暗点噪声。椒盐噪声往往由图像切割引起。.实验四 噪声图像的复原 一、实验目的.1、熟悉并掌握MATLAB图像处理工具箱的使用;2、理解并掌握常用的图像的恢复和增强技术。二、实验容及步骤 1、产生运动模糊图像,运用维纳滤波进行图像恢复,显示结果。2、利用 MATLAB 实现频域滤波 频域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和高通滤波器。频域低通过滤的基本思想:G(u,v)=F(u,v)H(u,v)F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤器变换函数,G(u,
33、v)是通过 H(u,v)减少 F(u,v)的高频部分来得到的结果,运用傅立叶逆变换得到钝化后的图像。理想地通滤波器(ILPF)具有传递函数:001(,)(,)0(,)ifD u vDH u vifD u vD 其中,0D为指定的非负数,(,)D u v为(u,v)到滤波器的中心的距离。0(,)D u vD的点的轨迹为一个圆。n 阶巴特沃兹低通滤波器(BLPF)(在距离原点0D处出现截至频率)的传递函数为201(,)1(,)nH u vD u vD 与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在0D处突然不连续。高斯低通滤波器(GLPF)的传递函数为 222),(),(vuDev
34、uH 其中,为标准差。相应的高通滤波器也包括:理想高通滤波器、n 阶巴特沃兹高通滤波器、高斯高通.滤波器。给定一个低通滤波器的传递函数(,)lpHu v,通过使用如下的简单关系,可以获得相应高通滤波器的传递函数:1(,)hplpHHu v 三实验所用仪器 1计算机;2MATLAB 程序;3移动式存储器(U 盘等);4记录用的笔、纸。四实验源程序 1、产生运动模糊图像,运用维纳滤波进行图像恢复,显示结果。i=imread(football.jpg);I=rgb2gray(i);I=im2double(I);%模拟运动模糊 LEN=21;THETA=11;PSF=fspecial(motion,L
35、EN,THETA);blurred=imfilter(I,PSF,conv,circular);%恢复图像 wnr2=deconvwnr(blurred,PSF);subplot(1,2,1);imshow(blurred);title(运动模糊图像)subplot(1,2,2);imshow(wnr2);title(恢复图像)2、利用 MATLAB 实现频域滤波 clc;clear all,close all;f=imread(cameraman.tif);.F=fft2(f);%对图像进行傅立叶变换%对变换后图像进行对数变化,并对其坐标平移,使其中心化 S=fftshift(log(1+a
36、bs(F);S=gscale(S);%将频谱图像标度在0-256的围 subplot(3,3,1),imshow(S),title(原图频谱图);%显示频谱图像 h=fspecial(sobel);%产生空间sobel模版 freqz2(h)%查看相应频域滤波器的图像 PQ=paddedsize(size(f);%产生滤波时所需大小的矩阵 H=freqz2(h,PQ(1),PQ(2);%产生频域中的sobel滤波器 H1=ifftshift(H);%重排数据序列,使得原点位于频率矩阵的左上角 subplot(3,3,2),imshow(abs(H),),title(频域中的sobel滤波器);
37、%以图形形式显示滤波器 subplot(3,3,3),imshow(abs(H1),),title(重排数据序列后的sobel滤波器);gs=imfilter(double(f),h);%用模版 h 进行空域滤波 gf=dftfilt(f,H1);%用滤波器对图像进行频域滤波 subplot(3,3,4),imshow(gs,),title(用模版 h 对图像进行空域滤波);subplot(3,3,5),imshow(gf,),title(用滤波器对图像进行频域滤波);subplot(3,3,6),imshow(abs(gs),),title(图像用模版h 空域滤波后的模值);subplot(
38、3,3,7),imshow(abs(gf),),title(图像滤波器频域滤波后的模值);f=imread(cameraman.tif);%读取图片 PQ=paddedsize(size(f);%产生滤波时所需大小的矩阵 D0=0.05*PQ(1);%设定高斯高通滤波器的阈值 H=hpfilter(gaussian,PQ(1),PQ(2),D0);%产生高斯高通滤波器 g=dftfilt(f,H);%对图像进行滤波 subplot(3,3,8),imshow(f),title(原图);%显示原图像 subplot(3,3,9),imshow(g,),title(对原图进行滤波后的图);%显示滤
39、波后图像 .五实验结果 1、产生运动模糊图像,运用维纳滤波进行图像恢复,显示结果。运 动 模 糊 图 像恢 复 图 像 2、利用 MATLAB 实现频域滤波 频 域 中 的 sobel滤 波 器重 排 数 据 序 列 后 的 sobel滤 波 器用 模 版 对 图 像 进 行 空 域 滤 波用 滤 波 器 对 图 像 进 行 频 域 滤 波图 像 用 模 版 空 域 滤 波 后 的 模 值图 像 滤 波 器 频 域 滤 波 后 的 模 值原 图对 原 图 进 行 滤 波 后 的 图 六实验心得.通过这次试验认识到在图像恢复中,需建立造成图像质量下降的退化模型,然后运用相反过程来恢复原来图像,并
40、运用一定准则来判定是否得到图像的最佳恢复。在遥感图像处理中,为消除遥感图像的失真、畸变,恢复目标的反射波谱特性和正确的几何位置,通常需要对图像进行恢复处理,包括辐射校正、大气校正、条带噪声消除、几何校正等容。.实验五 图像的分割与边缘提取 一实验目的及要求 1利用 MATLAB 研究图像分割与边缘检测的常用算法原理;2掌握 MATLAB 图像域值分割与边缘检测函数的使用方法;3了解边缘检测的算法和用途,比较 Sobel、Prewitt、Canny 等算子边缘检测的差异。二、实验容(一)1图像阈值分割 2边缘检测(二)利用 MATLAB 熟悉并验证其它图像分割方法(三)采用 MATLAB 编程实
41、现自动全局阈值算法,对图像rice.tif进行二值化分割 算法步骤:1)选取一个的初始估计值T;.2)用T分割图像。这样便会生成两组像素集合:G1 由所有灰度值大于 T 的像素组成,而G2 由所有灰度值小于或等于 T 的像素组成。3)对G1 和G2 中所有像素计算平均灰度值1和2。4)计算新的阈值:T=(1+2)/2 5)重复步骤(2)到(4),直到逐次迭代所得到的 T 值之差小于一个事先定义的参数To,即,如果|Tn Tn-1|To,则停止。三、实验设备 1计算机;2MATLAB6.5 四 实验源程序 1图像阈值分割 clc;clear all,close all;I=imread(came
42、raman.tif);subplot(2,3,1),imshow(I),title(原图);subplot(2,3,2),imhist(I),title(原图的直方图);T=120/255;Ibw1=im2bw(I,T);%选择阈值 T=120/255 对图像二值化;subplot(2,3,3),imshow(Ibw1),title(选择阈值 T=120/255 对图像二值化);T=graythresh(I);%采用 Otsu 方法计算最优阈值 T 对图像二值化,Otsu 为自动阈值法 L=uint8(T*255);Ibw2=im2bw(I,T);subplot(2,3,4),imshow(I
43、bw2),title(用 Otsu 方法计算最优阈值 T 对图像二值化);T1=150/255;Ibw1=im2bw(I,T1);%选择阈值 T1=150/255 对图像二值化;subplot(2,3,5),imshow(Ibw1),title(选择阈值 T1=150/255 对图像二值化);T1=graythresh(I);%采用 Otsu 方法计算最优阈值 T1 对图像二值化;L=uint8(T1*255);Ibw2=im2bw(I,T1);subplot(2,3,6),imshow(Ibw2),title(用 Otsu 方法计算最优阈值 T1 对图像二值化);.2边缘检测 clc;cle
44、ar all,close all;I=imread(cameraman.tif);%BW=edge(I)采用灰度或一个二值化图像I 作为它的输入,并返回一个与 I 相同大小的二值化图像 BW,在函数检测到边缘的地方为 1,其他地方为 0。BW1=edge(I,sobel);%自动选择阈值用 Sobel 算子进行边缘检测。BW2=edge(I,canny);%自动选择阈值用 canny 算子进行边缘检测。BW3=edge(I,prewitt);%自动选择阈值用 prewitt 算子进行边缘检测。BW4=edge(I,roberts);%自动选择阈值用 roberts 算子进行边缘检测。BW5=e
45、dge(I,log);%自动选择阈值用 LOG 算子进行边缘检测。subplot(2,3,1),imshow(I),title(Original Image);subplot(2,3,2),imshow(BW1),title(sobel);subplot(2,3,3),imshow(BW2),title(canny);subplot(2,3,4),imshow(BW3),title(prewitt);subplot(2,3,5),imshow(BW4),title(roberts);subplot(2,3,6),imshow(BW5),title(log);五实验结果 1图像阈值分割.原 图原
46、 图 的 直 方 图选 择 阈 值对 图 像 二 值 化用方 法 计 算 最 优 阈 值 对 图 像 二 值 化选 择 阈 值对 图 像 二 值 化用方 法 计 算 最 优 阈 值对 图 像 二 值 化 2边缘检测.六实验心得和体会 通过这几次的数字图像处理实验,我对图像的读取、存储和显示,图像直方图,图像的滤波及增强,噪声图像的复原,图像的分割与边缘提取等理论有了更深的理解,经过编写 MATLAB 程序可以直观的看到对图像处理后的效果,这不仅让我理解了数字图像处理中很多理论的奥妙之处,而且提高了我的 MATLAB 软件编程能力。当然,实验过程中也遇到了一些困难,但通过自己对资料的查询以及和老
47、师、同学之间的交流,最终解决了遇到的问题。总而言之,这几次的实验让我收获颇丰、受益匪浅。我会继续努力的。附录 1 MATLAB 简介.Matlab 是 Mathworks 公司推出的科技应用软件.Matlab 的使用方式 指令行操作之直接交互工作方式;使用 matlab 编程语言之程序设计方式.交互方式的使用:在 Matlab 工作窗中一般输入以下三种指令行:命令 表达式 赋值语句:变量=表达式;Matlab 的程序工作方式 step 1.FileNewM-file 打开 Matlab 程序工作窗 Editor/Debugger;step 2.编写 Matlab 程序;ToolsRun 基本命
48、令:MATLAB 含有功能强大的图像处理工具箱,MATLAB 对图像处理的全面支持表现在以下几方面:MATLAB 图像处理工具箱支持四种基本图像类型,即:索引图像、灰度图像、二进制图像和RGB 图像。MATLAB 图像处理工具提供了丰富的图像类型转换函数,如:gray2ind()-将灰度图像转换成具有索引的彩色图像;rgb2gray()-将彩色 RGB 图像转换成灰度图像;im2bw()-将图像转换成黑白二值图;isgray()-判断图像是否为灰度图像等 图像显示灵活,常用的函数有:image()、subimage()、imshow()等。图像操作函数丰富,如:imhist()-统计图像的直方图 histeq()-直方图均衡 brighten()-调整图像的亮度.imnoise()-给图像加噪声 medfilt2()-中值滤波 edge()-边沿检测 imresize()-调整图像大小 imrotate()-图像旋转 mean2()-求图像的均值 fft2()-对图像进行 2 维 FFT 变换 hadamard()-对图像进行哈达玛变换 dct2()-对图像进行 2 维 DCT 变换 imread()-从文件读入图像数据