沈阳理工大学迭代阈值法图像分割程序设计

合集下载

彩色图象分割课程设计—RGB模型

彩色图象分割课程设计—RGB模型

彩色图像的处理有时需要将图像数据在不同的颜色空间中表示,因此,图像的颜色空间之间的转换成为一项有意义的工作,其中RGB在颜色空间转换中其关键作用,是各个空间转换的桥梁。

为了研究基于全参考图像的RGB模型彩色图像分割方法及其质量的客观评价方法,依据RGB模型彩色图像分割后得到的颜色分量具有相关性,对于彩色图像,应用基于传统阈值分割算法分析,主要使用到imread获取图像的RGB颜色信息,函数makecform()和applycform()来实现,将彩色图像转换成灰度图像,进而实现基于RGB模型的彩色图像的分割。

实验结果表明,提出的算法均可用与一定目的的RGB模型彩色图像的分割,由给出一组基于误差的单位像素的分割质量的客观评价的计算公式计算出的数据可用于彩色图像的分割质量的客观评价,且与彩色图像的分割效果的主观质量评价结果是一致的,可用于彩色图像分割质量的评价。

关键字:Matlab;图像处理;RGB1设计目的及要求................................................... I I1.1设计目的 ......................................... 错误!未定义书签。

1.2设计要求 (1)2图像处理简介 (2)2.1图像处理技术 (2)2.2图像处理的内容 (2)3设计原理 (4)4 设计方案 (5)4.1设计思想 (5)4.1 设计流程 (8)5 代码实现 (9)6仿真与结果分析 (11)6.1 仿真结果 (11)6.2 结果分析 (12)结论 (13)参考文献 (14)彩色图象分割课程设计—RGB模型1设计目的及要求1.1 设计目的(1)综合运用相关课程中所学到的理论知识去独立完成设计课题。

(2)通过查阅手册和相关文献资料,培养独立分析和解决问题的能力。

(3)进一步熟悉Matlab运用和图像处理的知识,加深对专业知识和理论知识学习的认识和理解。

数字图像处理实验指导书

数字图像处理实验指导书

《数字图像处理》实验指导书王永堃沈阳理工大学信息学院前言数字图像处理是电子信息科学与技术专业学生必修的专业基础课之一。

通过本课程的学习,使学生能够掌握有关数字图像处理的基本概念、方法、原理及应用,能够培养和增强学生技能的创新意识和创新思维,提高实际动手能力和创新能力,为学生进一步学习专业课程奠定基础。

数字图像处理由理论教学和实验教学环节组成,理论教学环节是基础,实验教学环节是对理论教学环节的延伸、充实和完善,实验教学在数字图像处理课程中具有重要地位与作用。

实验题目和学时说明。

实验一编写一幅灰度图像直方图统计程序;实验二图象编码实验;实验三用Photoshop软件对图像进行增强操作;实验四图象分割实验。

实验五数字图像变换实验六数字图像增强实验七二维数字滤波器设计实验八基于DSP的灰度阈值变换1目录实验一编写一幅灰度图像直方图统计程序 .................................. 4一实验目的......................................................................... 4二实验原理......................................................................... 4三实验内容......................................................................... 4四实验要求......................................................................... 4五实验程序......................................................................... 4六思考题 ............................................................................ 6实验二图象编码实验................................................................. 8一实验目的......................................................................... 8二实验内容......................................................................... 8三实验步骤......................................................................... 81 余弦变换编码.............................................................. 82 行程编码 .................................................................... 93 JPEG编码 ................................................................... 9四思考题 .........................................................................10实验三用Photoshop软件对图像进行增强操作.........................112一实验目的......................................................................11二实验内容......................................................................11三实验步骤......................................................................11四思考题 .........................................................................13实验四图象分割实验..............................................................15一实验目的......................................................................15二实验内容......................................................................15三实验方法......................................................................161边缘检测 ...................................................................162 模板匹配 .................................................................16四思考题 .........................................................................17实验五数字图像变换……………………………………………..1 4 实验六数字图像增强……………………………………………….1 6 实验七二维数字滤波器设计……………………………………….1 7 实验八基于DSP的灰度阈值变换………………………………….1 83实验一编写一幅灰度图像直方图统计程序一实验目的了解数字图像灰度直方图的概念和计算方法,掌握用MATLAB 画数字图像灰度直方图的方法。

