91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文搞懂圖像二值化算法

新機(jī)器視覺(jué) ? 來(lái)源:新機(jī)器視覺(jué) ? 作者:新機(jī)器視覺(jué) ? 2021-04-15 15:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

傳統(tǒng)的機(jī)器視覺(jué)通常包括兩個(gè)步驟:

預(yù)處理和物體檢測(cè)。而溝通二者的橋梁則是圖像分割(Image Segmentation)[1]。圖像分割通過(guò)簡(jiǎn)化或改變圖像的表示形式,使得圖像更易于分析。

舉個(gè)例子,食品加工廠(chǎng)新進(jìn)了一批肉雞,想通過(guò)視覺(jué)檢測(cè)其美味程度。機(jī)器在預(yù)處理優(yōu)化完圖像之后,要先把圖像中的雞肉和背景分開(kāi),并對(duì)感興趣的區(qū)域單獨(dú)進(jìn)行分析,才能做出快速準(zhǔn)確的判斷。

0cb27b9e-9cde-11eb-8b86-12bb97331649.gif

食品加工廠(chǎng)的視覺(jué)處理

然而,圖像分割對(duì)愚蠢的AI來(lái)說(shuō)并不容易。聰明的人類(lèi)一眼就能看出下圖中哪些東西能吃、哪些不能吃。但計(jì)算機(jī)要把這些東西分開(kāi)卻得花費(fèi)一番功夫。

原圖

0d36c156-9cde-11eb-8b86-12bb97331649.jpg

圖像分割結(jié)果

最簡(jiǎn)單的圖像分割方法是二值化(Binarization)。

圖像二值化( Image Binarization)就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255,也就是將整個(gè)圖像呈現(xiàn)出明顯的黑白效果的過(guò)程。二值圖像每個(gè)像素只有兩種取值:要么純黑,要么純白。

0d4c7ae6-9cde-11eb-8b86-12bb97331649.jpg

彩色圖、灰度圖、二值圖對(duì)比

由于二值圖像數(shù)據(jù)足夠簡(jiǎn)單,許多視覺(jué)算法都依賴(lài)二值圖像。通過(guò)二值圖像,能更好地分析物體的形狀和輪廓。二值圖像也常常用作原始圖像的掩模(又稱(chēng)遮罩、蒙版,Mask):它就像一張部分鏤空的紙,把我們不感興趣的區(qū)域遮掉。進(jìn)行二值化有多種方式,其中最常用的就是采用閾值法(Thresholding)進(jìn)行二值化。

計(jì)算機(jī)視覺(jué)里,一般用矩陣來(lái)表示圖像。也就是說(shuō),無(wú)論你的圖片看上去多么好吃,對(duì)計(jì)算機(jī)來(lái)說(shuō)都不過(guò)是個(gè)矩陣而已。

在這個(gè)矩陣?yán)?,每一個(gè)像素就是矩陣中的一個(gè)元素。在三通道的彩色圖像中,這個(gè)元素是由三個(gè)數(shù)字組成的元組。

0d9b303c-9cde-11eb-8b86-12bb97331649.gif

彩色三通道圖像

而對(duì)于單通道的灰度圖像來(lái)說(shuō),這個(gè)元素就是一個(gè)數(shù)字。這個(gè)數(shù)字代表了圖像在這個(gè)點(diǎn)的亮度,數(shù)字越大像素點(diǎn)也就越亮,在常見(jiàn)的八位單通道色彩空間中,0代表全黑,255代表全白。

0de20584-9cde-11eb-8b86-12bb97331649.gif

單通道的灰度圖

閾值法是指選取一個(gè)數(shù)字,大于它就視為全白,小于它就視為全黑。就像教室里的燈管開(kāi)關(guān),我們輕輕地推動(dòng)它,如果突然間超過(guò)了某個(gè)閾值,燈就啪的一聲亮了。

根據(jù)閾值選取方式的不同,可以分為全局閾值和局部閾值。

