http://blog.chinaunix.net/space.php?uid=24517893&do=blog&id=2761718

摘  要  邊緣是圖像最基本的特征,包含圖像中用於識別的有用信息,本文詳細介紹了現有邊緣檢測技術和方法,給出了邊緣檢測的一般步驟,分析了邊緣檢測「兩難」問題,描述了實際圖像中可能出現的邊緣類型的數學模型,探討了解決「兩難」問題的方法。

    關鍵字  計算機視覺;邊緣檢測;圖像處理;邊緣模型
 
1  引言

    計算機視覺包括兩部分:低層視覺和高層視覺。低層視覺即為圖像處理,包括圖像增強、噪聲濾除和邊緣 檢測等部分;高層視覺包括圖像分析和圖像理解,主要是模擬人類對圖像信息的認知和決策能力。圖像信息量巨大,而邊緣信息是圖像的一種緊描述,是圖像最基本 的特征,所包含的也是圖像中用於識別的有用信息。所謂邊緣是指其周圍像素灰度有階躍變化或屋頂變化的那些像素的集合,為人們描述或識別目標以及解釋圖像提 供了一個有價值的和重要的特征參數,其算法的優劣直接影響著所研制系統的性能。長期以來,人們已付出許多努力,設法利用邊界來尋找區域,進而實現物體的識 別和景物分析,由於目標邊緣、圖像紋理甚至噪聲都可能成為有意義的邊緣,因此很難找到一種普適性的邊緣檢測算法,現有諸多邊緣檢測的方法各有其特點,同時 也都存在著各自的局限性和不足之處,因此圖像的邊緣檢測這個領域還有待於進一步的改進和發展。而根據具體應用的要求,設計新的邊緣檢測方法或對現有的方法進行改進,以得到滿意的邊緣檢測結果依然是研究的主流方向[1,2,3]
    本文詳細介紹並比較了現有邊緣檢測技術和方法,給出了邊緣檢測的一般步驟,在分析了邊緣檢測「兩難」問題的基礎上,描述了實際圖像中可能出現的邊緣類型的數學模型,分析比較了不同邊緣類型表現出的特性及不同類型的邊緣定位與平滑尺度的關系。

2  邊緣檢測的分類及算法研究

    早在1965年就有人提出邊緣檢測算子[4],主要分為經典算子、最優算子、多尺度方法及自適應平滑濾波方法,近年來又提出了將模糊數學、神經元網絡和數學形態學應用於邊緣檢測的思想。

2.1  經典算子

    傳統的邊緣檢測算法通過梯度算子來實現,在求邊緣的梯度時,需要對每個象素位置計算。在實際中常用 小區域模板卷積來近似計算,模板是N*N的權值方陣,經典的梯度算子模板:Sobel模板、Kirsch模板、Prewitt模板、Roberts模板、 Laplacian模板等[2],表2.1給出了經典算子運算速度的比較。

    可以看出,Krisch算子的運算量比較大。其次在邊緣檢測中邊緣定位能力和噪聲抑制能力方面,有 的算子邊緣定位能力強,有的抗噪聲能力比較好:Roberts算子利用局部差分算子尋找邊緣,邊緣定位精度較高,但容易丟失一部分邊緣,同時由於沒經過圖 像平滑計算,不能抑制噪聲。該算子對具有陡峭的低噪聲圖像響應最好;Sobel算子和Prewitt算子都是對圖像進行差分和濾波運算,差別只是平滑部分 的權值有些差異,對噪聲具有一定的抑制能力,不能完全排除檢測結果中出現偽邊緣。這兩個算子的邊緣定位比較准確和完整,但容易出現邊緣多像素寬。對灰度漸 變和具有噪聲的圖像處理的較好;Krisch算子對8個方向邊緣信息進行檢測,因此有較好的邊緣定位能力,並且對噪聲有一定的抑制作用,該算子的邊緣定位 能力和抗噪聲能力比較理想;Laplacian算子是二階微分算子,對圖像中的階躍型邊緣點定位准確且具有旋轉不變性即無方向性。但該算子容易丟失一部分 邊緣的方向信息,造成不連續的檢測邊緣,同時抗噪聲能力比較差,比較適用於屋脊型邊緣檢測(將在第3節中討論)。

