• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Otsu算法的圖像閥值自動選取算法研究與應(yīng)用

      2015-01-16 05:27:02任曉娜
      電子設(shè)計(jì)工程 2015年11期
      關(guān)鍵詞:類間閥值方差

      任曉娜

      (河南工業(yè)職業(yè)技術(shù)學(xué)院 網(wǎng)絡(luò)中心,河南 南陽 473000)

      隨著社會的發(fā)展,我國大部分城市都出現(xiàn)了或多或少的交通問題,如何利用計(jì)算機(jī)實(shí)現(xiàn)智能交通系統(tǒng)成為社會的實(shí)際需求,汽車作為智能交通系統(tǒng)的主體,在行駛過程中對其進(jìn)行檢測和分類識別顯得非常重要。文中選取圖像分割算法中的Otsu算法進(jìn)行研究分析,并將其應(yīng)用到運(yùn)動物體檢測和跟蹤的工程實(shí)踐中。主要工作有:對現(xiàn)有的圖像分割算法進(jìn)行闡述,重點(diǎn)對Otsu分割算法進(jìn)行數(shù)學(xué)模型分析,給出該算法的設(shè)計(jì)流程和C++代碼。最后將算法應(yīng)用到車輛目標(biāo)檢測項(xiàng)目中,通過讀取視頻幀,作幀差,Otsu分割,形態(tài)學(xué)處理,連通分量分析,檢測目標(biāo),該系統(tǒng)實(shí)現(xiàn)了跟蹤汽車運(yùn)動目標(biāo)。實(shí)驗(yàn)結(jié)果表明,該方法可以快速有效地跟蹤運(yùn)動汽車,滿足工程應(yīng)用的需要。

      1 相關(guān)技術(shù)

      1.1 圖像分割技術(shù)概述

      圖像分割就是目標(biāo)和背景進(jìn)行分離的過程,通過圖像分割,可以對感興趣的目標(biāo)進(jìn)行一步的處理,在圖像處理領(lǐng)域中起到中間橋梁作用。目前傳統(tǒng)分割方法主要幾類:閾值分割、區(qū)域分割、邊緣分割以及特定理論分割等[1]。隨著研究的深入,學(xué)者們不斷改進(jìn)原有的圖像分割方法并把其它學(xué)科的一些新理論和新方法用于圖像分割,提出了不少新的分割方法。圖像分割后提取出的目標(biāo)可以用于交通安全、圖像搜索、地質(zhì)勘探以及醫(yī)學(xué)等領(lǐng)域[2]。

      1.2 閥值分割

      閥值分割算法是一種最常用的并行區(qū)域技術(shù),它是圖像分割中應(yīng)用數(shù)量最多的一類。其關(guān)鍵問題是如何確定閾值,只要能確定一個(gè)合適的閾值,就可以較好的將圖像分割開來。閥值分割的有點(diǎn)是算法的時(shí)間復(fù)雜度和空間復(fù)雜度較好,算法易于實(shí)現(xiàn),因此有著效率高、速度快的美譽(yù)。至今,人們已經(jīng)發(fā)明多種閥值分割算法,諸如全局閥值、自適應(yīng)閥值、最佳閥值等等[3]。

      1.3 區(qū)域分割

      區(qū)域生長是一種典型的區(qū)域分割技術(shù),其中心思想就是將某些具有相似特征的像素點(diǎn)集合起來構(gòu)成一塊區(qū)域[4]。在具體實(shí)現(xiàn)過程中,首先找一個(gè)生長的起點(diǎn),就是從每個(gè)要分割的區(qū)域中找一個(gè)像素,稱為種子像素;然后在該像素周圍像素中,尋找相同或相似的像素,然后與種子像素進(jìn)行合并,得到新的像素區(qū)域;此后將新的像素作為新的起點(diǎn),重復(fù)之前的步驟,直到?jīng)]有新的像素點(diǎn)可以加進(jìn)來為止。區(qū)域生長法計(jì)算簡單,對于連通性好的目標(biāo),具有較好的分割效果。缺點(diǎn)是需要人的干預(yù)來確定種子像素,同時(shí)它也對噪聲敏感,可能導(dǎo)致區(qū)域內(nèi)有空洞。另外,它是一種串行算法,當(dāng)目標(biāo)較大時(shí)分割速度較慢。

      1.4 邊緣分割

      邊緣分割算法的中心思想是通過檢測圖像中灰度級或者結(jié)構(gòu)發(fā)生突變的地方,來界定目標(biāo)與背景的分界線。通常背景和目標(biāo)在分界出會有比較明顯的灰度變化,利用此特征,就可以提取出感興趣的目標(biāo)。在數(shù)學(xué)分模型析上,通常利用微分算子進(jìn)行處理,如 Roberts算子和Sobel算子,Laplace算子和Kirsh算子等[5]。這些算子對噪聲敏感,因此只適合于噪聲較小且不太復(fù)雜的圖像。

      2 Otsu閥值分割算法

      常用的閥值分割方法有:手動人工選擇法,自動閾值選擇法,分水嶺算法等。其中自動閥值選擇法中,常用的方法有:迭代式閥值選擇法,類間方差閥值分割法(Otsu),最小誤差閥值選擇法。本文選擇了類間方差閥值分割法作為研究的算法,其具有諸多優(yōu)點(diǎn)和可實(shí)現(xiàn)性、成熟性[2]。

      2.1 Otsu閥值分割算法概述

      Otsu閥值分割法的理論基礎(chǔ)是基于二元統(tǒng)計(jì)分析得到的,其中心思想是選取的最佳閾值應(yīng)當(dāng)盡可能的使圖像分割產(chǎn)生的區(qū)域類內(nèi)方差最小,類間方差最大。具有性能穩(wěn)定、分割效果好的優(yōu)勢[6]。本文就是對類間方差法進(jìn)行研究和實(shí)現(xiàn),具體內(nèi)容將在下文中詳細(xì)介紹。與傳統(tǒng)的直方圖不同,Otsu閾值分割利用直方圖統(tǒng)計(jì)來進(jìn)行分割,即使用混合集概率密度函數(shù)估計(jì)來代替圖像的灰度值,它默認(rèn)圖像中的每個(gè)像素點(diǎn)在灰度上都是滿足獨(dú)立同分布的,通過分析圖像的概率密度,達(dá)到圖像的分布誤差盡可能小,實(shí)現(xiàn)對圖像的有效分割。

      2.2 Otsu閥值分割算法原理

      Otsu分割法是一種常用的閥值選取方法,該方法利用類間方差最大自動確定閥值,算法簡單、處理速度快。一維Otsu算法的中心思想是:假設(shè)要分割的圖像中具有N個(gè)像素點(diǎn),像素灰度級為L(L一般為256),在圖像中灰度級為i的所有像素點(diǎn)的個(gè)數(shù)為ni,則圖像中灰度級為i的像素點(diǎn)的個(gè)數(shù)占整幅圖像中的概率為:

      其中所有灰度級出現(xiàn)的概率和應(yīng)當(dāng)為1,即

      圖像分割的目的是將目標(biāo)和背景相分離,因此在計(jì)算的時(shí)候,也把圖像分成兩個(gè)部分:C0和C1,其中C0表示背景區(qū)域,C1表示目標(biāo)區(qū)域。假定圖像的分割閾值為k,則此法圖像的灰度均值為:

      C0和C1的均值分別為:

      其中:

      綜上可得:

      類間方差定義為:

      算法讓k在整個(gè)圖像的灰度級范圍內(nèi)依次取值,然后計(jì)算相對應(yīng)的當(dāng)最大時(shí)對應(yīng)的k值即為 Otsu算法的最佳閥值。通過以上公式不難看出,該算法公式簡單,且易于實(shí)現(xiàn)。

      3 Otsu閥值分割算法C++實(shí)現(xiàn)思想

      考慮圖像閥值選擇算法的理論性和不易檢測性,作者將其應(yīng)用到具體的實(shí)際領(lǐng)域中取檢驗(yàn)其效果,該方法能夠有效檢驗(yàn)算法的準(zhǔn)確性和實(shí)際可操作性,同時(shí)也是一個(gè)可供借鑒的算法測試方法,理論的研究最終需要應(yīng)用到實(shí)際的應(yīng)用中才能發(fā)揮其應(yīng)有的作用。因此,文章選擇以運(yùn)動目標(biāo)檢測方向?yàn)榍腥朦c(diǎn),以汽車目標(biāo)檢測為項(xiàng)目背景,將Otsu閥值分算法作為其中的子模塊,來檢驗(yàn)算法的實(shí)際效果。

      基于之前的Otsu理論分析,本節(jié)利用Opencv基礎(chǔ)庫,給出了Otsu算法的C++程序設(shè)計(jì)機(jī)制。其算法流程如圖1所示。

      程序開始,對圖像進(jìn)行直方圖統(tǒng)計(jì),得出二維灰度圖像中各個(gè)灰度級在整個(gè)灰度圖像中出現(xiàn)的概率。接著計(jì)算灰度圖像的概率密度,得出累計(jì)分布。由之前公式定義,我們得出類間方差,進(jìn)而計(jì)算出類間方差的最大值,也就是我們想要的閥值,至此,程序流程運(yùn)行分析完畢。

      具體代碼如下:

      int otsuThresh(const cv::Mat&gray)

      {

      圖1 Otsu算法流程圖Fig.1 Flow chart of Otsu algorithm

      int i,j;

      const int numBins=256;

      double counts[numBins];

      memset(counts,0,sizeof(double)*numBins);

      for(i=0;i

      {

      const uchar*ptr=gray.ptr(i);

      for(j=0;j

      counts[ptr[j]]++;

      }

      double p[numBins];

      double sumT=gray.rows*gray.cols;

      for(i=0;i

      p[i]=counts[i]/sumT;

      double omega[numBins];

      double mu[numBins];

      omega[0]=p[0];

      mu[0]=p[0]*1;

      for(i=1;i

      {

      omega[i]=omega[i-1]+p[i];

      mu[i]=mu[i-1]+p[i]*(i+1);

      }

      double mu_t=mu[numBins-1];

      double sigma_b_squared[numBins];

      for(i=0;i

      {

      double tmp=mu_t*omega[i]- mu[i];

      double tmp2=omega[i]*(1-omega[i]);

      if(tmp2==0)

      sigma_b_squared[i]=-1;

      else

      sigma_b_squared[i]=(tmp*tmp)/tmp2;

      }

      double maxVal=sigma_b_squared[0];

      for(i=1;i

      if(sigma_b_squared[i]>maxVal)

      maxVal=sigma_b_squared[i];

      if(maxVal==-1)

      return 0;

      else

      {

      j=0;

      sumT=0;

      for(i=0;i

      if(sigma_b_squared[i]==maxVal)

      {

      sumT+=(i+1);

      j++;

      }

      int idx=(int)floor((sumT/j+0.5));

      return (idx-1);

      } }

      4 系統(tǒng)測試與總結(jié)

      4.1 測試環(huán)境搭建

      在本系統(tǒng)中,編程環(huán)境選用Opencv2.4.8和微軟VS2010編譯器。Opencv2.4.8是一種開源的用于圖像處理和計(jì)算機(jī)視覺的函數(shù)庫,由Intel公司使用C++高級語言開發(fā),其可以應(yīng)用到諸多圖像處理領(lǐng)域,如人機(jī)互動、物體識別、圖象分割、人臉識別、動作識別、運(yùn)動跟蹤、機(jī)器人、運(yùn)動分析、機(jī)器視覺、結(jié)構(gòu)分析、汽車安全駕駛等領(lǐng)域。VS2010是微軟公司開發(fā)的編程工具,支持最新的C++標(biāo)準(zhǔn)。操作系統(tǒng)我們選用win7 32位系統(tǒng)。

      4.2 系統(tǒng)測試

      為了驗(yàn)證算法在工程應(yīng)用方面的性能,將其應(yīng)用到了車輛目標(biāo)檢測的具體項(xiàng)目中,采用一段交通視頻來驗(yàn)證提出的模型,圖2是實(shí)驗(yàn)的最后結(jié)果,其中左圖是原始圖像,右圖是檢測和跟蹤結(jié)果,檢測方框可隨著目標(biāo)的大小而改變。由實(shí)驗(yàn)結(jié)果可以看出,該算法具有較好的工程實(shí)用性。

      圖2 系統(tǒng)測試結(jié)果Fig.2 The result of the system test

      5 結(jié)束語

      文中主要對圖像分割算法Otsu[7]進(jìn)行了原理分析說明,給出了數(shù)學(xué)模型和C++程序設(shè)計(jì)機(jī)制,將其應(yīng)用到汽車車輛目標(biāo)檢測系統(tǒng)中,并在編譯器環(huán)境下進(jìn)行了測試,結(jié)果表明,該方法在運(yùn)動物體的檢測系統(tǒng)中,快速有效,能夠滿足實(shí)時(shí)跟蹤的目的,具有較強(qiáng)的工程實(shí)踐意義。

      [1]孫鳳杰,王鶴,范杰清.基于遺傳算法的圖像閾值分割研究[J].電力系統(tǒng)通信,2008,29(193):35-38.SUN Feng-jie,WANG He,F(xiàn)AN Jie-qing.Study on image threshold segmentation based on genetic algorithm[J].Telecommunication for Electric Power System,2008,29(193):35-38.

      [2]楊帆,廖慶敏.基于圖論的圖像分割算法的分析與研究[J].電視技術(shù),2006(7):80-83.YANG Fan,LIAO Qing-fan.Analysis and research of graphbased segmentation method[J].Video Engineering,2006(7):80-83.

      [3]韓思奇,王蕾.圖像分割的閾值法綜述[J].系統(tǒng)工程與電子技術(shù),2002,6(4):91-102.HAN Si-qi,WANG Lei.A survey of thresholding methods for image segmentation[J].Systems Engineering and Electronics,2002,6(4):91-102.

      [4]王鈞銘,高立鑫.GrabCut彩色圖像分割算法的研究[J].電視技術(shù).2008,6(32):15-17.WANG Jun-ming,GAO Li-xin.Research of GrabCu color image segmentation algorithm[J].Video Engineering, 2008,6(32):15-17.

      [5]梁艷梅,翟宏琛,常勝江,等.基于最大隸屬度原則的彩色圖像分割方法[J].物理學(xué)報(bào),2003,11(52):2655-2659.LIANG Yan-mei,ZHAI Hong-chen,CHANG Sheng-jiang,et al.Color image segmentation based on the principle of maximum degree of membership[J].ACTA Physica Sinica,2003,11(52):2655-2659.

      [6]劉金梅,趙春暉.組合均值平移和區(qū)域合并的圖像分割算法[J].哈爾濱工程大學(xué)學(xué)報(bào),2008,10(29):1126-1130.LIU Jin-mei,ZHAO Chun-hui.Image segmentation with mean shift and region merging methods[J].Journal of Harbin Engineering University,2008,10(29):1126-1130.

      [7]安健,張揚(yáng).基于Otsu和模糊核聚類算法的極化SAR圖像分類[J].電子科技,2014(2):42-45.AN Jian,ZHANG Yang.Polarization SAR image classification based on Otsu and fuzzy kernel clustering algorithm[J].Electronic Science and Technology,2014(2):42-45.

      猜你喜歡
      類間閥值方差
      方差怎么算
      概率與統(tǒng)計(jì)(2)——離散型隨機(jī)變量的期望與方差
      基于OTSU改進(jìn)的布匹檢測算法研究
      基于貝葉斯估計(jì)的多類間方差目標(biāo)提取*
      光敏傳感器控制方法及使用其的滅蚊器
      傳感器世界(2019年6期)2019-09-17 08:03:20
      計(jì)算方差用哪個(gè)公式
      基于類間相對均勻性的紙張表面缺陷檢測
      基于小波分析理論的橋梁監(jiān)測信號去噪研究
      激光多普勒測速系統(tǒng)自適應(yīng)閥值檢測算法
      方差生活秀
      平果县| 凤台县| 常州市| 雅安市| 铁力市| 涞水县| 垫江县| 溧阳市| 濮阳县| 新昌县| 济南市| 固始县| 尼玛县| 皮山县| 出国| 罗定市| 泰兴市| 正宁县| 岳阳县| 中阳县| 原阳县| 卢龙县| 桓台县| 晋宁县| 嘉善县| 中阳县| 洱源县| 得荣县| 双城市| 仁布县| 五指山市| 武城县| 阜宁县| 灌云县| 兰考县| 南岸区| 茌平县| 崇州市| 永泰县| 沁阳市| 阜新|