全局閾值,指的是對(duì)整個(gè)圖像中的每一個(gè)像素都選用相同的閾值。我們可以在Photoshop的圖像—調(diào)整—閾值里體驗(yàn)這一操作:

0e5d1684-9cde-11eb-8b86-12bb97331649.jpg

Photoshop里的閾值

可以看到閾值色階從1到255的移動(dòng)過(guò)程中,圖像變黑的區(qū)域越來(lái)越多。當(dāng)閾值數(shù)字在某個(gè)特定范圍內(nèi)的時(shí)候,紅米腸的輪廓清晰可辨。

0e6c9f5a-9cde-11eb-8b86-12bb97331649.gif

正確的二值化使紅米腸輪廓清晰可辨

在生產(chǎn)線(xiàn)環(huán)境下,光照是已知的,常常會(huì)設(shè)定一個(gè)固定的數(shù)字來(lái)作為全局閾值。但是在室外或者機(jī)器人比賽中,光照條件往往更加復(fù)雜。

同樣是奧利奧冰激凌,在白天和晚上,攝像頭看到的畫(huà)面可能不太一樣,常數(shù)閾值無(wú)法同時(shí)適應(yīng)這兩種情況。

0ec6a112-9cde-11eb-8b86-12bb97331649.jpg

明暗不同的畫(huà)面

對(duì)于畫(huà)面比較暗的晚上,我們需要一個(gè)比較低的閾值,比如說(shuō)設(shè)定閾值為50,它在晚上能很清楚地把黑白兩種顏色分開(kāi),但是到了白天就是一片白(左邊);如果我們把閾值設(shè)置得比較高,比如說(shuō)172,在白天能順利分割,但在晚上就是一片黑(右邊)。我們需要能夠適應(yīng)復(fù)雜環(huán)境的算法。

0f05d288-9cde-11eb-8b86-12bb97331649.jpg

左邊閾值=50,右邊閾值=172

其實(shí),稍作分析我們可以發(fā)現(xiàn),這張圖像中的顏色差異還是比較明顯的,只有深淺兩種顏色。因此,無(wú)論是在白天還是黑夜,它的色階直方圖都應(yīng)該是兩個(gè)明顯的波峰,分別代表深色和淺色的區(qū)域。只是色階直方圖在白天會(huì)整體向右偏移,而在夜晚整體向左偏移。

0f3ca178-9cde-11eb-8b86-12bb97331649.jpg

圖像的色階直方圖

如果選擇兩個(gè)波峰之間的波谷作為閾值,就能輕松地把這兩類(lèi)像素分開(kāi)。但是圖像的直方圖往往是不連續(xù)的,有非常多尖峰和抖動(dòng),要找到準(zhǔn)確的極值點(diǎn)十分困難。

日本工程師大津展之為這個(gè)波谷找到了一個(gè)合適的數(shù)學(xué)表達(dá),并于1979年發(fā)表[2]。這個(gè)二值化方法稱(chēng)為大津算法(Otsu’s method)。大津算法類(lèi)似于一維Fisher判別分析的離散化模擬。通過(guò)窮舉法找到一個(gè)閾值數(shù)字,把這些像素切成兩類(lèi),使得這兩類(lèi)像素的亮度的類(lèi)內(nèi)方差最小。類(lèi)內(nèi)方差指的是兩類(lèi)像素的方差的加權(quán)和,這里權(quán)指的是這類(lèi)像素點(diǎn)數(shù)量占整個(gè)圖像像素點(diǎn)數(shù)量的比值。

也許你的畫(huà)面不會(huì)只有兩坨差異較大的顏色,比如這款雪糕的就有三個(gè)尖峰。

0f47965a-9cde-11eb-8b86-12bb97331649.jpg

三色雪糕(取雪糕部位的直方圖)

這時(shí)候,只需對(duì)大津算法稍加擴(kuò)展也可以完成。對(duì)大津算法的多級(jí)推廣成為多大津算法(multi Otsu method)[3]。