2.2  最優算子

    最優算子又可以分為馬爾算子(LOG濾波算子)、坎尼(Canny)邊緣檢測、曲面擬合法。
Torre和Poggio[5]提出高斯函數是接近最優的平滑函數,Marr和Hildreth應用Gaussian函數先對圖像進行平滑,然後采用拉氏算子根據二階導數過零點來檢測圖像邊緣,稱為LOG算子。對於LOG算子數學上已經證明[6],它是按照零交叉檢測階躍邊緣的最佳算子。但在實際圖像當中,高斯濾波的零交叉點不一定全部是邊緣點,還需要進一步確定真偽[7]; 坎尼把邊緣檢測問題轉換為檢測單位函數極大值問題,根據邊緣檢測的有效性和定位的可靠性,研究了最優邊緣檢測器所需的特性,推導出最優邊緣檢測器的數學表 達式。與坎尼密切相關的還有Deriche算子和沈俊算子,它們在廣泛的意義下是統一的;曲面擬合的基本思想是用一個平滑的曲面與待測點周圍某鄰域內像素 的灰度值進行擬合,然後計算此曲面的一階或二階導數。該方法依賴於基函數的選擇,實際應用中往往采用低階多項式。

2.3  多尺度方法

    早期邊緣檢測的主要目的是為了處理好尺度上的檢測和定位之間的矛盾,忽略了在實際圖像中存在的多種干擾邊緣,往往影響到邊緣的正確檢測和定位。
    Rosenfeld等[8]首先提出要把多個尺寸的算子檢測到的邊緣加以組 合;Marr倡導同時使用多個尺度不同的算子,並提出了一些啟發性的組合規則。這一思想後來經Witkin等發展成了尺度空間濾波理論,說明了不同尺度上 的零交叉的因果性;Lu Jain對二維信號進行了類似的研究;Yuille和Poggio證明了對於任意維信號,當用高斯函數濾波時,尺度圖中包含了數目最小的零交叉,並且可以 由粗到細地跟蹤這些零交叉。
    多尺度信號處理不僅可以辨識出信號中的重要特征,而且能以不同細節程度來構造信號的描述,在高層視覺處理中有重要的作用。
    其中小波變換是近年得到廣泛應用的數學工具。與傅立葉變換和窗口傅立葉變換相比,小波變換是時間和 頻率的局域變換,因而能有效地從信號中提取信息,它通過伸縮和平移等運算功能對函數或信號進行多尺度細化分析,解決了傅立葉變換不能解決的很多困難問題, 因而被譽為「數學顯微鏡」。信號突變點檢測及由邊緣點重建原始信號或圖像是小波變換應用的一個很重要的方面。
從邊緣檢測的角度看,小波變換有以下幾個優點:
    (1)小波分解提供了一個數學上完備的描述;
    (2)小波變換通過選取合適的濾波器,可以極大地減小或去除所提取的不同特征之間的相關性;
    (3)具有「變焦」特性:在低頻段可用高頻分辨率和低時間分辨率;在高頻段可用低頻分辨率和高時間分辨率;
    (4)小波變換可通過快速算法來實現。
    文獻[9] 提出了一種基於層間相關性的小波邊緣檢測算法,依據的是信號主要分布在低頻部分或低尺度部分,而噪聲分布於高頻部分或高尺度部分的特點。另外小波變換具有 較強的去相關性,變換後的小波系數之間仍然存在大量的相關性質,即小波系數在不同分辨率下的對應系數之間具有較強的相關性或稱層間的相關性。通過對比該方 法能夠較好多的防止噪聲干擾,又能有效地保留圖像邊緣。

2.4  自適應平滑濾波方法

    該方法是邊緣檢測的一個重要方法[10],無論是對於灰度圖象處理還是距離圖像和平面曲線處理都是非常有效的。它的優點是:
    (1)平滑濾波的迭代運算使信號的邊緣得到銳化,此時再進行邊緣檢測,可以得到很高的邊緣定位精度;
    (2)通過自適應迭代平滑,實現了將高斯平滑之後的階躍邊緣、屋頂狀邊緣和斜坡邊緣都轉化為理想的階躍邊緣,提高了圖像的信噪比;
    (3)經過多次迭代運算,圖像按邊緣分塊實現自適應平滑,但不會使邊緣模糊;
    (4)應用自適應平滑濾波得到一種新的圖像尺度空間描述。

