<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          二值化算法OTSU源碼解析

          共 1603字,需瀏覽 4分鐘

           ·

          2022-01-20 06:50

          點擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時間送達(dá)


          概述:


          本文中小編將會跟大家分享一下OpenCV3.1.0中圖像二值化算法OTSU的基本原理與源代碼解析,最終還通過幾行代碼演示了一下如何使用OTSU算法API實現(xiàn)圖像二值化。


          一:基本原理


          該方法是圖像二值化處理常見方法之一,在Matlab與OpenCV中均有實現(xiàn)。OTSU閾值方法是一種基于尋找合適閾值實現(xiàn)二值化的方法,其最重要的部分是尋找圖像二值化閾值,然后根據(jù)閾值將圖像分為前景(白色)或者背景(黑色)。假設(shè)有6x6的灰度圖像,其像素數(shù)據(jù)及其對應(yīng)的直方圖如下圖:


          閾值尋找方法首先假設(shè)是為T=3,則背景像素的比重、均值、方差的計算結(jié)果如下:



          然后使用上述計算結(jié)果,計算類內(nèi)方差:


          上述整個計算步驟與結(jié)果是假設(shè)閾值T=3時候的結(jié)果,同樣計算假設(shè)閾值為T=0、T=1、T=2、T=4、T=5的類內(nèi)方差,比較類內(nèi)方差之間的值,最小類內(nèi)方差使用的閾值T即為圖像二值化的閾值。


          ????? 上述是假設(shè)圖像灰度值級別為0~5六個值,實際中圖像灰度值取值范圍為0~255之間,所以要循環(huán)計算使用每個灰度值作為閾值,得到類內(nèi)方差,最終取最小類內(nèi)方差對應(yīng)的灰度值作為閾值實現(xiàn)圖像二值化即可。


          二:OpenCV實現(xiàn)源代碼解析


          OTSU的源代碼可以參見-modules/imgproc/src/thresh.cpp源文件接口,下面對其中關(guān)鍵部分做出說明如下:

          首先建立直方圖的代碼如下:


          尋找內(nèi)方差最小的閾值T的代碼實現(xiàn)如下


          上述代碼主要功能是實現(xiàn)閾值尋找,多數(shù)人看到OpenCV源代碼都會對OTSU的原理產(chǎn)生懷疑,明明是尋找最大值啊,原因是這樣,最小的內(nèi)方差值還等價于兩類數(shù)據(jù)的最大方差,公式如下:


          代碼計算總像素個數(shù)實現(xiàn)如下


          這樣對照一下公式立刻就會讀懂OpenCV中的源代碼了。


          三:使用


          使用OTSU算法實現(xiàn)圖像二值化,首先要把圖像從彩色圖像轉(zhuǎn)換為灰度圖像然后通過threshold函數(shù)指定二值化方法為THRESH_OTSU。具體的代碼調(diào)用演示如下:


          運行結(jié)果如下:


          上圖左邊輸入RGB圖像,右邊是基于OTSU產(chǎn)生的二值圖像。從OpenCV圖像二值化方法OTSU代碼實現(xiàn)我們可以看出OpenCV在算法編碼實現(xiàn)環(huán)節(jié)都是從簡潔計算入手,考慮效率優(yōu)先。非常值得我們學(xué)習(xí)。


          下載1:OpenCV-Contrib擴展模塊中文版教程
          在「小白學(xué)視覺」公眾號后臺回復(fù):擴展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實戰(zhàn)項目52講
          小白學(xué)視覺公眾號后臺回復(fù):Python視覺實戰(zhàn)項目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學(xué)視覺公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講,即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習(xí)進階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 37
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  香蕉性爱网 | 亚洲日韩AV无码专区影院 | 日韩欧美国产成人电影 | 精品国产第六区 | 国产级A片 |