1、学 号 14102500892光 电 图 像 处 理 实 验 报 告实 验 三:静态图像分割与边缘检测作 者 肖剑洪 专 业 电 子 科 学 与 技 术学 院 物理与电子学院 指导老师 王晓明完成时间 2013.12.2实验三 静态图像分割与边缘检测一、实验目的1学习常用的图像分割与边缘检测方法,并通过实验使学生体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响;2观察图像分割的结果,产生对所讲述理论知识的直观认识,加深对图像分割与边缘检测相关理论知识的理解。3掌握常用图象分割及边缘检测方法的算法设计及编程实现;4学会使用 MATLAB 软件中关于图像分割与边缘检测的函数;二
2、、实验设备联想图像处理工作站三、实验内容及要求1自己编写 M-function 实现图像阈值分割算法,要求该程序能对 256 级灰度图像进行处理,显示处理前、后图像;2自己编写 M-function 实现利用 Sobel 算子进行图像边缘检测的算法,并对图像进行检测,显示原图像、处理后的图像。3调用 Matlab 自带的图像处理函数,用不同的算子对图像进行分割、边缘检测,比较结果。 4结合以上实验内容,使用 ICETECK-DM642-IDK-M 实验系统进行相应的动态视频图像分割及边缘检测,观察结果。四、实验原理1图像分割图像分割是将图像划分成若干个互不相交的小区域的过程, 小区域是某种意义
3、下具有共同属性的像素的连通集合。图像分割有三种不同的途径:区域法、边界法、边缘法。最常用的是灰度阈值化处理进行的图像分割:0(,)(,)25fxyTgxy域值 T 的选取直接影响分割的效果!(1)直方图双峰域值选择(2)迭代域值选择迭代思想:选择一个初始估计值,通过某种策略不断改进(调制)新的估计值,直到满足给定的准则。迭代步骤:选择一个初值估计值 T,一般为最大灰度值和最小灰度值的中间值;使用域值 T 分割图像,得到两组像素 G1(=T)和 G2((5/255)k1=k2;count1=0;count2=0;for i=1:rowsfor j=1:colsif I(i,j)k1count1=
4、count1+1;G1(count1).I=I(i,j);elsecount2=count2+1;G2(count2).I=I(i,j);endendendk2=(mean(mean(G1.I)+mean(mean(G2.I)/2;endfigure(1);imshow(I);figure(2);II=im2bw(I,k2);imshow(II);2.边缘检测 clear all, close all;H=imread(f:/1.jpg);I=rgb2gray(H);BW1 = edge(I,sobel);BW2 = edge(I,canny);BW3 = edge(I,prewitt);BW
5、4 = edge(I,roberts);BW5 = edge(I,log);figure(1), imshow(I), title(Original Image);figure(2), imshow(BW1), title(sobel);figure(3), imshow(BW2), title(canny);figure(4), imshow(BW3), title(prewitt);figure(5), imshow(BW4), title(roberts);figure(6), imshow(BW5), title(log);八、实验思考题1 小结一下本实验所用的边缘检测方法。答:边缘检
6、测的基本算子有:一阶::Roberts Cross 算子,Prewitt 算子,Sobel 算子, Kirsch 算子,罗盘算子; 二阶: Marr-Hildreth,在梯度方向的二阶导数过零点,Canny 算子,Laplacian 算子 Canny 算子(或者这个算子的变体)是最常用的边缘检测方法。 在 Canny 创造性的工作中,他研究了设计一个用于边缘检测最优预平滑滤波器中的问题,后来他说明这个滤波器能够很好地被一阶高斯导数核优化。另外 Canny 引入了非最大抑制概念,它是说边缘定义为在梯度方向具有最大梯度值的点。在一个离散矩阵中,非最大抑制阶梯能够通过一种方法来实现,首先预测一阶导数
7、方向、然后把它近似到45度的倍数、最后在预测的梯度方向比较梯度幅度。2 基于微分方法的边缘检测算法的依据是什么?答:一般来说不同区域的交界处构成边缘,同一区域内像素的灰度差较小,而不同区域像素灰度差较大,因此用微分可以很好地检测满足这种假设的区域边界。学 号 14102500892光 电 图 像 处 理 实 验 报 告实 验 四 :图像压缩与编码作 者 肖剑洪 专 业 电 子 科 学 与 技 术学 院 物理与电子学院 指导老师 王晓明完成时间 2013.12.2实验四 图像压缩与编码一、实验目的1了解图像压缩编码原理;2掌握常用的图像压缩算法及编程实现;3学会使用 MATLAB 软件中关于图像
8、压缩编码的函数;二、实验设备联想图像处理工作站三、实验内容及要求1自己编写 M-function 实现图像无损压缩算法,要求该程序能对 256 级灰度图像进行压缩数据,计算压缩算法的性能;2自己编写 M-function 实现图像有损压缩算法,要求该程序能对 256 级灰度图像进行压缩数据,计算压缩算法的性能;3调用 Matlab 自带的图像处理函数,用不同的算法对图像进行压缩编码,比较结果。 四、实验原理图像压缩与编码是在满足一定保真度的要求下,对图像数据的进行变换、编码和压缩,去除冗余数据减少表示数字图像时需要的数据量,以便于图像的存储和传输,即以较少的数据量有损或无损地表示原来的像素矩阵
9、的技术。图像压缩编码可分为两类:一类压缩是可逆的,即从压缩后的数据可以完全恢复原来的图像,信息没有损失,称为无损压缩编码;另一类压缩是不可逆的,即从压缩后的数据无法完全恢复原来的图像,信息有一定损失,称为有损压缩编码。传统数据压缩方法的分类:无损压缩包括统计编码(Huffman 编码,Shannon 编码,游程编码,算术编码等)和轮廓编码; 有损压缩包括预测编码(脉冲编码调制 PCM,Differential PCM,AdaptiveDPCM 等) 、变换编码(DFT ,DCT,KLT,WHT ,小波变换等)和混合编码。 统计编码是根据信源的概率分布特性,分配具有惟一可译性的可变长码字,降低平
10、均码字长度,以提高信息的传输速度,节省存储空间。其基本原理是在信号概率分布情况已知的基础上,概率大的信号对应的码字短,概率小的信号对应的码字长,这样就降低了平均码字长度。其中 Huffman 编码具体的编码方法为 :把输入元素按其出现概率的大小顺序排列起来,然后把最末两个具有最小概率的元素之概率加起来; 把该概率之和同其余概率由大到小排队,然后再把两个最小概率加起来,再重新排队;重复,直到最后只剩下两个概率为止 。 变换编码的基本原理是通过数学变换可以改变信号能量的分布,从而压缩信息量。以傅里叶变换的概念说明合理的变换可以改变信号能量分布的基本原理。在变换编码中有以下二个问题值得注意:图像变换
11、方法的选取;子图像大小的选取。传统的 DFT,DCT,KLT 和经典小波变换等变换编码 在图像变换后会产生浮点数,因而必须对变换后的数据进行量化处理,这样就产生不同程度的失真。而新一代的整数小波变换(第二代小波变换)采用提升方法能够实现整数变换,因而能够实现图像的无损压缩。新的静态图像压缩标准 JPEG2000中采用了基于提升方法的整数小波变换。 五、实验步骤1选择一组合适的原始图像作为测试图像;2根据设计要求选择合适的图像压缩与编码方法;3设计压缩与编码算法;4. 显示原始图像和压缩重构图像;5. 计算压缩的性能指标:压缩率和保真度; 6完成实验报告。六、实验结果及分析1、利用余弦变换实现图
12、像压缩: DCT 先将整体图像分成 NN 像素块(一般N=8 ,即 64 个像素块) ,再对 NN 块像素逐一进行 DCT 变换。由于大多数图像高频分量较小,相应于图像高频成分的失真不太敏感,可以用更粗的量化,在保证所要求的图质下,舍弃某些次要信息。实验代码:a=imread(f:/1.jpg);I=rgb2gray(a);imshow(I);title(原始图像 );disp(原始图像大小:);whos(I);I=im2double(I);%图 像类型存储转换,将图像矩 阵转换成双精度类型?T=dctmtx(8);%离散余弦变换矩阵B = blkproc(I,8 8,P1*x*P2,T,T)
13、;mask=1 1 1 1 0 0 0 01 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0;B2=blkproc(B,8 8,P1.*x,mask);I2=blkproc(B2,8 8,P1*x*P2,T,T);figure,imshow(I2);title(压缩后的图像 );disp(压缩图像的大小:);whos(I2);原始图像大小:Name Size Bytes Class AttributesI 287x287 82369 u
14、int8 压缩图像的大小:Name Size Bytes Class AttributesI2 287x287 658952 double 2、利用小波变换实现图像压缩clear alla=imread(f:/1.jpg);I=rgb2gray(a);imshow(I);title(原始图像 );disp(原始图像I的大小: );whos(I);I=im2double(I);c,s=wavedec2(I,2,bior3.7);ca1=appcoef2(c,s,bior3.7,1);ch1=detcoef2(h,c,s,1);cv1=detcoef2(v,c,s,1);cd1=detcoef2(
15、d,c,s,1);ca1=appcoef2(c,s,bior3.7,1);ca1=wcodemat(ca1,440,mat,0);ca1=0.5*ca1;figure,image(ca1);title(第一次压缩后的图像 );disp(第一次压缩图像的大小为:);whos(ca1);ca2=appcoef2(c,s,bior3.7,2);ca2=wcodemat(ca2,440,mat,0);ca2=0.25*ca2;figure,image(ca2);title(第二次压缩后的图像 );disp(第二次压缩图像的大小为:);whos(ca2);原始图像I的大小:Name Size Bytes
16、 Class AttributesI 287x287 82369 uint8 第一次压缩图像的大小为:Name Size Bytes Class Attributesca1 151x151 182408 double 第二次压缩图像的大小为:Name Size Bytes Class Attributesca2 83x83 55112 double 八、实验思考题1 DFT 与 DCT 的性能比较;答:DCT 是离散傅里叶变换;DFT 是离散余弦变换 。共同点:都将空域的图像数据信息转换到频域中,即分离出图像的低频到高频成分。区别:1、DCT 与 DFT 转换后的域仅包含频域成分,就叫 频域;DWT 转换后的域不仅有频域成分,还具有空域成分,因此叫小波域。2、DCT 的频域的低频成分在 DCT 系数图的中间,高频成分在四周,离系数图中心越远,频率越高;DFT 与 DWT 的频域的低频成分在系数图左上方,越往右下方频率越