2.5  其他方法

    近年來隨著模糊數學、神經網絡的發展,人們不斷探索將其應用於圖像的邊緣檢測中。文獻[11]和 [12]依據模糊理論討論了邊緣檢測算法的抗噪性和檢測速度問題,並證明了模糊集合理論能較好地描述人類視覺中的模糊性和隨機性;應用人工神經網絡提取圖 像邊緣成為新的研究分支,目前已提出了很多算法,具有計算簡單功能強的特點,但是速度慢,穩定性差。但是神經網絡邊緣檢測可以避免自適應確定閾值的問題, 具有較好的容錯性和聯想功能。

2.6  邊緣檢測的步驟

    邊緣檢測分為彩色圖像邊緣檢測和灰度圖像邊緣檢測兩種,由於彩色圖像有八種彩色基,在邊緣檢測時選用不同的彩色基將直接影響實時性、兼容性和檢測效果,因此本文只限於灰度圖像的邊緣檢測研究,其步驟如圖2.1所示。

    其中邊緣定位是對邊緣圖像進行處理,以得到單像素寬的二值邊緣圖像,通常使用的技術是閾值法和零交叉法。邊緣定位後往往存在一些小的邊緣片斷,通常是由於噪聲等因素引起的,為了形成有意義的邊緣需要對定位後的邊緣進行鏈接。通常有兩種算法:局部邊緣鏈接和全局邊緣鏈接。 3  邊緣模型的分類及性能分析

    本小節從邊緣檢測「兩難」問題出發,總結了實際圖像中可能出現的七種邊緣類型,並分別給出了數學模型描述,最後分析比較了不同邊緣類型表現出的特性及不同類型的邊緣定位與平滑尺度的關系。

3.1  邊緣檢測的「兩難」問題

    首先來了解一下邊緣檢測的常用定義[13]:邊緣檢測是根據引起圖像灰度變化的物理過程來描述 圖像中灰度變化的過程。引起圖像灰度不連續性的物理過程可能是幾何方面的(深度的不連續性、表面取向、顏色和紋理的不同),也可能是光學方面的(表面反 射、非目標物體產生的陰影及內部倒影等)。這些景物特征混在一起會使隨後的解釋變得非常困難,且實際場合中圖像數據往往被噪聲污染。信號的數值微分的病態 問題:輸入信號的一個很小的變化就會引起輸出信號大的變化。令 f(x)為輸入信號,假設由於噪聲的影響,使 f(x)發生了一個很小的變動:
              式(3.1)
    其中 ε<<1。對式(3.1)兩邊求導數則:
         式(3.2)
    由式(3.2)可以看到,若w足夠大,即噪聲為高頻噪聲時,會嚴重影響信號  f(x)的微分輸出,進而影響邊緣檢測的結果。為了使微分正則化,則需要先 對圖像進行平滑。然而圖像平滑會引起信息丟失,並且會使圖像平面的主要結構發生移位。另外若使用的微分算子不同,則同一幅圖像會產生不同的邊緣,因此噪聲 消除與邊緣定位是兩個相互矛盾的部分,這就是邊緣檢測中的「兩難」[14,15]

