数字图像灰度图像二值化实验报告matlab实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数字图像处理实验报告实验二灰度图像的二值化处理学号姓名日期实验二灰度图像的二值化处理一、实验目的图像二值化是数字图像处理技术中的一项基本技术,二值化图像的显示与打印十分方便,存储与传输也非常容易,在目标识别、图像分析、文本增强、字符识别等领域得到广泛应用。图像二值化是将灰度图像转化为只有黑白两类像素的图像,大多采用阈值化算法处理。在不同的应用中,阈值的选取决定着图像特征信息的保留。因此,图像二值化技术的关键在于如何选取阈值。二、实验内容1、编程绘制数字图像的直方图。2、灰度图像二值化处理。三、实验要求1、自己选择灰度图像。2、选择多种阈值分割算法,并比较和分析图像二值化处理的结果。3、使用VC++编程序。四、设计思想(阈值选取算法)灰度图像是指只含亮度信息,不含色彩信息的图像,将彩色图像转化成为灰度图像的过程称为图像的灰度化处理。图像的二值化处理就是将图像上的点的灰度置为0或255,也就是使整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。阀值分割选取算法有:典型的全局阀值算法的Otsu算法、局部阀值方法中的Bersen算法、灰度拉伸法、直方图方法等等。1.Otsu算法的设计思想:设阀值将图像分割成两组,一组灰度对应目标,另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。对图像设阈值将图像分割成两组,一组灰度对应目标,另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。2.Bersen算法的设计思想:把灰度阈值选取为随像素位置变化而变化的函数,它是一种动态选择阈值的自适应方法。3.灰度拉伸算法设计思想:灰度拉伸又叫对比度拉伸,它是最基本的一种灰度变换,使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围。4.直方图算法的设计思想:把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部灰度范围内的均匀分布。五、源程序(附上注释)1.OTSU算法代码:I=imread('2.jpg');th=graythresh(I);J=im2bw(I,th);subplot(121)imshow(I);subplot(122)imshow(J);2.Bernsen算法代码:%Bernsen算法代码:clc;clearallcloseallI=imread('2.jpg');[m,n]=size(I);I_gray=double(I);T=zeros(m,n);M=3;N=3;fori=M+1:m-Mforj=N+1:n-Nmax=1;min=255;fork=i-M:i+Mforl=j-N:j+NifI_gray(k,l)maxmax=I_gray(k,l);endifI_gray(k,l)minmin=I_gray(k,l);endendendT(i,j)=(max+min)/2;endendI_bw=zeros(m,n);fori=1:mforj=1:nifI_gray(i,j)T(i,j)I_bw(i,j)=255;elseI_bw(i,j)=0;endendendsubplot(121),imshow(I);subplot(122),imshow(I_bw);3.改进的Bernsen算法代码:clc;clearallcloseallI=imread('2.jpg');I_gray=double(I);[m,n]=size(I);a=0.3;A=0;T1=0;S=0;fori=1:mforj=1:nA=A+I_gray(i,j);endendA=A*0.9;while(SA)T1=T1+1;fori=1:mforj=1:nif(I_gray(i,j)==T1)S=S+I_gray(i,j);endendendendT2=zeros(m,n);T3=zeros(m,n);M=3;N=3;fori=M+1:m-Mforj=N+1:n-Nmax=1;min=255;fork=i-M:i+Mforl=j-N:j+NifI_gray(k,l)maxmax=I_gray(k,l);endifI_gray(k,l)minmin=I_gray(k,l);endendendT2(i,j)=(max+min)/2;T3(i,j)=max-min;endendT4=medfilt2(T2,[M,N]);T5=(T1+T4)/2;I_bw=zeros(m,n);fori=1:mforj=1:nifI_gray(i,j)(1+a)*T1I_bw(i,j)=255;endifI_gray(i,j)(1-a)*T1I_bw(i,j)=0;endif(1-a)*T1=I_gray(i,j)=(1-a)*T1ifT3(i,j)a*T1ifI_gray(i,j)=T4(i,j)I_bw(i,j)=255;elseI_bw(i,j)=0;endelseifI_gray(i,j)=T5(i,j)I_bw(i,j)=255;elseI_bw(i,j)=0;endendendendendsubplot(121),imshow(I);subplot(122),imshow(I_bw);六、实验结果及实验分析OTSU算法Bernsen算法改进的Bernsen算法上面分别用了OTSU算法、Bernsen算法、改进的Bernsen算法三种方法得到了二值化结果,如上图。通过对比不难发现用OTSU算法二值化后的人物比较清晰,背景和前景分割比较明显,改进的Bersen算法可以人物和背景比较好的分开来,而Bersen算法人物与背景较难区分。七、个人体会通过这次的实验,经过广泛查阅书籍和有关知识,掌握了很多不知道的知识,使我我对图像处理有了更深一步的了解。Otsu算法可以得到比较理想的分割效果,分割效率也比较高,此法选出来的阈值比较稳定,分割质量有一定的保证,因而得到广泛的应用,是较为实用的全局二值化算法,Bersen算法容易把背景本身当作两类来处理,此时用这种算法不能正确地分出前景和背景,改进的Bernsen算法是典型的局部二值化算法,分割效果比较清晰,可以把图像正确地二值化。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功