自动阈值迭代法及Otsu法实验报告

自动阈值迭代法及Otsu法实验报告

数字图像处理实验自动阈值迭代法及Otsu法姓名:学好:指导老师:王韬时间:2012年5月自动阈值迭代法及Otsu法实验报告一、实验原理大津法由大津于1979年提出,对图像Image,记t为前景与背景的分割阈值,前景点数占图像比例为w0,平均灰度为u0;背景点数占图像比例为w1,平均灰度为u1。

图像的总平均灰度为:u=w0*u0+w1*u1。

从最小灰度值到最大灰度值遍历t,当t使得值g=w0*(u0-u)2+w1*(u1-u)2 最大时t即为分割的最佳阈值。

对大津法可作如下理解:该式实际上就是类间方差值,阈值t分割出的前景和背景两部分构成了整幅图像,而前景取值u0,概率为 w0,背景取值u1,概率为w1,总均值为u,根据方差的定义即得该式。

因方差是灰度分布均匀性的一种度量,方差值越大,说明构成图像的两部分差别越大, 当部分目标错分为背景或部分背景错分为目标都会导致两部分差别变小,因此使类间方差最大的分割意味着错分概率最小。

二、实验步骤自动阈值(迭代法)步骤(1)估计一个阈值T(比如均值)(2)用阈值T将灰度直方图分割成两个区域R1、R2(3)分别计算两个区域R1、R2内的灰度平均值u1和u2(4)选择新阈值T=(u1+u2)/2(5)重复上述工作3~5次,直到前后两次的阈值不变自动阈值(Otsu法)步骤(1).计算直方图(2).设置初值:wi(0)以及ui(0)(3).从1到最大值设置阈值T。

更新wi (t)以及ui (t)。

计算σb(t) * σb(t)。

