<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      圖像二值化--閾值自動選取

       圖像分割是圖像處理這門學科中的基礎難題,基于閾值的分割則又是圖像分割的最基本的難題之一,其難點在于閾值的選取。事實證明,閾值的選擇的恰當與否對分割的效果起著決定性的作用。由于閾值選取對圖像分割的基礎性,本文主要在【1】、【2】、【3】、【4】等的基礎上,對一些當前流行的閾值選取算法做了探討、實現和比較。多閾值分割雖然能進一步提高圖像分割的質量,但由于它只是分割技巧的處理問題,而與單閾值分割并無本質的區別。因此本文并不對多閾值分割進行討論,而只考慮單閾值分割的情形。

      1.雙峰法
          雙峰法的原理及其簡單:它認為圖像由前景和背景組成,在灰度直方圖上,前后二景都形成高峰,在雙峰之間的最低谷處就是圖像的閾值所在。根據這一原理,我們給出了它的實現,部分代碼如下(Pascal語言描述,以下同):
      //intPeak、intPeak2、intValley:峰值和直方圖值
      //intIndx::相應的灰度值
      intPeak,intIndx,intPeak2,intIndx2,intValley,intValleyIndx:integer;
      //初始雙峰值
          intPeak:=0;
          intPeak2:=0;
      //取得第一峰值
          for intLoop:=0 to 255 do
            if intPeak<=intGrayLevel[intLoop] then
            begin
              intPeak:=intGrayLevel[intLoop];
              intIndx:=intLoop;
            end;
      //取得第二峰值
          for intLoop:=0 to 255 do
          Begin
            if (intPeak2<=intGrayLevel[intLoop]) and (intLoop<>intIndx) then
            begin
              intPeak2:=intGrayLevel[intLoop];
              intIndx2:=intLoop;
            end
          end;
      //取得雙峰之間的谷值
          intValley:=intSize;
          if intIndx2<intIndx then
            for intLoop:=intIndx2 to intIndx do
              if intValley>intGrayLevel[intLoop] then
              begin
                intValley:=intGrayLevel[intLoop];
                intValleyIndx:=intLoop;
              end;
      

      從分割的效果來看,當前后景的對比較為強烈時,分割效果較好;否則基本無效。

      2.迭代法
      迭代法是基于逼近的思想,其步驟如下:
      1.求出圖象的最大灰度值和最小灰度值,分別記為ZMAX和ZMIN,令初始閾值T0=(ZMAX+ZMIN)/2;
      2.根據閾值TK將圖象分割為前景和背景,分別求出兩者的平均灰度值ZO和ZB;
      3.求出新閾值TK+1=(ZO+ZB)/2;
      4.若TK=TK+1,則所得即為閾值;否則轉2,迭代計算。
      以下給出迭代求閾值的部分實現:

          //閾值初始為0
          intThresholdVal:=0;
                intThresholdVal2:=0;
            //總灰度值
            intTotalGrayLevel:=0;
            for intLoop:=0 to 255 do
              if intGrayLevel[intLoop]<>0 then
                intTotalGrayLevel:=intTotalGrayLevel+intLoop*intGrayLevel[intLoop];
            //求出初始最大灰度值
            for intLoop:=0 to 255 do
              if intGrayLevel[intLoop]>0 then
              begin
                intLGrayLevel:=intLoop;
                intThresholdVal:=intLoop;
                break;
              end;
            //求出初始最小灰度值和初始閾值
            for intLoop:=255 downto 0 do
              if intGrayLevel[intLoop]>0 then
              begin
                intRGrayLevel:=intLoop;
                intThresholdVal:=(intThresholdVal+intLoop)div 2;
                break;
              end;
            //迭代求解
            while intThresholdVal<>intThresholdVal2 do
              begin
                intThresholdVal2:=intThresholdVal;
                intCount:=0;
                intLGrayLevel:=0;
                for intLoop:=0 to intThresholdVal do
                  if intGrayLevel[intLoop]<>0 then
                  begin
                    intCount:=intCount+intGrayLevel[intLoop];
                    intLGrayLevel:=intLGrayLevel+intLoop*intGrayLevel[intLoop];
                  end;
                intRGrayLevel:=intTotalGrayLevel-intLGrayLevel;
                intLGrayLevel:=intLGrayLevel div intCount;
                intRGrayLevel:=intRGrayLevel div (intSize-intCount);
                intThresholdVal:=(intLGrayLevel+intRGrayLevel)div 2;
              end;

          迭代所得的閾值分割的圖象效果良好?;诘拈撝的軈^分出圖像的前景和背景的主要區域所在,但在圖像的細微處(圖中的淺色線條)還沒有很好的區分度。
          但令人驚訝的是,對某些特定圖象,微小數據的變化卻會引起分割效果的巨大改變,兩者的數據只是稍有變化,但分割效果卻反差極大,個中原因還有待進一步研究。

      3.大津法(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,根據方差的定義即得該式。因方差是灰度分布均勻性的一種度量,方差值越大,說明構成圖像的兩部分差別越大,當部分目標錯分為背景或部分背景錯分為目標都會導致兩部分差別變小,因此使類間方差最大的分割意味著錯分概率最小。
          直接應用大津法計算量較大,因此我們在實現時采用了等價的公式g=w0*w1*(u0-u1)2。該式即為類間方差定義,使用該式的原因還有一個原因就是保證無差,部分計算過程如下:

          //遍歷所有灰度值求Max g。
          for intCurrentLevel:=0 to intArrLen do
            begin
              if intSclGrayLevel[intCurrentLevel]=0 then
                continue
              else
                begin
                        //計算當閾值為intCurrentLevel時的g
                  intCount:=0;
                  intSumPels:=0;
                  for intLoop:=0 to intCurrentLevel do
                    begin
                      intCount:=intCount+intSclGrayLevel[intLoop];
                      intSumPels:=intSumPels+intSumPelsArr[intLoop];
                    end;
                  w0:=intCount/intSize;
                  u0:=intSumPels/intCount;
                  w1:=1-w0;
                  if intSize-intCount<>0 then
                    u1:=(intTotalPels-intSumPels)/(intSize-intCount)
                  else
                    u1:=0;
                  RlTempO:=w0*w1*(u0-u1)*(u0-u1);
                  if RlTempO>RlMaxO then
                  begin
                    RlMaxO:=RlTempO;
                    Result:=intCurrentLevel;
                  end;
                end;

          我們在測試中發現:大津法選取出來的閾值非常理想,對各種情況的表現都較為良好。雖然它在很多情況下都不是最佳的分割,但分割質量通常都有一定的保障,可以說是最穩定的分割。由上可知,大津算法是一種較為通用的分割算法。在它的思想的啟迪下,人們進一步提出了多種類似的評估閾值的算法,具體可參加【5】、【6】等。

      4.灰度拉伸-一種改進的大津法
          大津法得到了廣泛的應用,但有人發現,大津法致命的缺陷是當目標物與背景灰度差不明顯時,會出現無法忍受的大塊黑色區域,甚至會丟失整幅圖像的信息。為了解決這個問題,有人提出了灰度拉伸的增強大津法。這種方法的原理其實就是在大津法的基礎上通過增加灰度的級數來增強前后景的灰度差,從而解決問題。灰度增加的方法是用原有的灰度級乘上同一個系數,從而擴大灰度的級數,特別地,當乘上的系數為1時,這就是大津法的原型,因此,大津法可以看做是這種方法的一個特例。
          在實現中,我們實現了多種灰度拉伸,發現對不同的圖像,當遇上不同的拉伸系數時,分割效果也相差甚遠。

      5.Kirsh算子
          在【4】基礎上提出基于Kirsh算子的分割方法,其思想為:對數字圖像的每個像素i,考慮它的八個鄰點的灰度值,以其中三個相鄰點的加權和減去剩下五個鄰點的加權和得到差值,令三個鄰點繞該像素點不斷移位,取此八個差值的最大值作為Kirsh算子。即:設Si為三鄰點之和,Ti為五鄰點之和,則Kirsh算子定義為K(i)=max{1,max〔5Si-3Ti〕}如取閾值THk,則當K(i)>THk時,像素i為階躍邊緣點。此外,【4】的作者認為:假設圖像大小為H×W個像素點,其邊緣點像素一般不會超過5×H個?;谶@一假設,該文作者提出:(對一幅圖像)用Kirsh算法,取某一較低的初始閾值THk(以保證目標和背景間灰度變化很小的圖像邊緣也能被取出),對于每個像素點i計算其Kirsh算子,如果K(i)>THk,則i為邊緣點,邊緣點數N(初始值為0)加1,一旦邊緣點數超過5×H ,而i還小于整幅圖像的像素數,說明閾值取得太低,致使許多不是邊緣點的像素也被取出,因此需提高閾值。如此反復,即可獲得分割圖像所需的閾值。

          但在實現中,【4】中的敘述頗有值得探討之處,如在H×W圖像中,H和W之間的關系是完全對稱的,兩者之間如何抉擇?此外,在求Kirsh算子K(i)=max{1,max〔5Si-3Ti〕}時也頗有疑慮之處,由其求得的結果分割圖像效果并不明顯?;趯ΨQ性和歸一化的考慮,筆者把Kirsh算子改為:K(i)=max{1,max abs(5Si-3Ti) div 15 },并根據在實際運行中的效果,對W和H的選取為:if W>H then use 5*H else use 5*W。在實際應用中表明,修改后的分割質量顯著提高。但與【4】文中作者聲稱的效果及其示例相比,仍有相當的距離,特別是它不能解決前后景對比不強烈時的分割情形。但當前后背景對比十分強烈且集中時,Kirsh算子法卻會有十分突出的表現。
      ————————————————
      版權聲明:本文為CSDN博主「cp32212116」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
      原文鏈接:https://blog.csdn.net/cp32212116/article/details/44487913

      posted @ 2023-11-14 22:05  熊大熊二  閱讀(335)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品久久无中文字幕| 成人婷婷网色偷偷亚洲男人的天堂| 少妇被粗大的猛烈进出69影院一| 蜜臀av无码一区二区三区| 无码一区二区三区av在线播放| 精品视频在线观看免费观看| 国产亚洲精品自在久久vr| 2021国产精品视频网站| 婷婷综合缴情亚洲 | 新宁县| 精品国产熟女一区二区三区 | 狠狠爱俺也去去就色| 久久一级精品久熟女人妻| 四虎成人精品无码永久在线| 欧洲国产成人久久精品综合| 成人免费亚洲av在线| 亚洲一区二区三区黄色片| 亚洲精品在线少妇内射| 国产成人午夜福利在线播放| 欧美成人精品一级在线观看| 风韵丰满熟妇啪啪区老熟熟女| 国产香蕉97碰碰久久人人| 久久天天躁狠狠躁夜夜躁| 扒开双腿疯狂进出爽爽爽| 国产亚洲一区二区三区啪| 亚洲www永久成人网站| 真实国产老熟女无套内射| 国产偷窥熟女高潮精品视频| 蜜臀久久综合一本av| 少妇人妻偷人精品免费| 深夜宅男福利免费在线观看| 蜜臀av久久国产午夜| 97精品国产91久久久久久久| 在线观看中文字幕国产码| 午夜男女爽爽影院免费视频下载| 中文字幕有码日韩精品| 丰满无码人妻热妇无码区| 色狠狠一区二区三区香蕉| 国产精品制服丝袜第一页 | 国产成人综合在线观看不卡| 国产精品ⅴ无码大片在线看|