二值化處理與邊緣檢測(cè)

問(wèn)題:我在提取圖像邊緣的時(shí)候蠢涝,首先對(duì)圖像進(jìn)行灰度變換派阱,之后進(jìn)行二值處理,最后進(jìn)行邊緣檢測(cè)得到邊緣圖像揩环。
但是在查閱資料的過(guò)程中我經(jīng)常發(fā)現(xiàn)很多人忽略二值化的步驟搔弄,直接進(jìn)行邊緣檢測(cè);還有很多人在實(shí)現(xiàn)某些功能的時(shí)候先進(jìn)行邊緣檢測(cè)之后再閾值分割丰滑,讓我感到非常迷惑顾犹,這篇文章旨在探求二者的關(guān)系。

首先要知道圖像二值化和邊緣檢測(cè)的目的褒墨。

圖像二值化

圖像的閾值處理一般使得圖像的像素值更單一炫刷、圖像更簡(jiǎn)單。閾值可以分為全局閾值和局部閾值郁妈,可以是單閾值也可以是多閾值浑玛。
圖像二值化是設(shè)置單閾值,為了將圖像中感興趣的像素分離出來(lái)作為前景像素噩咪,不感興趣的部分作為背景像素顾彰。

最簡(jiǎn)單的二值化操作是使用以下函數(shù):(這是全局化的閾值)

retval, dst = cv2.threshold(src, thresh, maxval, type)
  • src:表示的是圖片源
  • thresh:表示的是閾值(起始值)
  • maxval:表示的是最大值
  • type:表示的是這里劃分的時(shí)候使用的是什么類型的算法
    ??cv2.THRESH_BINARY(黑白二值)
    ??cv2.THRESH_BINARY_INV(黑白二值反轉(zhuǎn))
    ??cv2.THRESH_TRUNC (得到的圖像為多像素值)
    ??cv2.THRESH_TOZERO
    ??cv2.THRESH_TOZERO_INV


    type

上述的二值化處理是設(shè)置一個(gè)全局閾值,讓所有像素值與該閾值比較胃碾,下面還可以通過(guò)自適應(yīng)閾值實(shí)現(xiàn)圖像的二值化處理涨享。
自適應(yīng)閾值不需要確定一個(gè)固定的閾值,根據(jù)其對(duì)應(yīng)的自適應(yīng)方法仆百,通過(guò)圖像的局部特征自適應(yīng)的設(shè)定閾值厕隧,做出二值化處理。
自適應(yīng)閾值是一種局部閾值,要在圖像中確定一個(gè)區(qū)域吁讨,求出該區(qū)域內(nèi)的像素平均值帖族,再與閾值比較

dst = cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)

adaptiveMethod - 指定計(jì)算閾值的方法。
??cv2.ADPTIVE_THRESH_MEAN_C:閾值取相鄰區(qū)域的平均值
??cv2.ADPTIVE_THRESH_GAUSSIAN_C:閾值取相鄰區(qū)域的加權(quán)和挡爵,權(quán)重為一個(gè)高斯窗口。

thresholdType - 和上面一樣
blockSize - 鄰域大猩蹩选(用來(lái)計(jì)算閾值的區(qū)域大胁杈椤),計(jì)算圖像的像素區(qū)域一般取3×3艰亮、5×5闭翩、7×7.....
C - 常數(shù),閾值等于平均值或者加權(quán)平均值減去這個(gè)常數(shù)迄埃。該參數(shù)用于微調(diào)閾值疗韵,可以為負(fù)數(shù)

還有一種非常多人提及的方法——Otsu’s 二值化,這種方法下次再記錄侄非。

邊緣檢測(cè)

要對(duì)圖像進(jìn)行邊緣檢測(cè)蕉汪,首先對(duì)圖像進(jìn)行灰度變換,使圖像只包含一個(gè)通道的信息逞怨,然后比較各相鄰像素間的亮度差別者疤,亮度產(chǎn)生突變的地方就是邊緣像素,將這些邊緣像素點(diǎn)連接到一起就形成了邊緣圖像叠赦。
那么首先要知道如何檢測(cè)出邊緣:
邊緣有方向和幅值兩個(gè)要素驹马,通常對(duì)圖像相鄰域像素求取梯度來(lái)描述和檢測(cè)邊緣。
為何要求梯度除秀?
圖像梯度是對(duì)多個(gè)方向分別求偏導(dǎo)得到的導(dǎo)數(shù)組糯累。比如下圖是亮度在x方向上變化,在y方向上沒有變化册踩,所以此時(shí)只需對(duì)x求偏導(dǎo)泳姐,該處關(guān)于y的偏導(dǎo)為0。


source:S.Lazebnik

同樣圖像的亮度在y軸變化時(shí)棍好,x方向的偏導(dǎo)為0仗岸。


source:S.Lazebnik

一般圖像的亮度不會(huì)只在一個(gè)方向變化,尤其是出現(xiàn)邊緣信息的時(shí)候借笙。這時(shí)對(duì)x方向和y方向分別求偏導(dǎo)就可以得到圖像的梯度信息扒怖。
source:S.Lazebnik

我們知道,當(dāng)一個(gè)函數(shù)在某處變化大的時(shí)候业稼,它的導(dǎo)數(shù)在該處得到極值盗痒。


source:S.Lazebnik

可以看到,圖像由亮變暗時(shí)函數(shù)陡然下降,導(dǎo)數(shù)得到極小值俯邓,由暗變亮?xí)r函數(shù)又陡然上升骡楼,導(dǎo)數(shù)得到極大值,接下來(lái)只要找到導(dǎo)數(shù)的峰值就行稽鞭。

