最近因爲項目須要,須要作一些邊緣檢測相關的工做。因而把最近幾天的學習內容作一下整理。算法
①.基本原理數組
在圖像處理和計算機視覺中,邊緣檢測被普遍使用。其目的在於標識出數字圖像中亮點變化明顯的點,進而學習
提取出有用的信息。一般狀況下咱們能夠將數字圖像表示爲二位數組,而概二位數組中每一個元素的值則對應spa
着圖像各個像素點的灰度值。而邊緣檢測的根本原理是經過算法將該數組中各個數據鄰域內數值變化大的數據it
元素進行突出顯示,而鄰域內變化不大的相鄰數據元素數據元素進行屏蔽或下降其灰度顯示。圖像處理
不能看出其邊緣檢測的很像即爲如何找出一種算法來突出這種鄰域內的數值變化率。原理
②.邊緣檢測算法有哪些程序
不難看出,邊緣檢測算法的核心是突出圖像中變化率,不管目標與目標,仍是目標與背景之間。這於導數的im
概念離奇的詳盡。而對於離散的數字圖像中,咱們可使用與求導類比的差分運算來提取圖像邊緣。基於此原總結
理應用於二維數組中咱們能夠求出該二維數組的梯度模矩陣。該梯度模矩陣就能比較清楚的表示出圖像矩陣的
邊緣。固然也能夠設定一個閾值,當梯度模矩陣中大於閾值的元素則保留,而低於閾值的元素則設爲黑度。
根據梯度模矩陣的不一樣求法,邊緣檢測算法能夠分爲兩大類:一階導數方式(梯度算子)和二階導數方式
而一階導數方式中幾種常見的邊緣算子爲:Robert,Sobel,PreWitt,kvisch.
而二階導數方式常見的有:laplace算子
③.邊緣檢測在圖像處理中的通常步驟
其中第一步爲濾波,由於圖像中存在噪聲因此須要先進行濾波。然而數字圖像中的噪聲大多和邊緣信號一
樣佔據高頻段,因此若是濾波過於徹底極可能連同邊緣一塊兒濾除,使得濾波後的圖像變得模糊,沒法提取有
效的邊緣。而第二步爲咱們一般所說的利用邊緣算子對邊緣進行加強。這一步的結果即可直接當作邊緣檢測
的結果。然而大多數邊緣檢測還須要進行第三部,設定閾值,對超過閾值的像素點進行突出,對低於閾值的像
素點進行屏蔽。
④.matlab邊緣處理示例。
程序代碼以下:
程序結果以下:
本文對邊緣檢測作了簡單的概述,也是對近兩天學習的總結。經過此文相信你們會對邊緣檢測有了
大概的瞭解,經過最後一個示例程序使讀者對各類邊緣處理的印象更加直觀。文中不免出現紕漏還望
讀者批評指正,最後共同進步。