3.2  邊緣分類及性能分析

    圖像中的邊緣通常分為:階躍邊緣、斜坡邊緣、三角型屋脊邊緣、方波型屋脊邊緣、樓梯邊緣、雙階躍邊緣和雙屋脊邊緣[1]
    (1)階躍邊緣
    模型為: f(x)=cl(x) ,其中 c>0為邊緣幅度, 為階躍函數。若存在噪聲,可以選用大尺度的模板平滑圖像,不會影響邊緣的定位。
    (2)斜坡邊緣
    理想的斜坡邊緣模型為:, 其中S為邊緣幅度,d為邊緣寬度。斜坡邊緣的檢測不僅跟尺度有關,還與邊緣本身的寬度有關,若邊緣寬度比較小,則在小的平滑尺度下也能檢測到邊緣;無論是 檢測極值點還是過零點,邊緣的定位都沒有隨著尺度的變化而變化。因此,對於斜坡邊緣若存在噪聲,可以選用大尺度的模板平滑圖像。而不會影響到邊緣定位。
    (3)三角型屋脊邊緣
    模型為:,其中S為邊緣幅度,d為邊緣寬度。對於三角型屋脊邊緣若存在噪聲可以選用大尺度的平滑模板,而不會影響邊緣的定位。
    (4)方波型屋脊邊緣
    方波型屋脊邊緣的模型為:,其中S為邊緣幅度,d為邊緣寬度。對於方波型屋脊邊緣檢測,不僅與平滑尺度有關,還與邊緣寬度有關,若存在噪聲,可以選用大尺度的平滑模板,而不會影響邊緣的定位。
    (5)樓梯邊緣
    樓梯邊緣模型為:,其中c1、c2、l均為常數。這種檢測的特點是平滑後的樓梯邊緣不能准確定位,必須對檢測到的邊緣位置進行移位校正。
    (6)雙階躍邊緣
    雙階躍邊緣與方波型屋脊邊緣相同,不同之處為:雙階躍邊緣的邊緣點為x=-d/2與 x=d/2,而方波型屋脊邊緣的邊緣點為 x=0。雙階躍邊緣的兩個邊緣點通過檢測一階導數的兩個極值點和二階導數的兩個過零點獲得。因此對於雙階躍邊緣大尺度下不能准確定位,必須對檢測到的邊緣 位置進行移位校正。
    (7)雙屋脊邊緣
    模型為:
    其中:

    S為邊緣幅度,l為屋脊邊緣的寬度,d為兩個屋脊邊緣間距。
    實際圖像中邊緣類型的分類及邊緣定位於平滑尺度的關系如表3.1所示。實際應用中可根據具體要求進行建模,選取合適的平滑尺度,盡可能解決「兩難」問題。
    如果已知目標物體的邊緣類型,則可以根據該邊緣類型一階倒數和二階倒數的特性以及與平滑尺度的關系只檢測出目標物體所屬的邊緣類型,濾掉其他的邊緣類型。

4  小結

    邊緣檢測是基於邊界的分割方法。由於圖像邊緣是圖像最基本的特征,往往攜帶著圖像中最重要的信息。因此邊緣檢測在計算機視覺、圖像分析等應用中起著重要的作用,為人們描述或識別目標以及解釋圖像提供了一個有價值的特征參數。本文較詳細地回顧了現有的邊緣檢測技術和方法,並對邊緣檢測的步驟作了總結。
    在微分法邊緣檢測中,邊緣定位與噪聲濾除是兩個相互矛盾的部分,很難同時得到很好的解決,這就是邊緣檢測的「兩難」問題。從這個難題出發,對實際圖像中可 能出現的七種邊緣類型分別進行數學模型描述。由於實際圖像比較復雜,往往包含多種邊緣類型,因此很難對其進行建模和分類。本章得到的結論為邊緣類型的分類 提供了依據。若能預先對邊緣類型進行分類,則可選取合適的平滑尺度,較好地解決邊緣檢測的「兩難」問題。
轉自:http://lican8341.blog.163.com/blog/static/96561527201021311272698/