局部閾值(Local Method)又稱(chēng)自適應(yīng)閾值(Adaptive Thresholding)。

比賽中常常會(huì)有聚光燈照在一個(gè)特定區(qū)域,產(chǎn)生局部受光、局部不受光的畫(huà)面。

0f509764-9cde-11eb-8b86-12bb97331649.jpg

局部受光的圖像

對(duì)于局部受光的圖像進(jìn)行全局閾值,可能會(huì)出現(xiàn)“無(wú)論設(shè)置什么閾值參數(shù),都無(wú)法滿(mǎn)足全圖要求”的尷尬。比如上面這幅圖像,直接進(jìn)行全局閾值時(shí),左上半邊的壽司全都顯露出來(lái)時(shí),右下半邊還是一片黑色。

0f5af664-9cde-11eb-8b86-12bb97331649.jpg

局部受光圖像的全局閾值處理

這個(gè)時(shí)候我們就要用到局部閾值來(lái)處理了。其實(shí),人的眼睛也是自帶了這一步操作的。我們判定一個(gè)東西顏色深淺,往往會(huì)受到物體周邊的顏色影響,這也就是為什么黑人的牙齒看上去更白。

局部閾值法假定圖像在一定區(qū)域內(nèi)受到的光照比較接近。它用一個(gè)滑窗掃描圖像,并取滑窗中心點(diǎn)亮度與滑窗內(nèi)其他區(qū)域(稱(chēng)為鄰域, neighborhood area)的亮度進(jìn)行比較。如果中心點(diǎn)亮度高于鄰域亮度,則將中心點(diǎn)標(biāo)記為白色,否則標(biāo)記為黑色。

0f67e838-9cde-11eb-8b86-12bb97331649.gif

局部閾值的滑窗

這里提到的是局部閾值的基本方法,對(duì)于實(shí)際使用中常見(jiàn)的其他局部閾值方法,請(qǐng)參閱Chow-Kaneko自適應(yīng)閾值法[4]。

局部閾值的應(yīng)用非常廣泛,特別是對(duì)白紙黑字的處理非常有效。光學(xué)字符識(shí)別(OCR)和二維碼掃描的算法中,很多都用了局部閾值操作。

比如下面這張二維碼就是一張典型的局部受光圖像:

局部受光的二維碼

如果對(duì)這張圖片采用全局閾值(例如下圖采用大津算法進(jìn)行分割),是無(wú)論如何都無(wú)法正確分割的。

全局方法不能處理局部受光圖像

而采用局部閾值方法就能很好地分割圖像。從圖片里可以明顯觀(guān)察到,局部閾值方法對(duì)于一大片干凈區(qū)域的細(xì)節(jié)比較敏感,所以紙面上多出了很多我們?cè)咀⒁獠坏降陌唿c(diǎn)。

局部方法分割二維碼

實(shí)際運(yùn)用中,我們要根據(jù)需求選擇不同的二值化方法,沒(méi)有哪個(gè)方法是絕對(duì)完美的。

例如,在識(shí)別敵方機(jī)器人時(shí),由于裝甲片燈條是自發(fā)光物體,受環(huán)境光影響較小,為了提高程序運(yùn)行效率,我們采用固定數(shù)字作為全局閾值:

基地自動(dòng)反擊

在能量機(jī)關(guān)的識(shí)別中,由于能量機(jī)關(guān)只有黑白兩種顏色,我們采用了大津算法及其多種變體:

大能量機(jī)關(guān)各區(qū)域的二值圖

而在空中機(jī)器人讀取基地區(qū)二維碼的時(shí)候又用到了局部閾值方法:

空中機(jī)器人識(shí)別基地

除了基于閾值的圖像分割方法外,常用的分割方法還可以基于邊緣(如Yanowitz-Bruckstein自適應(yīng)閾值方法[5])、區(qū)域(如區(qū)域生長(zhǎng)算法[6])等,它們?cè)谛l(wèi)星圖像處理、交通控制系統(tǒng)、工業(yè)生產(chǎn)監(jiān)控、醫(yī)療影像等領(lǐng)域發(fā)揮著巨大的作用。

