學習 習 Canny 邊緣檢測的原理,掌握如何在 LCD 上讀取影象、顯示邊緣檢測前後的影象。
在數字影象中,邊緣是指影象區域性變化的最重要部分,邊緣主要存在於目標與目標之間、目標與背景之間,是影象區域性特徵的不連續性,如灰度的突然變化、紋理結構的圖示、 顏色圖示等。 雖然影象邊緣點的原因各不相同,但都是圖上灰度不連續或灰度變化劇烈的點,影象的邊緣分為階梯、坡度和屋頂。
邊緣實際上是影象上灰度級別快速變化的點的集合。 計算方法是通過導數和微分的方式。
導數:乙個點在連續函式上的斜率,導數越大表示變化率越大,變化率越大的地方越“邊”,但它在計算機中並不常用,因為在90度的斜率下,導數是無限的,計算機很難表示這些無限的東西。
微分:x在乙個連續函式上改變dx,導致y改變dy,dy值越大,變化越大,則計算整個影象的微分,dy的大小就是邊的強度。 微分與導數的關係:dy = f '(x) dx。
狡猾的邊緣檢測是一種從不同的視覺物件中提取有用的結構資訊並大大減少要處理的資料量的技術,現在廣泛應用於各種計算機視覺系統中。 邊緣檢測的一般標準包括:
1) 檢測錯誤率低的邊緣意味著盡可能準確地捕獲影象中盡可能多的邊緣。
2)檢測邊緣應精確定位在真實邊緣的中心。
3)影象中給出的邊緣只能標記一次,並且在可能的情況下,影象的雜訊不應產生虛假邊緣。
為了滿足這些要求,Canny使用變分法。 Canny 檢測器中的最優函式使用四個指數項的總和來描述,該項可以通過高斯函式的一階導數近似。
在常用的邊緣檢測方法中,Canny邊緣檢測演算法是嚴格定義的方法之一,可以提供良好可靠的檢測。 由於其滿足邊緣檢測三個標準和簡單的實現過程的優勢,它已成為最流行的邊緣檢測演算法之一。
Canny邊緣檢測運算元是一種多級邊緣檢測演算法,Canny的目標是找到最優的邊緣檢測演算法。 最佳邊緣檢測的含義是:
1)最優檢測:該演算法可以識別影象中盡可能多的實際邊緣,並且遺漏真實邊緣的概率和錯誤檢測非邊緣的概率盡可能小
2)最優定位準則:被檢測邊緣點的位置最接近實際邊緣點的位置,或被檢測邊緣因雜訊影響而與物體真實邊緣的偏差程度最小;
3)檢測點與邊緣點一一對應:操作人員檢測的邊緣點應與實際邊緣點相對應。為了滿足這些要求,Canny使用變分微積分,這是一種尋找優化特定函式的函式的方法。 最優檢驗由四個指數函式項表示,但它非常接近高斯函式的一階導數。
1)應用高斯濾波使影象平滑,以去除噪點;
2)求影象的強度梯度
3)採用非極大值抑制技術,消除邊緣誤檢
4)應用雙閾值法來確定可能的(潛在)邊界
5) 利用滯後技術來跟蹤邊界。
例如,對於雙閾值 t1 和 t2 (t1 t2),大於 t2 的點肯定是邊,小於 t1 的點肯定不是邊。 t1 和 t2 之間的點,通過已識別的邊緣點啟動搜尋,可到達的點是邊,無法到達的點不是邊。
在程式工藝設計中,首先是外設使能配置,其次是LCD引腳復用配置和LCD中斷配置,然後是LCD顯示器的初始化,最後讀取工程目錄中的BMP影象進行邊緣檢測處理,並將邊緣檢測前後的影象顯示在LCD上。
VLIB 是乙個 TI 軟體庫,可加速檢測開發並將效能提高多達 10 倍。 VLIB 是針對 C6x DSP 核心優化的可擴充套件庫。 超過 40 個核心的集合包括背景建模和減法、物件特徵提取、跟蹤和識別以及低階畫素處理。
包括適用於 C64X+、C674X 和 C66X 處理器的 Windows 和 Linux 安裝可執行檔案。 每個可執行檔案都會安裝乙個元件包儲存庫、乙個文件目錄、乙個 Eclipse 外掛程式目錄和乙個包含元件庫、標頭檔案和測試示例的擴充套件元件目錄結構。
TMS320C6748處理器使用 VLIB C674X 3 3 2 0。
將安裝到 CCS55、安裝完成後會出現相應的資料夾。 原始碼路徑:vlib c674x 3 3 2 0 packages ti vlib src
本實驗使用的硬體介面為LCD,所需硬體為實驗板、**器件、LCD和電源。
硬體連線
1)連線裝置和電腦的USB介面,2)將撥碼開關轉到除錯模式01111,連線實驗箱電源,轉動電源開關上電。
軟體操作
如需匯入工程,請在 demo 資料夾中選擇對應的工程。
編譯專案並生成可執行檔案。
將 CCS 連線到實驗室箱並載入程式。
載入程式後,單擊“執行程式”。
執行程式後,CCS 控制台視窗將列印相關資訊,LCD 將顯示標題。
短時間後,影象處理完成,LCD顯示邊緣檢測處理前後的影象。
實驗結束後,點選黃色按鈕暫停程式,然後點選紅色按鈕退出CCS與實驗箱的連線,最後實驗箱即可斷電。