二值化 二值化演算法之宇智波鼬

2021-10-14 20:36:41 字數 2051 閱讀 9529

數字影象個人學習筆記:簡單二值化,純粹個人理解,**或者論述如有錯誤請幫我指出!!!

影象的深度如果是8bit,也就是能儲存0-255種不同數值,這就是常見的jpg格式的位數,也就是灰度級別。0表示黑色,255表示白色,值越大越亮。

影象有rgb三個通道,rgb三個通道的取值都在0-255之間,根據色彩原理可以顯示出各種顏色。

下面就是一張常見的三通道:

圖1:宇智波鼬

毫無疑問,帥!!!!!!

言歸正傳,二值化演算法就是設定乙個「閾值」!假設的長寬分別是256和128(灰度圖),那麼這個一共就是256x128=32768個畫素點。現在,對每個畫素點進行判別,如果這個畫素點的值大於「閾值」,就把這個畫素值重新賦值為255,也就是白色;如果這個畫素點的值小於「閾值」,那麼就把這個畫素點賦值為0,也就是黑色。

生命苦短,show me code!

上面包含了兩個函式,乙個是rgb2gray()用來將彩色影象轉為灰度影象,乙個是thre_bin(),也就是二值化函式。二值化函式的核心就是雙層迴圈,對每個畫素點進行判斷並重新賦值,得到了下面的圖:

圖2:二值化前後對比

這裡threshold也就是閾值的選擇是170,這樣**這種比較亮的地方就被賦值為255,比較暗的背景和衣服就被賦值為0。換乙個threshold=200試一下:

圖3:閾值為200對比

所以,這個演算法的引數就是閾值的選擇。這僅僅是最簡單的二值化演算法,後續會補充其它二值化方法。

區域性二值化 Sauvola二值化演算法

借鑑 原理 分塊處理,根據當前塊內的均值,方差等資訊得出區域性閾值 但擔心有突變,分塊不好怎麼辦呢?sauvola是一種考慮區域性均值亮度的影象二值化方法,以區域性均值為基準在根據標準差做些微調.演算法實現上一般用積分圖方法來實現的.步驟1 計算區域畫素積分和和積分平方和 步驟2 計算標準差,標準差...

Bernsen二值化演算法

clc clear all close all m 3 3 3的鄰域視窗 n 3 for iter 1 156 iter img imread e pictest num2str iter jpg 讀取 m,n,s size img 讀取 i gray rgb2gray img t zeros m,...

大津二值化演算法(Ostu二值化演算法)及其改進演算法

使用大津演算法來二值化影象!大津演算法,也被稱作最大類間方差法,是一種可以自動確定二值化中閾值的演算法,從類內方差和類間方差的比值計算得來 也就是說 類內方差 sw 2 w0 s0 2 w1 s1 2 類間方差 sb 2 w0 m0 mt 2 w1 m1 mt 2 w0 w1 m0 m1 2 影象所...