腦部組織圖像分割

本文所述閾值方法的OpenCV實(shí)現(xiàn),請(qǐng)參見(jiàn)博客:Python+OpenCV圖像處理實(shí)驗(yàn)

項(xiàng)目效果

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4785

    瀏覽量

    98110
  • 機(jī)器視覺(jué)
    +關(guān)注

    關(guān)注

    165

    文章

    4800

    瀏覽量

    126127
  • 二值化
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    4432

原文標(biāo)題:一文搞懂圖像二值化算法

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    算法工程師需要具備哪些技能?

    算法工程師需要掌握系列跨學(xué)科的技能,涵蓋數(shù)學(xué)基礎(chǔ)、編程能力、算法理論、工程實(shí)踐以及業(yè)務(wù)理解等多個(gè)方面。 以下是具體技能及學(xué)習(xí)建議: 線(xiàn)性代數(shù)核心內(nèi)容:矩陣運(yùn)算、特征分解、向量空間等
    發(fā)表于 02-27 10:53

    帶你徹底搞懂K8s網(wǎng)絡(luò)

    說(shuō)實(shí)話(huà),K8s 網(wǎng)絡(luò)是我見(jiàn)過(guò)最讓新手頭疼的知識(shí)點(diǎn),沒(méi)有之。記得我剛接觸 K8s 那會(huì)兒,看著流量在 Pod、Service、Node 之間穿梭,完全是臉懵逼。后來(lái)踩了無(wú)數(shù)坑,熬了無(wú)數(shù)夜,總算把這套網(wǎng)絡(luò)模型摸透了。今天這篇文章,我會(huì)用最接地氣的方式,帶你徹底
    的頭像 發(fā)表于 02-06 10:15 ?505次閱讀

    解讀CRC校驗(yàn)

    校驗(yàn)的過(guò)程是什么? 發(fā)送方根據(jù)發(fā)送報(bào)文,計(jì)算出CRC。將原始信息和該CRC起發(fā)送給接收方。接收方根據(jù)原始信息,按照同樣的算法,計(jì)算CRC。如果計(jì)算的CRC
    發(fā)表于 01-26 07:20

    PID控制的算法

    語(yǔ)言實(shí)現(xiàn) PID算法的離散節(jié)中,我論述了PID算法的基本形式,并對(duì)其控制過(guò)程的實(shí)現(xiàn)有了
    發(fā)表于 01-23 08:18

    低容和高容貼片電容之間的區(qū)別,帶您了解!

    貼片電容在現(xiàn)代電子電路中廣泛應(yīng)用,低容與高容貼片電容因不同的設(shè)計(jì)、材料和工藝,在諸多方面存在顯著差異。這些差異涵蓋了電容范圍、應(yīng)用場(chǎng)景、電氣性能(如等效串聯(lián)電阻、等效串聯(lián)電感、耐壓
    的頭像 發(fā)表于 12-10 15:31 ?639次閱讀
    低容<b class='flag-5'>值</b>和高容<b class='flag-5'>值</b>貼片電容之間的區(qū)別,<b class='flag-5'>一</b><b class='flag-5'>文</b>帶您了解!

    SM4算法實(shí)現(xiàn)分享(算法原理

    對(duì)明文進(jìn)行分組加密變換。SM4加密算法由32次迭代運(yùn)算和次反序變換R組成。 設(shè)輸入明文為(X0,X 1,X 2,X 3),共128位,設(shè)密輸出為(Y0,Y 1,Y 2,Y 3),輪密鑰為rki
    發(fā)表于 10-30 08:10

    Camellia算法的實(shí)現(xiàn)(基于開(kāi)源蜂鳥(niǎo)E203協(xié)處理器)

    篇分享文檔介紹了Camellia算法的基本原理,這篇文檔我們來(lái)介紹Camellia的具體實(shí)現(xiàn)方式。 如上圖所示為Camellia加解密系統(tǒng)的結(jié)構(gòu),PC端上位機(jī)通過(guò)串口以
    發(fā)表于 10-30 06:35

    使用Otsu閾值算法將灰度圖像

    Otsu 算法是由日本學(xué)者OTSU于1979年提出的種對(duì)圖像進(jìn)行的高效
    發(fā)表于 10-28 06:49

    RISC-V 算法原理及串口通信

    具體方法 算法原理: 由于場(chǎng)景中的目標(biāo)在運(yùn)動(dòng),目標(biāo)的影像在不同圖像幀中的位置不同。該類(lèi)算法對(duì)時(shí)間上連續(xù)的兩幀或三幀圖像進(jìn)行差分運(yùn)算,不同幀對(duì)應(yīng)的像素點(diǎn)相減,判斷灰度差的絕對(duì)
    發(fā)表于 10-28 06:16

    加密算法的應(yīng)用

    機(jī)。但是,由于加密技術(shù)的保密性,直到戰(zhàn)結(jié)束后,人們才開(kāi)始研究加密技術(shù)的理論,進(jìn)步推動(dòng)了加密技術(shù)的發(fā)展。 2. 加密算法的含義 加密算法是指對(duì)明文進(jìn)行變換,使其變?yōu)榭此齐s亂
    發(fā)表于 10-24 08:03

    e203除法器算法改進(jìn)(

    表示余數(shù)) 利用數(shù)學(xué)遞歸算法進(jìn)行將除法操作簡(jiǎn)化為迭代算法,每次迭代產(chǎn)生個(gè)基數(shù)為$beta$的商。經(jīng)過(guò)$j$次迭代后,產(chǎn)生的商表示為: q{j}=sum{i=0}^j q_i bet
    發(fā)表于 10-22 06:11

    基于FPGA的CLAHE圖像增強(qiáng)算法設(shè)計(jì)

    CLAHE圖像增強(qiáng)算法又稱(chēng)為對(duì)比度有限的自適應(yīng)直方圖均衡算法,其算法原理是通過(guò)有限的調(diào)整圖像局部對(duì)比度來(lái)增強(qiáng)有效信號(hào)和抑制噪聲信號(hào)。
    的頭像 發(fā)表于 10-15 10:14 ?667次閱讀
    基于FPGA的CLAHE<b class='flag-5'>圖像</b>增強(qiáng)<b class='flag-5'>算法</b>設(shè)計(jì)

    PPEC電源DIY套件:圖形算法編程,解鎖電力電子底層算法實(shí)踐

    智能設(shè)計(jì)平臺(tái),為用戶(hù)提供了個(gè)接觸和操作底層算法的便捷途徑。 用戶(hù)無(wú)需進(jìn)行復(fù)雜的代碼編寫(xiě),可以鍵套用工程模版,也可以通過(guò)圖形界面自定
    發(fā)表于 08-14 11:30

    升壓電路搞懂 升壓電路技術(shù)文檔合集

    升壓電路圖集合,升壓電路設(shè)計(jì)方案,電路設(shè)計(jì)技巧,升壓電路搞懂;給大家分享 升壓電路技術(shù)文檔合集
    的頭像 發(fā)表于 05-15 15:58 ?2.4w次閱讀
    升壓電路<b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>搞懂</b> 升壓電路技術(shù)文檔合集

    K230 yolo識(shí)別例程中,怎么修改攝像頭參數(shù)及AI推理輸入圖片參數(shù),使其采集圖像并將圖像推給AI進(jìn)行推理呢

    我嘗試修改pipeline中的初始函數(shù)和getframe函數(shù)均沒(méi)有辦法在ide上顯示圖像,有沒(méi)有辦法修改呢? 設(shè)置為Sens
    發(fā)表于 04-25 07:51