(4).选取最大σb(t) * σb(t)对应的T三、实验程序#include <afx.h>#include <windows.h>#include <iostream.h>#include <stdlib.h>#include <math.h>int nWidth; //图像宽度int nHeight; //图像高度int nColorBits; //每个像素所占位数int nColor; //图像颜色数int nLen; //图像文件大小,以字节数计int nByteWidth; //图像每行字节数BYTE *lpBitmap; //指向图像首字节的指针BYTE *lpBits; //指向图像实际数据的指针void OpenFile(CString FileName);void SaveFile(CString FileName);void OtusTHreshold(void);/*函数名称OpenFile() 功能:读取一幅BMP图像*/void OpenFile(CString FileName){//创建文件语句HANDLEhFile=::CreateFile(FileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN _EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);if(hFile==0){printf("不能打开文件,请重新选择!\n");return;}//读取图像文件DWORD WriteNum;BITMAPFILEHEADER BFH;//文件头ReadFile(hFile,&BFH,14,&WriteNum,NULL);//读取文件头,共14个字节if((BFH.bfType!='MB')||(WriteNum!=sizeof(BITMAPFILEHEADER))){printf("不是BMP位图文件或数据有误!\n");return;}nLen=GetFileSize(hFile,NULL)-sizeof(BITMAPFILEHEADER);//获取文件的长度lpBitmap=new BYTE[nLen];//存放图像,包括图像的信息头、调色板和像素数据ReadFile(hFile,lpBitmap,nLen,&WriteNum,NULL);//读取图像数据//设置全局变量的值BITMAPINFOHEADER *BIH=((BITMAPINFOHEADER *)lpBitmap);//图像文件的信息头nWidth=BIH->biWidth;//图像的宽度nHeight=BIH->biHeight;//图像的高度nColorBits=BIH->biBitCount;//图像的颜色数nByteWidth=(nWidth*nColorBits+31)/32*4;//图像的扫描宽度nColor=(nColorBits>8)?0:(1<<nColorBits);//调色板中的颜色数lpBits=lpBitmap+sizeof(BITMAPINFOHEADER)+sizeof(RGBQUAD)*nColor;//指向图像数据的实际位置CloseHandle(hFile);//关闭文件句柄}/*函数名称SaveFile() 功能:保存一幅BMP图像*/void SaveFile(CString FileName){//创建一个文件来保存图像文件HANDLEhFile=::CreateFile(FileName,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CR EATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);if(hFile==0){printf("不能创建文件,请重新选择!\n");return;}//创建一个文件头,并保存到创建的文件中unsigned long WriteNum;BITMAPFILEHEADER BFH;BFH.bfType='MB';BFH.bfSize=nLen+sizeof(BITMAPFILEHEADER);BFH.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+n Color*sizeof(RGBQUAD);BFH.bfReserved1=BFH.bfReserved2=0;WriteFile(hFile,&BFH,sizeof(BITMAPFILEHEADER),&WriteNum,NULL);//保存改变的位图文件数据WriteFile(hFile,(BITMAPINFOHEADER*)lpBitmap,nLen,&WriteNum,NULL);CloseHandle(hFile);//关闭文件句柄}/*图像分割Otsu法*/void Otus(void){int i,j;//循环变量int nGrayHistogram[256];//灰度直方图数组,并初始化memset(nGrayHistogram,0,sizeof(nGrayHistogram));//统计各个灰度级对应的像素个数,并存放到灰度直方图数组中int nPixel;for(j=0;j<nHeight;j++){for(i=0;i<nWidth;i++){nPixel=lpBits[nByteWidth*j+i];//获取当前像素点的灰度值nGrayHistogram[nPixel]++;//对灰度值统计计数}}float u0,u1;//c0组和c1组的均值float w0,w1;//c0组和c1组的概率int nCount0;//c0组的像素总数int nT,nBestT;//阈值和最佳阈值(对应方差最大时的阈值)float fVaria,fMaxVaria=0;//方差和最大方差//统计直方图中像素点的总数,并存放到nSum中int nSum=0;for(i=0;i<256;i++)nSum+=nGrayHistogram[i];//令阈值nT从0遍历到255for(nT=0;nT<256;nT++){//当阈值为nT时,计算c0组的均值和概率u0=0;nCount0=0;for(i=0;i<=nT;i++){u0+=i*nGrayHistogram[i];nCount0+=nGrayHistogram[i];}u0/=nCount0;w0=(float)nCount0/nSum;//当阈值为nT时,计算c1组的均值和概率u1=0;for(i=nT+1;i<256;i++)u1+=i*nGrayHistogram[i];u1/=(nSum-nCount0);w1=1-w0;fVaria=w0*w1*(u0-u1)*(u0-u1);//计算两组间的方差if(fVaria>fMaxVaria)//记录最大方差和最佳阈值{fMaxVaria=fVaria;nBestT=nT;}}//利用最佳阈值对源图像作分割处理for(j=0;j<nHeight;j++){for(i=0;i<nWidth;i++){if(lpBits[j*nByteWidth+i]<nBestT)lpBits[j*nByteWidth+i]=0;elselpBits[j*nByteWidth+i]=255;}}}void main(){char OpenFileName[200];char SaveFileName[200];cout<<"请输入图像路径"<< endl;gets(OpenFileName);cout<<"请输入保存图像路径"<< endl;gets(SaveFileName);OpenFile(OpenFileName);Otus();cout<<"已完成!"<< endl;SaveFile(SaveFileName);delete []lpBitmap;}四、实验结果原图像:处理后图像:。

数字图像处理课程设计

数字图像处理课程设计

摘要数字图像处理的目的之一是图像识别, 而图像分割是图像识别工作的基础。

图像分割的算法有阈值分割法,边缘检测法,区域分割等,本设计重点介绍了分水岭图像分割的原理,MATLAB的实现代码与运行结果,并进行结果分析。

本程序中很多地方都有输入输出提示,有一定的人机交互。

分水岭阈值分割算法是一种特殊的自适应迭代阈值分割算法。

迭代阈值分割属于相似性分割,分水岭阈值选择算法具有运算简单、性能优良、能够较好的提取对象轮廓、准确的得到物体边缘的优点。

而利用分水岭算法分割时需要梯度信息,原始信号中噪声的影响会在梯度图中造成虚多虚假的局部极小值,因此产生了分割。

分水岭算法是对图像的梯度分割,因此本文利用分水岭算法将原图像通过梯度算子边缘检测得到梯度图像,在通过梯度图像的分水岭变换来进行图像的分割。

本文通过完成计算距离函数、标记内、外约束,完成重构梯度图,最后利用watershe算法完成对图像的分割。

