引入
一張圖像顯示在顯示屏上的時(shí)候,它斑斕多彩,輪廓分明(可你放的明明是張灰度圖!),而當(dāng)它被轉(zhuǎn)化到數(shù)字設(shè)備當(dāng)中的時(shí)候,我們看到的就將會(huì)是下面的情形:
是的,所有的色彩最后都會(huì)被變?yōu)橐粋€(gè)個(gè)數(shù)字,在0到255之間來回徘徊,在一個(gè)個(gè)矩陣中被圍困(突然詩意起來)。可以這樣說,矩陣就是圖像在數(shù)碼設(shè)備中的表現(xiàn)形式。而正是因?yàn)樗麄冇蛇@些數(shù)字組成,才給了我們機(jī)會(huì)去用數(shù)字的方法來支配他們。
對于一張圖片,我們往往不會(huì)對每一個(gè)地方都相同地感興趣,總有一些特殊東西才是我們的目標(biāo)。將目標(biāo)區(qū)域和不想要的背景區(qū)域區(qū)分開我們就可以對這些數(shù)字下手。下面我們就說道說道二值化的那些事兒~
二值化
說起二值化,我們可以先來看看二值圖像
二值圖像(Binary Image)是指圖像上的每一個(gè)像素只有兩種可能的取值或灰度等級狀態(tài)的圖像。通常來講就是我們常??匆姷摹胺呛诩窗住钡膱D像,也就是說,圖像像素的灰度值無論在什么數(shù)據(jù)類型中都只有最大值和最小值兩種取值。這種圖像色彩類型少,可以進(jìn)行高度的壓縮,利于節(jié)省儲(chǔ)存空間。
相應(yīng)的,二值化就是把非二值圖像經(jīng)過計(jì)算變成二值圖像。
在openCV4中有threshold()和adaptiveThreshold()可以來實(shí)現(xiàn)圖像的二值化。
那么下面就先來介紹前一種啦
輸入輸出的圖像以及閾值和最大值大家都應(yīng)該和好理解,那么什么是二值化方法的標(biāo)志參數(shù)呢?
下面的表中大致就是可能會(huì)用的的一些標(biāo)志參數(shù)和它們的含義:
下圖是前五種方法做二值化之后的信號(hào)示意圖:
如同標(biāo)志參數(shù)的作用介紹中說的,前五中標(biāo)志參數(shù)都需要人為地設(shè)定一個(gè)閾值,之后才能進(jìn)行二值化。人們進(jìn)行二值化的目的往往是為了把目標(biāo)物體和其他的東西分離開,形成圖像的分割,但是有的時(shí)候?yàn)榱朔謩e這兩者而設(shè)定的閾值往往不是那么簡單就可以分得出來的,或者說,在對原始圖像的灰度值分布不是那么了解的情況下是很難設(shè)定到自己想要的那種閾值的。
于是就有了下面的兩個(gè)標(biāo)志參數(shù)可以用來獲取閾值:THRESH_OTSU(大津法)THRESH_TRIANGLE(三角形法)
問
那么什么是大津法呢
百度百科教我的:大津法也就是最大類間方差法是由日本學(xué)者大津(Nobuyuki Otsu)于1979年提出的,是一種自適合于雙峰情況的自動(dòng)求取閾值的方法,簡稱OTSU。它是按圖像的灰度特性,將圖像分成背景和目標(biāo)兩部分。背景和目標(biāo)之間的類間方差越大,說明構(gòu)成圖像的兩部分的差別越大,當(dāng)部分目標(biāo)錯(cuò)分為背景或部分背景錯(cuò)分為目標(biāo)都會(huì)導(dǎo)致兩部分差別變小。因此,使類間方差最大的分割意味著錯(cuò)分概率最小。
這是某一張圖像的灰度直方圖,我們可以看到它其實(shí)很明顯地呈現(xiàn)出了適合利用大津法求閾值的雙峰情況(灰度大都集中在某兩個(gè)分離的區(qū)域之間),對某一假設(shè)的灰度值閾值將圖像的灰度值分成背景和目標(biāo)兩部分,計(jì)算兩組灰度值之間的類間方差,得到的方差值大致如圖中的紅色點(diǎn)所示。于是理所當(dāng)然的,方差最高點(diǎn)所對應(yīng)的灰度值正是我們能夠合理分開目標(biāo)和背景的閾值。
但是由于這兩種方法往往是基于全局閾值,當(dāng)圖像中有一部分過度曝光或者說有陰影遮擋時(shí),用這樣的閾值選取方法就會(huì)顯得有點(diǎn)不太好。
比如說,當(dāng)你晚上寫下一篇英語作文,想要拍照上傳給老師批改,而在上傳到某掃描王軟件時(shí),往往就會(huì)發(fā)生這樣的事情:
于是我們就理所當(dāng)然地想:有沒有可以讓這整張圖中的字母大多數(shù)都能看清的方法呢?
很高興,有的!
我們就要用到adaptiveThreshold(),它可以幫助我們得到局部自適應(yīng)的閾值。(當(dāng)然,先把圖像分割,再用全局函數(shù)也不失為一種方法,不過相對比來說還是直接用adaptiveThreshold()來得更加方便快捷。
adaptive_mean是均值法自適應(yīng)計(jì)算blockSize×blockSize鄰域內(nèi)的閾值,在這之后就可以進(jìn)行二值化了。
因?yàn)槭蔷植康拈撝?,所以就可以更加明確地在每一個(gè)地方都有比較好的區(qū)分,可以把大部分范圍內(nèi)的內(nèi)容都更好地分割開來。
編輯:jq
-
顯示屏
+關(guān)注
關(guān)注
28文章
4505瀏覽量
74619 -
二值圖像
+關(guān)注
關(guān)注
0文章
14瀏覽量
8753 -
OpenCV
+關(guān)注
關(guān)注
31文章
635瀏覽量
41491
原文標(biāo)題:科普 | 簡單圖像處理:用用二值化吧!
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論