matlab静态图像分割及边缘检测与图像压缩及编码.docx
- 文档编号:4008941
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:16
- 大小:144.93KB
matlab静态图像分割及边缘检测与图像压缩及编码.docx
《matlab静态图像分割及边缘检测与图像压缩及编码.docx》由会员分享,可在线阅读,更多相关《matlab静态图像分割及边缘检测与图像压缩及编码.docx(16页珍藏版)》请在冰豆网上搜索。
matlab静态图像分割及边缘检测与图像压缩及编码
学号
14102500892
光电图像处理实验报告
实验三:
静态图像分割与边缘检测
作者
肖剑洪
专业
电子科学与技术
学院
物理与电子学院
指导老师
王晓明
完成时间
2013.12.2
实验三静态图像分割与边缘检测
一、实验目的
1.学习常用的图像分割与边缘检测方法,并通过实验使学生体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响;
2.观察图像分割的结果,产生对所讲述理论知识的直观认识,加深对图像分割与边缘检测相关理论知识的理解。
3.掌握常用图象分割及边缘检测方法的算法设计及编程实现;
4.学会使用MATLAB软件中关于图像分割与边缘检测的函数;
二、实验设备
联想图像处理工作站
三、实验内容及要求
1.自己编写M-function实现图像阈值分割算法,要求该程序能对256级灰度图像进行处理,显示处理前、后图像;
2.自己编写M-function实现利用Sobel算子进行图像边缘检测的算法,并对图像进行检测,显示原图像、处理后的图像。
3.调用Matlab自带的图像处理函数,用不同的算子对图像进行分割、边缘检测,比较结果。
4.结合以上实验内容,使用ICETECK-DM642-IDK-M实验系统进行相应的动态视频图像分割及边缘检测,观察结果。
四、实验原理
1.图像分割
图像分割是将图像划分成若干个互不相交的小区域的过程,小区域是某种意义下具有共同属性的像素的连通集合。
图像分割有三种不同的途径:
区域法、边界法、边缘法。
最常用的是灰度阈值化处理进行的图像分割:
域值T的选取直接影响分割的效果!
(1)直方图双峰域值选择
(2)迭代域值选择
迭代思想:
选择一个初始估计值,通过某种策略不断改进(调制)新的估计值,直到满足给定的准则。
迭代步骤:
⑴选择一个初值估计值T,一般为最大灰度值和最小灰度值的中间值;
⑵使用域值T分割图像,得到两组像素G1(>=T)和G2( ⑶计算两组像素的灰度均值: μ1和μ2; ⑷计算新域值T=(μ1和μ2)/2; ⑸重复步骤2~4,直到新域值的改变量小于预先定义的参数e。 (3)最大类间方差法(Otsu) 思想: ⑴将图像中目标和背景看作分属不同类别的像素组成; ⑵判别分析法的目标是确定域值使分属不同类别的像素的类间方差最大。 1.边缘检测 灰度或结构等信息的突变出称为边缘,在空间域借助微分算子通过卷积来完成,而空域的微分在离散数字图像可以采用差分来近似。 基于一阶导数的边缘检测算子有Robert算子、Sobel算子、Prewitt算子等,基于二阶导数的边缘检测算子有Laplace算子,LOG算子是一种改进的方式。 Sobel算子为一对模板: -1 -2 -1 0 0 0 1 2 1 -1 0 1 -2 0 2 -1 0 1 五、实验步骤 1.根据实验内容的要求在MATLAB软件中编写相应程序; 1)灰度阈值分割实验(使用迭代阈值选择方法) 2)使用Sobel算子的边缘检测实验 3)调用Matlab已有的图像处理函数,对图像进行分割和边缘检测 a.调用边缘检测函数edge,并与自己编写的函数运行结果进行比较; b.用其他边缘检测算子和分割方法对图像进行处理,并对结果进行比较。 2.调试运行程序,并记录结果。 3.结合以上实验内容,使用ICETECK-DM642-IDK-M实验系统进行相应的动态视频图像增强处理,观察结果。 4.完成实验报告。 六、实验程序清单和实验结果及分析 1.图像分割 clearall,closeall; H=imread('f: /1.jpg'); I=rgb2gray(H); figure (1),imshow(I) figure (2);imhist(I) T=120/255; Ibw1=im2bw(I,T);%选择阈值T=120/255对图像二值化; figure(3); subplot(1,2,1),imshow(Ibw1); T=graythresh(I);%采用Otsu方法计算最优阈值T对图像二值化; L=uint8(T*255) Ibw2=im2bw(I,T); subplot(1,2,2),imshow(Ibw2); (2)迭代域值选择 clc;clearall; H=imread('f: /1.jpg'); I=rgb2gray(H); I=double(I)/255; k1=(max(max(I))+min(min(I)))/2; [rowscols]=size(I); count1=0; count2=0; fori=1: rows forj=1: cols ifI(i,j) count1=count1+1; G1(count1).I=I(i,j); else count2=count2+1; G2(count2).I=I(i,j); end end end k2=(mean(mean([G1.I]))+mean(mean([G2.I])))/2; while(abs(k2-k1)>(5/255)) k1=k2; count1=0; count2=0; fori=1: rows forj=1: cols ifI(i,j) count1=count1+1; G1(count1).I=I(i,j); else count2=count2+1; G2(count2).I=I(i,j); end end end k2=(mean(mean([G1.I]))+mean(mean([G2.I])))/2; end figure (1);imshow(I); figure (2);II=im2bw(I,k2);imshow(II); 2.边缘检测 clearall,closeall; H=imread('f: /1.jpg'); I=rgb2gray(H); BW1=edge(I,'sobel'); BW2=edge(I,'canny'); BW3=edge(I,'prewitt'); BW4=edge(I,'roberts'); BW5=edge(I,'log'); figure (1),imshow(I),title('OriginalImage'); 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.小结一下本实验所用的边缘检测方法。 答: 边缘检测的基本算子有: 一阶: : RobertsCross算子,Prewitt算子,Sobel算子,Kirsch算子,罗盘算子;二阶: Marr-Hildreth,在梯度方向的二阶导数过零点,Canny算子,Laplacian算子Canny算子(或者这个算子的变体)是最常用的边缘检测方法。 在Canny创造性的工作中,他研究了设计一个用于边缘检测最优预平滑滤波器中的问题,后来他说明这个滤波器能够很好地被一阶高斯导数核优化。 另外Canny引入了非最大抑制概念,它是说边缘定义为在梯度方向具有最大梯度值的点。 在一个离散矩阵中,非最大抑制阶梯能够通过一种方法来实现,首先预测一阶导数方向、然后把它近似到45度的倍数、最后在预测的梯度方向比较梯度幅度。 2.基于微分方法的边缘检测算法的依据是什么? 答: 一般来说不同区域的交界处构成边缘,同一区域内像素的灰度差较小,而不同区域像素灰度差较大,因此用微分可以很好地检测满足这种假设的区域边界。 学号 14102500892 光电图像处理实验报告 实验四: 图像压缩与编码 作者 肖剑洪 专业 电子科学与技术 学院 物理与电子学院 指导老师 王晓明 完成时间 2013.12.2 实验四图像压缩与编码 一、实验目的 1.了解图像压缩编码原理; 2.掌握常用的图像压缩算法及编程实现; 3.学会使用MATLAB软件中关于图像压缩编码的函数; 二、实验设备 联想图像处理工作站 三、实验内容及要求 1.自己编写M-function实现图像无损压缩算法,要求该程序能对256级灰度图像进行压缩数据,计算压缩算法的性能; 2.自己编写M-function实现图像有损压缩算法,要求该程序能对256级灰度图像进行压缩数据,计算压缩算法的性能; 3.调用Matlab自带的图像处理函数,用不同的算法对图像进行压缩编码,比较结果。 四、实验原理 图像压缩与编码是在满足一定保真度的要求下,对图像数据的进行变换、编码和压缩,去除冗余数据减少表示数字图像时需要的数据量,以便于图像的存储和传输,即以较少的数据量有损或无损地表示原来的像素矩阵的技术。 图像压缩编码可分为两类: 一类压缩是可逆的,即从压缩后的数据可以完全恢复原来的图像,信息没有损失,称为无损压缩编码;另一类压缩是不可逆的,即从压缩后的数据无法完全恢复原来的图像,信息有一定损失,称为有损压缩编码。 传统数据压缩方法的分类: 无损压缩包括统计编码(Huffman编码,Shannon编码,游程编码,算术编码等)和轮廓编码; 有损压缩包括预测编码(脉冲编码调制PCM,Differential PCM,AdaptiveDPCM等)、变换编码(DFT,DCT,KLT,WHT,小波变换等)和混合编码。 统计编码是根据信源的概率分布特性,分配具有惟一可译性的可变长码字,降低平均码字长度,以提高信息的传输速度,节省存储空间。 其基本原理是在信号概率分布情况已知的基础上,概率大的信号对应的码字短,概率小的信号对应的码字长,这样就降低了平均码字长度。 其中Huffman编码具体的编码方法为 : ①把输入元素按其出现概率的大小顺序排列起来,然后把最末两个具有最小概率的元素之概率加起来; ②把该概率之和同其余概率由大到小排队,然后再把两个最小概率加起来,再重新排队;③重复②,直到最后只剩下两个概率为止 。 变换编码的基本原理是通过数学变换可以改变信号能量的分布,从而压缩信息量。 以傅里叶变换的概念说明合理的变换可以改变信号能量分布的基本原理。 在变换编码中有以下二个问题值得注意: 图像变换方法的选取;子图像大小的选取。 传统的DFT,DCT,KLT和经典小波变换等变换编码 在图像变换后会产生浮点数,因而必须对变换后的数据进行量化处理,这样就产生不同程度的失真。 而新一代的整数小波变换(第二代小波变换)采用提升方法能够实现整数变换,因而能够实现图像的无损压缩。 新的静态图像压缩标准JPEG2000中采用了基于提升方法的整数小波变换。 五、实验步骤 1.选择一组合适的原始图像作为测试图像; 2.根据设计要求选择合适的图像压缩与编码方法; 3.设计压缩与编码算法; 4.显示原始图像和压缩重构图像; 5.计算压缩的性能指标: 压缩率和保真度; 6.完成实验报告。 六、实验结果及分析 1、利用余弦变换实现图像压缩: DCT先将整体图像分成N×N像素块(一般N=8 ,即64个像素块),再对N×N块像素逐一进行DCT变换。 由于大多数图像高频分量较小,相应于图像高频成分的失真不太敏感,可以用更粗的量化,在保证所要求的图质下,舍弃某些次要信息。 实验代码: a=imread('f: /1.jpg'); I=rgb2gray(a); imshow(I); title('原始图像'); disp('原始图像大小: '); whos('I'); I=im2double(I);%图像类型存储转换,将图像矩阵转换成双精度类型? T=dctmtx(8);%离散余弦变换矩阵 B=blkproc(I,[88],'P1*x*P2',T,T'); mask=[11110000 11100000 11000000 10000000 00000000 00000000 00000000 00000000]; B2=blkproc(B,[88],'P1.*x',mask); I2=blkproc(B2,[88],'P1*x*P2',T',T); figure,imshow(I2); title('压缩后的图像'); disp('压缩图像的大小: '); whos('I2'); 原始图像大小: NameSizeBytesClassAttributes I287x28782369uint8 压缩图像的大小: NameSizeBytesClassAttributes I2287x287658952double 2、利用小波变换实现图像压缩 clearall a=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('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的大小: NameSizeBytesClassAttributes I287x28782369uint8 第一次压缩图像的大小为: NameSizeBytesClassAttributes ca1151x151182408double 第二次压缩图像的大小为: NameSizeBytesClassAttributes ca283x8355112double 八、实验思考题 1.DFT与DCT的性能比较; 答: DCT是离散傅里叶变换;DFT是离散余弦变换。 共同点: 都将空域的图像数据信息转换到频域中,即分离出图像的低频到高频成分。 区别: 1、DCT与DFT转换后的域仅包含频域成分,就叫频域;DWT转换后的域不仅有频域成分,还具有空域成分,因此叫小波域。 2、DCT的频域的低频成分在DCT系数图的中间,高频成分在四周,离系数图中心越远,频率越高;DFT与DWT的频域的低频成分在系数图左上方,越往右下方频率越
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 静态 图像 分割 边缘 检测 压缩 编码
![提示](https://static.bdocx.com/images/bang_tan.gif)