关键词:分水岭;图像分割;标记内外约束;梯度图;MATLAB目录1设计目的 (1)2设计要求 (1)3软硬件平台 (1)3.1MATLAB软件介绍 (1)3.1.1MATLAB简介 (1)3.1.2MATLAB的广泛应用 (2)3.1.3 MATLAB主要组成部分 (3)4图像分割原理 (4)4.1研究背景 (4)4.2图像分割的基本原理 (4)5设计原理 (6)5.1 分水岭算法的概念 (6)5.2分水岭算法计算过程 (6)5.3分水岭算法的实现与特点 (7)6程序设计 (8)6.1程序代码........................................................................ 错误!未定义书签。

6.2 操作流程图 (8)7仿真结果与分析 (10)7.1仿真结果 (10)7.2结果分析 (11)8结论 (12)参考文献 (13)1设计目的(1)了解图像分割的原理(2)理解最大类间方差法的原理,及其应用,了解对图像处理后的变化效果(3)检验和巩固专业知识,提高综合素质和能力。

数字图像处理ostu图像分割和迭代式阈值

数字图像处理ostu图像分割和迭代式阈值

数字图像处理ostu图像分割和迭代式阈值(⼀)⽤各梯度算⼦对图像进⾏边缘检测;实现代码:clc;I=imread('flower.jpg');%读⼊灰度图像I1=im2double(I); %将彩图序列变成双精度f=rgb2gray(I1); %将彩⾊图变成灰⾊图[L,R]=size (f);%图像⼤⼩GR=f;GP=f;GS=f;for x=2:L-1for y=2:R-1GRx(x,y)=f(x,y)-f(x+1,y+1);GRy(x,y)=f(x,y+1)-f(x+1,y);GR(x,y)=sqrt((GRx(x,y)).^2+(GRy(x,y)).^2);%roberts图像边缘提取GPx(x,y)=(f(x-1,y+1)+f(x,y+1)+f(x+1,y+1))/3-(f(x-1,y-1)+f(x,y-1)+f(x+ 1,y-1))/3;GPy(x,y)=(f(x-1,y-1)+f(x-1,y)+f(x-1,y+1))/3-(f(x+1,y-1)+f(x+1,y)+f(x+ 1,y+1))/3;GP(x,y)=sqrt((GPx(x,y)).^2+(GPy(x,y)).^2);%prewitt图像边缘提取GSx(x,y)=(f(x-1,y+1)+2*f(x,y+1)+f(x+1,y+1))/3-(f(x-1,y-1)+2*f(x,y-1)+ f(x+1,y-1))/3;GSy(x,y)=(f(x-1,y-1)+2*f(x-1,y)+f(x-1,y+1))/3-(f(x+1,y-1)+2*f(x+1,y)+ f(x+1,y+1))/3;GS(x,y)=sqrt((GSx(x,y)).^2+(GSy(x,y)).^2);%sobel图像边缘提取endendfigure; %subplot(2,2,1);imshow(f,[]);title('原图象');figure;%subplot(2,2,2);imshow(GR,[]);title('Roberts算⼦边缘提取');figure;%subplot(2,2,3);imshow(GP,[]);title('Prewitt算⼦边缘提取');figure;%subplot(2,2,4);imshow(GS,[]);title('Sobel算⼦边缘提取');(⼆)利⽤直⽅图⼈⼯指定阈值对rice进⾏⾃动单阈值分割;源代码: oldbuf=imread('rice.tif');subplot(2,2,1);imshow(oldbuf);title('原图像');[M,N]=size(oldbuf);sk = imhist(oldbuf);%直⽅图up=max(sk);%纵坐标最⼤值subplot(2,2,2),imhist(oldbuf);axis([1 256 0 up]);%原直⽅图title('原图像直⽅图'),ylabel('频数'); xlabel('灰度值');fori=1:125sk(i)=0;endfori=126:Msk(i)=1;endfori=1:Mfor j=1:Nnewbuf(i,j)=sk(oldbuf(i,j));%映射end;endsubplot(2,2,3);imshow(newbuf); title('单阈值分割'); %单阈值分割I=im2double(oldbuf);se=strel('disk',10);%创建⼀个指定⼤⼩R平⾯disk形状的结构化元素。

多媒体图像处理实验——阈值分割实验报告

多媒体图像处理实验——阈值分割实验报告

图像分割迭代法实现图像阈值分割:一.实验原理图像阈值化分割是一种最常用,同时也是最简单的图像分割方法,它特别适用于目标和背景占据不同灰度级范围的图像。

它不仅可以极大的压缩数据量,而且也大大简化了分析和处理步骤,因此在很多情况下,是进行图像分析、特征提取与模式识别之前的必要的图像预处理过程。

