灰度阈值分割算法.docx分享到一键分享QQ空间新浪微博百度云收藏人人网腾讯微博百度相册开心网腾讯朋友百度贴吧豆瓣网搜狐微博百度新首页QQ好友和讯微博更多…百度分享登录|注册窗体顶端窗体底端收藏成功确定收藏失败,请重新收藏确定窗体顶端标题|灰度图像阈值;标题不能为空网址,@逗目录视图三摘要视图回I丁阅有奖征资源,博文分享有内涵 人气博主的资源共享:老罗的Android之旅微软Azure*英雄会编程大赛题 关注CSDN社区微信,福利多多 社区问答:叶劲峰游戏引擎架构灰度图像阈值化分割常见方法总结及VC实现分类:图像处理OpenCV2011・ll・ll23:207427人阅读评论(14)收藏举报算法图形byte图像处理扩展目录⑺田Otsu法最大类间方差法一维交叉爛值法二维OTSU法参考文献在图像处理领域,二值图像运算量小,并且能够体现图像的关键特征,因此被广泛使用。将灰度图像变为二值图像的常用方法是选定阈值,然后将待处理图像的每个像素点进行单点处理,即将其灰度值与所设置的门限进行比对,从而得到二值化的黑白图。这样一种方式因为其直观性以及易于实现,己经在图像分割领域处于中心地位。本文主要对最近一段时间作者所学习的阈值化图像分割算法进行总结,全文描述了作者对每种算法的理解,。最终将源代码公开,希望大家一起进步。(本文的代码新时没有考虑执行效率问题)首先给出待分割的图像如下:1、Otsu法(最大类间方差法)该算法是日本人Otsu提出的一种动态阈值分割算法。它的主要思想是按照灰度特性将图像划分为背景和目标2部分,划分依据为选取门限值,使得背景和目标之间的方差最大。(背景和目标之间的类间方差越大,说明这两部分的差别越大,当部分目标被错划分为背景或部分背景错划分为目标都会导致这两部分差别变小。因此,使用类间方差最大的分割意味着错分概率最小。)这是该方法的主要思路。其主要的实现原理为如下:1)建立图像灰度直方图(共有L个灰度级,每个出现概率为p)2)计算背景和冃标的出现概率,计算方法如下:t £-1j-0 kf+l上式中假设t为所选定的阈值,A代表背景(灰度级为旷N),根据直方图中的元素可知,Pa为背景出现的概率,同理B为目标,Pb为目标出现的概率。3厂计算A和B两个区域的类间方差如下:%=PA®+PB%=\iPi1-0/=Px(◎-玛)2+Pb®一①尸第一个表达式分别计算A和B区域的平均灰度值;第二个表达式计算灰度图像全局的灰度平均值;第三个表达式计算A、B两个区域的类间方差。4)以上几个步骤计算出了单个灰度值上的类间方差,因此最佳分割门限值应该是图像中能够使得A与B的类间灰度方差最大的灰度值。在程序中需要对每个出现的灰度值据此进行寻优。本人的VC实现代码如下。[cpp]viewplaincopyprint?y****************************************************************4:**************\函数名称:OneDimentionOtsu()*\输入参数:pGrayMat:二值图像数据width: 图形尺寸宽度height: 图形尺寸高度nTIreshold:经过算法处理得到的二值化分割阈值*\返回值:*无*\函数说明:实现灰度图的二值化分割一一最大类间方差法(Otsu算法,俗称大津算法)voidCBinarizationDlg::OneDimentionOtsu(CvMat*pGrayMat,intwidth,intheight,BYTE&nThreshold){doublenHistogram[256];〃灰度直方图doubledVariance[256];〃类间方差intN=height*width; 〃总像素数for(inti=0;i<256;i++){nHistogram[i]=;dVariance[i]=;for(i=0;i<height;i++){for(intj=0;j<width;j++){unsignedcharnData=(unsignedchar)cvmGet(pGrayMat,i,j);nHistogram[nData]++;〃建立直方图}}doublePa=; 〃背景出现概率doublePb=;〃目标出现概率doubleWa=; 〃背景平均灰度值doubleWb=;〃目标平
灰度阈值分割算法 来自淘豆网m.daumloan.com转载请标明出处.