數字圖像中邊緣檢測算法綜合研究相关推荐

  1. matlab 橙色字母,改善MATLAB中橙色的檢測

    我的任務之一是從16000圖像中檢測蟻羣中的某些顏色.所以,我已經用藍色,粉紅色和綠色做得非常好,但現在我需要改進對橙色的檢測.這對我來說有點棘手,因爲我是圖像處理領域的新手.我舉了一些例子,我做了什 ...

  2. matlab thetal,基於matlab的車道和車道線檢測樣例

    %% 初始化 % 使用這些來初始化下部分代碼的一些變量和系統對象 DrawPoly = 1; % 設置為0以繪制直線 NumRows = 120; % 要處理的視頻區的行數(視圖下部) MaxLane ...

  3. matlab contourf(data_100);,【MATLAB】contourf 基礎用法與對數作圖

    在 MATLAB 中有著堆積如山的繪圖指令. 通常想用時就找資料,用完就會忘記,然後重複這個過程. 經過第 N 次查資料之後,夏恩終於受夠了這個重複的過程啦! 這次就來記下 contourf 用法. ...

  4. 巴斯卡三角形 and 數字位移

    以下兩題是朋友的段考題, 朋友來問我我就幫他解了一下. Problem1 假設使用者輸入3, 電腦會印出: 123 312 231 現在使用者輸入5, 則電腦會印出這些東西: 12345 51234 ...

  5. java编程找出吸血鬼数字,找出四位數的所有吸血鬼數字(JAVA)

    /** * 找出四位數的所有吸血鬼數字 * 吸血鬼數字是指位數為偶數的數字,可以由一對數字相乘而得到,而這對數字各包含乘積的一半位數的數字,其中從最初的數字中選取的數字可以任意排序. * 以兩個0結尾 ...

  6. 孫丕恕:計算力已成為數字經濟先行指數 決定未來發展潛力

    中國網財經9月20日訊(記者暢帥帥)2018夏季達沃斯論壇9月18日至20日在天津召開."創新型社會"."智慧城市"等成為本屆夏季達沃斯論壇熱議的話題,浪潮集團 ...

  7. java三角形关键词,Java實現-數字三角形

    給定一個數字三角形,找到從頂部到底部的最小路徑和.每一步可以移動到下面一行的相鄰數字上.注意事項如果你只用額外空間復雜度O(n)的條件下完成可以獲得加分,其中n是數字三角形的總行數.您在真實的面試中是 ...

  8. 面試隨筆---數字轉RMB中文 之 我的实现(含图)

    面試隨筆---數字轉RMB中文 一文提到的问题我在上午徒手就我的思路做了代码演示,但后期参与谈论的人数超出我的预期,我觉得应该把他实现出来让更多朋友分享,我觉得值得肯定的地方是功能的扩展性以及代码的简 ...

  9. ABAP將數字輸出前面補0

    將數字輸出前面補0 Function: CONVERSION_EXIT_ALPHA_INPUT 程式碼 DATA: test(5),       value LIKE regup-wrbtr VALU ...

最新文章

  1. cookie共享子域名
  2. 修改服务器劫包,APP游戏TCP包被劫持篡改的一些解决方案
  3. springMVC3学习(四)--訪问静态文件如js,jpg,css
  4. 使用Python和OpenCV创建自己的“ CamScanner”
  5. Teams Bot 如何使用新的 System.Text.Json 库
  6. CNN的几种经典模型
  7. disp语句怎么格式 matlab_Matlab使用技巧总结-1
  8. 【Android Studio快捷键】之导入相应包声明(import packages)
  9. SQL Server 2019 Developer/Express 版本下载
  10. caffe安装简易教程
  11. Configuring CODESYS
  12. win10豆沙绿设置
  13. torchtext field.build_vocab问题
  14. 由温度转换实例学习python基本语法元素
  15. zbb20181210 CentOS第一次安装MySQL的完整步骤
  16. bzoj 4605 崂山白花蛇草水
  17. A tutorial on Principal Components Analysis | 主成分分析(PCA)教程
  18. 快递驿站取件管理系统|基于SpringBoot的快递栈系统设计与实现
  19. Java多线程模拟实现LOL中薇恩、死歌、剑圣的操作
  20. Java二维码工具类(超详细注释)

热门文章

  1. python公司网站毕业设计开题报告
  2. Apache Kafka教程A系列:简单生产者示例
  3. windows7安卓手机USB驱动失败的解决方案!
  4. 计算机课图画的变形教案,《义务教育课程标准实验教科书美术(四年级上册)》提示及教学要点...
  5. JXTA的安装和使用
  6. 打字不会学计算机,电脑打字基础知识、打字指法,不会的快来看哦!
  7. 规范化、归一化、标准化、中心化、正则化
  8. Algorithm Review 7 数学相关
  9. uploader.lib php,Lib/Upload.php · 跳跳虎1986/cwj - Gitee.com
  10. fluent支持python吗_Python与Fluent联合仿真设置