图像阈值化的目的是要按照灰度级,对像素集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,各个区域内部具有一致的属性,而相邻区域布局有这种一致属性。

这样的划分可以通过从灰度级出发选取一个或多个阈值来实现。

迭代法是基于逼近的思想,其步骤如下:(1)求出图象的最大灰度值和最小灰度值,分别记为Zmax和Zmin,令初始阈值T0=(Zmax+Zmin)/2;(2)根据阈值TK将图象分割为前景和背景,分别求出两者的平均灰度值ZO和ZB;(3)求出新阈值TK+1=(ZO+ZB)/2;(4)若TK=TK+1,则所得即为阈值;否则转2,迭代计算。

迭代所得的阈值分割的图象效果良好。

基于迭代的阈值能区分出图像的前景和背景的主要区域所在,但在图像的细微处还没有很好的区分度。

经试验比较,对于直方图双峰明显,谷底较深的图像,迭代方法可以较快地获得满意结果。

但是对于直方图双峰不明显,或图像目标和背景比例差异悬殊,迭代法所选取的阈值不如最大类间方差法。

二.实验内容对测试图像进行图像分割,求出分割测试图像的最佳阈值。

分别显示原图、原图的直方图(标出阈值)、和分割后的二值图。

图1——测试图像三.实验程序%分割clear;I=imread('D:\fenge.jpg');figure(1)subplot(121);imshow(I);title('原图');[M,N]=size(I);T=125;%令原图像直方图两峰之间的谷底作为阈值ok=true;while okF1=I>=T;F2=I<T;aveF1=mean(I(F1));aveF2=mean(I(F2));newT=0.5*(aveF1+aveF2);ok=abs(T-newT)>=1;T=newT;endF=255*(I>T)+0*(I<=T);figure(1)subplot(122);imshow(F)title('分割后的二值图像');figure(2)[counts,x]=imhist(I,256);counts=counts/M/N;stem(x,counts,'.');hold on;plot([T,T],[0,0.03],'r');%直方图阈值分界线str=num2str(T);text(T,0.01,'阈值分割线');text(T,0.015,str);title('原图直方图');四.结果分析从图2原图像直方图中可以看出,选择初始阈值时可以选择两峰值之间的谷底作为阈值,经过迭代计算后,可以得出最终阈值。

阈值迭代法

阈值迭代法

阈值迭代法
阈值迭代法是一种计算机算法,常用于图像处理、模式识别等领域。

它的基本思想是根据给定的阈值对图像进行二值化处理,不断调整阈值,直到满足预定的条件为止。

具体来说,阈值迭代法首先选择一个初始阈值,然后将图像中的所有像素根据该阈值进行二值化。

接下来,统计出两个像素类别的均值,即黑色像素的平均灰度值和白色像素的平均灰度值。

如果这两个均值之间的差距小于一个预定的容差值,则认为当前阈值已经满足要求,处理结束。

否则,将阈值调整为两个均值的平均值,继续进行二值化处理。

阈值迭代法的优点是可以自动确定最佳阈值,避免了手动调整的繁琐过程。

同时,它也可以处理复杂图像,比如有噪点、亮度不均等情况下的二值化。

然而,阈值迭代法也有一些缺点。

首先,它对于阈值的初始选择比较敏感,随意选择可能会导致结果不稳定。

其次,由于它只考虑了两种像素类别,因此在处理复杂图像时可能会出现误差。

- 1 -。

迭代阈值法

迭代阈值法

摘要数字图像处理的目的之一是图像识别, 而图像分割是图像识别工作的基础。

图像分割是指把图像分解成具有特性的区域并提取出感兴趣目标的技术和过程,是计算机视觉领域的一个重要而且基本的问题,分割结果的好坏将直接影响到视觉系统的性能。

因此从原理,应用和应用效果的评估上深入研究图像分割技术具有十分重要的意义。

本课题主要介绍了图像分割的基本知识。

图像分割的算法有阈值分割法,边缘检测法,区域分割等,本设计重点介绍了基于最小点阈值方法,基于最优阈值分割方法,基于迭代图像分割方法,最大类间方差法(OTSU)的图像分割法的原理和他们的MATLAB的实现代码与运行结果。

关键词:图像分割; MATLAB;阈值分割;目录1 课程设计目的 (3)2 课程设计要求 (3)3 相关知识 (3)3。