這里主要了解Canny邊緣檢測(cè)算法鸟整。
Canny算子首先對(duì)圖像進(jìn)行平滑濾波,濾除圖像的噪聲以減少噪聲對(duì)圖像邊緣檢測(cè)的干擾朦蕴。
下面這兩篇文章對(duì)Canny算子的介紹非常清晰篮条,在此附上鏈接以供學(xué)習(xí)。
https://www.cnblogs.com/techyan1990/p/7291771.html
https://www.cnblogs.com/wjy-lulu/p/6672871.html?utm_source=itdadao&utm_medium=referral
在進(jìn)行邊緣檢測(cè)之前至少要將圖像灰度化吩抓,因?yàn)樘荻冗\(yùn)算并不能反映色彩的變化差異涉茧,所以轉(zhuǎn)換成只有一種顏色通道的灰度圖像能夠更好地進(jìn)行邊緣檢測(cè)。

深入了解過(guò)圖像二值化和邊緣檢測(cè)之后疹娶,我認(rèn)為既可以直接使用灰度圖像進(jìn)行邊緣檢測(cè)伴栓,也可以二值化之后再進(jìn)行邊緣檢測(cè),二值化的目的是進(jìn)一步簡(jiǎn)化灰度圖像雨饺,使圖像中的信息更加純粹钳垮,邊緣亮度變化更加明顯。如果閾值選的較好還可以濾除不需要的弱邊緣沛膳,使邊緣處理后的圖像輪廓更加清晰扔枫。

還有一種方法是先進(jìn)行邊緣檢測(cè),再二值化锹安,這種情況一般適用于:
想得到二值化圖像短荐,但由于原圖出現(xiàn)光照不均、前景和背景灰度差別很小等情況叹哭,我們不能直接得到完整的目標(biāo)忍宋,這時(shí)就可以利用邊緣檢測(cè)對(duì)光線變化的不敏感性,先對(duì)圖像作邊緣檢測(cè)风罩,檢測(cè)出我們想要進(jìn)一步研究的目標(biāo)輪廓糠排,然后再根據(jù)只有邊緣的圖像,求出原圖像所有邊緣點(diǎn)的像素平均值超升,將該值作為閾值對(duì)原圖像進(jìn)行二值處理入宦,就能很好得獲得目標(biāo)區(qū)域,并且目標(biāo)區(qū)域的連通性也很好室琢。

筆者剛剛開始學(xué)習(xí)圖像處理與計(jì)算機(jī)視覺乾闰,可能會(huì)出現(xiàn)許多錯(cuò)誤,歡迎各位提出改進(jìn)意見盈滴!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涯肩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌病苗,老刑警劉巖疗垛,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異硫朦,居然都是意外死亡贷腕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門咬展,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)花履,“玉大人,你說(shuō)我怎么就攤上這事挚赊。” “怎么了济瓢?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵荠割,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我旺矾,道長(zhǎng)蔑鹦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任箕宙,我火速辦了婚禮嚎朽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘柬帕。我一直安慰自己哟忍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布陷寝。 她就那樣靜靜地躺著锅很,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凤跑。 梳的紋絲不亂的頭發(fā)上爆安,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音仔引,去河邊找鬼扔仓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛咖耘,可吹牛的內(nèi)容都是我干的翘簇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鲤看,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼缘揪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤找筝,失蹤者是張志新(化名)和其女友劉穎蹈垢,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袖裕,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡曹抬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了急鳄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谤民。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖疾宏,靈堂內(nèi)的尸體忽然破棺而出张足,到底是詐尸還是另有隱情,我是刑警寧澤坎藐,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布为牍,位于F島的核電站,受9級(jí)特大地震影響岩馍,放射性物質(zhì)發(fā)生泄漏碉咆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一蛀恩、第九天 我趴在偏房一處隱蔽的房頂上張望疫铜。 院中可真熱鬧,春花似錦双谆、人聲如沸壳咕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)囱井。三九已至,卻和暖如春趣避,著一層夾襖步出監(jiān)牢的瞬間庞呕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工程帕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留住练,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓愁拭,卻偏偏與公主長(zhǎng)得像讲逛,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岭埠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 定義:圖像的二值化盏混,就是將圖像上的像素點(diǎn)的灰度值設(shè)置為0或255蔚鸥,也就是將整個(gè)圖像呈現(xiàn)出明顯的只有黑和白的視覺效果...
    朝畫夕拾閱讀 13,613評(píng)論 0 0
  • 闕值處理是指剔除圖像內(nèi)像素值高于一定值或低于一定值的像素點(diǎn),例如许赃,設(shè)定闕值為127,然后 1.將圖像內(nèi)所有像素值大...
    dinel閱讀 3,103評(píng)論 0 0
  • 一個(gè)簡(jiǎn)單的閾值例子就是選擇一個(gè)像素值p止喷,然后將小于p的所有像素強(qiáng)度設(shè)置為零,并且將所有像素值大于p設(shè)置為255.以...
    HaveyYeung閱讀 5,311評(píng)論 1 5
  • 1.簡(jiǎn)單閥值cv2.threshold() 當(dāng)像素值高于閥值時(shí)混聊,我們給這個(gè)像素賦予一個(gè)新值(可能是白色)弹谁,否則我們...
    Zoe_C閱讀 918評(píng)論 0 0
  • 林淺淺,是一個(gè)普通本科大學(xué)的學(xué)生句喜。跟大多數(shù)人一樣预愤,學(xué)習(xí)、談戀愛咳胃、按時(shí)上課植康、按時(shí)吃飯,她好像有很多興趣愛好展懈,吉他向图、演...
    洛一北北閱讀 433評(píng)論 0 0