1 图像分割的概述 (3)3.2 阈值分割的基本原理 (4)3。

3 阈值分割方法的分类 (5)3.3.1 基于点的全局阈值方法 (6)3.3。

2 基于区域的全局阈值方法 (6)3.3。

3 局部阈值法和多阈值法 (6)4 程设计分析 (6)4。

1 基于迭代的方法实现图像切割 (6)4.2 最大类间方差的方法实现图像切割 (7)5 程序设计 (8)5。

1 程序简单介绍 (8)5。

2 程序代码 (8)6 结果与分析 (11)结束语 (12)参考文献 (13)迭代阈值法1 课程设计目的本设计的课题任务是掌握图像阈值分割算法研究,实现对图像的分割。

了解图像分割的应用及基本方法,理解阈值化图像分割原理,理解三类典型的阈值化分割算法,并利用之进行图像分割,给出实验结果并做出分析.2 课程设计要求⑴查阅相关资料;⑵理解基于各像素值的阈值分割算法,基于区域性质的阈值分割算法, 基于坐标位置的阈值分割算;软件编程实现利用基于各像素值的阈值分割算法进行图像分割,要求完成如下内容:包括极小值点阈值、最优阈值、迭代阈值,基于最大方差的阈值,基于最大熵的阈值等方法,利用之实现图像分割,这里的图像可以针对核磁共振图像⑶用MATLAB实现,并观察各算法之间的区别。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

成绩评定表课程设计任务书摘要数字图像处理的目的之一是图像识别,而图像分割是图像识别工作的基础。

图像分割是从图像预处理到图像识别和分析、理解的关键步骤,在数字图像处理中占据重要的位置。

图像分割的目的是将图像分成一些有意义的区域并对这些区域进行描述。

图像分割的方法主要有点相关分割、区域相关分割、阈值法、界限检测法、匹配法、跟踪法等。

本设计主要采用阈值分割法中的迭代阈值法,利用MATLAB 软件中的图像处理函数将图像导入,然后对图像进行灰度变换,通过迭代法求图像最佳分割阈值,根据该阈值对图像进行分割,从而产生二值化后的图像。

仿真结果表明,通过迭代法选取的阈值是比较准确的,可以采用此阈值对图像进行分割。

关键词:图像分割;迭代阈值法;MATLAB目录1设计目的与要求 (1)1.1设计目的 (1)1.2设计要求 (1)2设计原理 (1)2.1图像分割 (1)2.2基于阈值的分割 (2)2.3迭代阈值法 (2)3设计方案 (3)3.1设计思想 (3)3.2设计流程 (3)4软件实现 (4)5仿真与结果分析 (5)5.1仿真 (5)5.2结果分析 (7)结论 (8)参考文献 (9)基于最大类间方差法图像分割程序设计—迭代阈值法1设计目的与要求1.1设计目的(1)利用MATLAB软件编写程序实现图像分割。

(2)查阅相关资料并整理分析,掌握迭代阈值法的主要原理。

(3)利用迭代阈值法选择最优阈值,并对图像进行二值化。

1.2设计要求(1)熟练掌握MATLAB软件的基本操作。

(2)了解MATLAB软件的程序编程。

(3)对所学知识仔细梳理,掌握迭代阈值法的主要思路。

(4)培养独立分析和解决问题的能力,学会撰写课程设计的总结报告。

(5)善于总结和改进方案,提高方案可实施性和高效性。

2设计原理2.1图像分割图像分割是从图像预处理到图像识别和分析、理解的关键步骤,图像分割和分割的目标表达、特征提取和参数测量等将原始图像转化为数学表达形式,使得利用计算机进行图像分析和理解成为可能,在图像处理中占据重要的位置。

图像分割的目的是将图像分成一些有意义的区域, 然后对这些区域进行描述, 相当于提取出某些目标区域图像的特征, 判断图像中是否有感兴趣的目标。

图像分割的依据建立在图像上像素间的“相似性”和“不连续性”两个基本概念之上【1】。

所谓“相似性”是指在某个区域内像素具有某种相似的特性, 如灰度、纹理相同;所谓“不连续性”是指特性不连续, 如灰度值发生突变。

从总体上来说, 图像分割就是把图像分成若干个有意义区域的处理技术【2】。

这些区域互不交叠, 每一个区域内部的某种特性或特征相同或接近, 而不同区域间的图像特征则有明显差别。

2.2基于阈值的分割阈值分割法是一种基于图像的分割技术。

其基本原理是通过设定不同的特征阈值,把图像像素分为若干类。

常用的特征包括直接来自原始图像的灰度或彩色特征、由原始图像或彩色值变换得到的特征【3】。

它主要是利用图像中要提取的目标物体和背景在灰度上的差异, 选择一个合适的阈值, 通过判断图像中的每一个像素点的特征属性是否满足阈值的要求来确定图像中该像素点属于目标区还是应该属于背景区域, 从而产生二值图像【4】。

它计算简单, 而且总能用封闭而且连通的边界定义不交叠的区域。

2.3迭代阈值法迭代法是采用基于逼近的思想,利用程序自动搜寻出比较合适的阈值。

假设有一幅图像),(y x f ,),(j i Z 是图像上),(j i 点的灰度值,),(j i N 是),(j i 点的权重系数,),(j i N 取),(j i 点灰度的概率【5】。

迭代算法步骤如下:步骤1:求出图像中的最小和最大灰度值min Z 和m ax Z 的阈值初值。

)(21min max 0Z Z T += (2.1)步骤2:根据阈值k T 将图像分割成目标和背景两部分,求出两部分的平均灰度值0Z 和B Z 。

∑∑<<⨯=T j i z T j i z j i N j i N j i z Z k ),(),(0),(),(),( (2.2)∑∑<>⨯=T j i z T j i z B j i N j i N j i z Z k ),(),(),(),(),( (2.3)步骤3:求出新阈值1+k T 。

201B k Z Z T +=+ (2.4)步骤4:若k T =1+k T ,则结束;否则,1+=k k ,转到步骤2。

步骤5:第4步结束后,k T 为最佳阈值。

3设计方案3.1设计思想在使用阈值法进行分割技术时, 阈值的选取成为能否正确分割的关键。

给定一幅图像,仅凭人眼主观上的感觉是很难找到合适的阈值点的,但利用阈值分割算法可以对图像进行准确、有效的分割。

迭代法是目前应用比较多的阈值选取方法【6】。

迭代阈值选取方法首先选取图像的灰度范围的中值作为初始值,把图像中的全部像素分成前景、背景两大类,然后分别对其进行积分并将结果取平均以获取一新的阈值,并按此阈值将图像分成前景、背景。

如此反复迭代下去,当阈值不再变化,即迭代已经收敛于某个稳定的阈值时,此刻的阈值即作为最终的结果并用于对图像的分割【7】。

3.2设计流程在进行具体的程序设计时,由于阈值的迭代运算是以图像的灰度统计作为基础的,因此需首先获取图像的灰度统计分布情况。

该情况执行完后将存放有灰度分布的数组作为参数传递给迭代阈值函数,并通过迭代的方式计算出最终阈值。

函数的后半部分利用此阈值进行图像分割,并最终显示分割结果。

迭代阈值法进行图像分割流程如图3.1所示。

图3.1迭代法进行图像分割流程图4软件实现图像处理工具箱是MATLAB环境下开发的许多工具箱之一,它以数字图像处理理论为基础,用MATLAB语言构造出一系列用于图像数据显示与处理的M 函数【8】。

应用迭代阈值法进行图像分割时用到的主要函数如下:(1)使用imread()函数读入图像,并用rgb2gray()函数转换成灰度图像,其核心代码如下:A=imread('filename.jpg');B=rgb2gray(A);(2)对阈值进行初始化,初始值设置为false,其核心代码如下:T=0.5*(double(min(B(:)))+double(max(B(:))));d=false;(3)编写程序通过迭代求最佳阈值,并显示在MATLAB主窗口,其核心代码如下:while~dg=B>=T;Tn=0.5*(mean(B(g))+mean(B(~g)));d=abs(T-Tn)<0.5;T=Tn;enddisp(strcat('迭代后的最佳阈值为:',num2str(T)));(4)使用im2bw()函数【9】设定阈值将灰度图像转换为二值图像,其核心代码如下:level=Tn/255;BW=im2bw(B,level);(5)使用subplot()函数生成与控制多个坐标轴,把当前图形窗口分隔成几个矩形部分。

第一部分用于显示原始图像;第二部分用于显示灰度图像;第三部分用于显示二值图像。

同时使用imshow函数【10】显示图像分割结果。

其核心代码如下:subplot(131),imshow(A);title('原始图像');subplot(132),imshow(B);title('灰度图像');subplot(133),imshow(BW);title('迭代阈值法分割图像');5仿真与结果分析5.1仿真(1)将程序文件名保存为main.m,MATLAB主窗口运行结果见图5.1所示。

图5.1迭代后的阈值结果由图5.1可知,经过迭代后选取的最佳阈值是119.4468。

(2)将输入的如图5.2所示的原始百合花图像使用rgb2gray( )灰度转换函数通过灰度转换后,得到如图5.3所示的灰度图像,然后经过迭代法选择最佳阈值,再使用im2bw( )函数对图像进行二值化,得到了如图5.4所示的二值化后的图像。

图5.2输入的原始图像图5.3灰度图像图5.4迭代阈值分割图像结果图由图5.3可知,将输入的如图5.1所示的带有鲜明色彩的百合花图像经过灰度变换后,图像中只有黑、白、灰三种颜色。

由图5.4可知,迭代阈值分割后的图像中只有黑、白两种色彩,其中明亮的花瓣部分就是目标区域,灰暗的部分就是背景区域。

二值化后的图像更加明显地反映出图像中场景之间的联系。

5.2结果分析基于仿真的结果分析如下:(1)迭代法是基于逼近的思想,迭代运算是将每次基于阈值获得的两部分灰度值的均值之差是否小于预先设定的极限,若不小于,则继续迭代;否则迭代停止,输出最佳阈值。

(2)将输入的原始图像通过灰度转换,得到灰度图像后,经过迭代选取最佳阈值,用此阈值分割图像得到二值化图像。

也就是将原图像分为了前景和背景,并用两种黑白颜色显现出来,其中亮的部分就是前景,暗的部分就是背景,用这种迭代阈值分割图像可以将图像中感兴趣的部分提取出来。

结论图像分割是由图像处理转到图像分析的关键。

基于灰度的阈值分割法具有计算简单、实现容易的特点,对目标和背景对比度反差较大的图像进行分割比较有效。

本文所设计的迭代阈值法进行图像分割程序设计所取得的成果如下:(1)图像分割(二值化)就是设定一个阈值T,用T经图像的数据分成两大部分:大于T的像素群和小于T的像素群。

将图像上的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白效果的视觉效果;(2)迭代法进行阈值选取就是先将输入的原始图像使用rgb2gray函数将转换成灰度图像,并从中选取一个最大的灰度值和一个最小的灰度值,进行取中值处理,并将此阈值设置为初值。

用此阈值把图像中的全部像素分成前景、背景两大类,然后分别对两部分取平均以获取一新的阈值,并按此阈值将图像分成前景、背景。

如此反复迭代下去,当新的阈值与原来的阈值之差的绝对值小于预先设定的一个极限,此时的阈值即为最佳阈值目前,本设计所采用的迭代阈值分割方法仍存在一些不足。

如对于直方图双峰不明显,或图像目标和背景比列差异悬殊,迭代法所选取的阈值并不理想,此时可以使用灰度直方图法进行阈值选取。

阈值分割法中阈值的确定主要依赖灰度直方图,而很少考虑图像中像素的空间位置关系,因此当背景复杂,容易丧失边界信息,此时可用基于区域的分割方法进行阈值选取。

参考文献[1] 刘刚. MATLAB数字图像处理[M].北京:机械工业出版社.2010:34-45.[2] 王家文.MATLAB 6.5 图形图像处理[M].上海:国防工业出版社.2009:6-14.[3] 王晓丹.MATLAB系统分析[M].西安:西安电子科技大学出版2000:168-220.[4] 余成波. MATLAB实现[M].重庆:重庆大学出社.2003:34-54.[5] 郝文化.MATLAB图像处理[M].河北:中国水利水电出版社. 2004:66-78.[6] 苏金明. MATLAB图形图像[M].四川:成都电子工业出版社. 2005:87-90.[7] 杨志刚等.现代通信原理[M].清华大学出版社,2008: 66-89.[8] 哲学.精通MATLAB[M].电子工业出版社,2008: 2-8.[9] 李圣勤. MATLAB7.0实用教程[M].机器工业出版社,2006: 90-118.[10] 高飞.MATLAB图像处理375例[M].人民邮电出版社,2015:113-141.。

相关文档
最新文档