圖像邊緣特征

? ? ?圖像邊緣是圖像的重要特征,是圖像中特性(如像素灰度、紋理等)分布的不連續處,圖像周圍特性有階躍變化或屋脊狀變化的那些像素集合。圖像的邊緣部分集中了圖像的大部分信息,一幅圖像的邊緣結構與特點往往是決定圖像特質的重要部分。圖像邊緣的另一個定義是指其周圍像素灰度變化不連續的那些像素的集合。邊緣廣泛存在于物體與背景之間、物體與物體之間,因此,邊緣是圖像分割、圖像理解及圖像識別的重要特征。
圖像邊緣檢測主要用于增強圖像中的輪廓邊緣、細節以及灰度跳變部分,形成完整的物體邊界,達到將物體從圖像中分離出來或將表示同一物體表面的區域檢測出來的目的。目前為止最通用的方法是檢測亮度值的不連續性,用一階和二階導數檢測的。
(1)微分法
微分法的目的是利用微分運算求信號的變化率,加強高頻分量的作用,從而使輪廓清晰。遵循如下兩個基本準則之一:找到亮度的一階導數在幅度上比指定的閾值大的地方;找到亮度的二階導數有零交叉的地方。
(2)差分邊緣檢測方法
利用像素灰度的一階導數算子在灰度迅速變化處得到高值來進行奇異點的檢測。它在某一點的值就代表該點的邊緣強度,通過對這些值設置閾值來進一步得到邊緣圖像。差分邊緣檢測方法是最原始、最基本的方法。但要求差分方向與邊緣方向垂直,這就需要對圖像的不同方向(一般為垂直方向、水平方向和對角線方向)都進行差分運算,增加了實際運算的繁瑣性,目前很少采用。
(3)Roberts邊緣檢測算子
Roberts邊緣檢測算子根據任意一對互相垂直方向上的差分可用來計算梯度的原理,采用對角線方向相鄰兩像素之差然后計算出Roberts的梯度幅度值.
Roberts檢測器較為簡單,但具有一些功能上的限制,例如,它是非對稱的,而且不能檢測諸如45°倍數的邊緣。然而,它還是經常用于硬件實現中,因為它既簡單又快速。
(4)Sobel邊緣檢測算子
對數字圖像的每個像素,考察它上下左右鄰點灰度的加權差,與之接近的鄰點的權大。
Sobel算子很容易在空間上實現,邊緣檢測效果較好,且受噪聲的影響也較小。鄰域增大抗噪性會更好,但計算量也會增大,得出的邊緣也會相應變粗。Sobel算子會檢測出許多偽邊緣,邊緣定位精度不夠高,在精度要求不高時是一種較常用的邊緣檢測方法。
(5)Prewitt邊緣檢測算子
圖像中的每個像素都用這兩個核作卷積,一個核對垂直邊緣影響最大,另一個核對水平邊緣影響最大。兩個卷積的絕對值的最大值作為該點的輸出值。不能簡單的將小于0的值處理為0,這樣會丟失信息。它比Sobel檢測器在計算上要簡單一些,但比較容易產生一些噪聲。
(6)拉普拉斯邊緣檢測算子
拉普拉斯邊緣檢測算子是一種二階微分算子,與其它邊緣檢測方法的不同之處在于,該方法是一種各向同性的檢測方法,即其邊緣的增強程度與邊緣的方向無關,從而可以滿足不同走向的邊緣銳化的要求。

? ? ?拉普拉斯算子自身很少被直接用作邊緣檢測,因為二階導數對噪聲具有無法接受的敏感性,它的幅度會產生雙邊緣,而且它不能檢測邊緣的方向。然而,當與其它邊緣檢測技術組合使用時,拉普拉斯算子是一種有效的補充方法。例如,雖然它的雙邊緣使得它不適合直接用于邊緣檢測,但該性質可用于邊緣定位。

? ? ?在MATLAB中可以由edge函數實現各算子對邊緣的檢測,其調用格式為:
? ? ?BW = edge(I,’METHOD’)—自動選擇閾值用指定的算子進行邊緣檢測;
? ? ?BW = edge(I,’METHOD’,THRESH)—根據給定的閾值THRESH用指定的算子進行邊緣檢測,忽略所有小于閾值的邊緣。當THRESH為空時,自動選擇閾值;
? ? ?[BW, THRESH] = edge(I,’METHOD’,…)—返回edge使用的閾值,以確定哪個梯度值足夠大到可以稱為邊緣點。
? ? ?其中,I為輸入圖像。返回圖像BW為與I同大的二值圖像,1表示邊緣,0表示非邊緣。I是unit8型、unit16型,或者是double型,BW是unit8型。
? ? METHOD:使用檢測算子的類型,經常使用的有:
? ? sobel:缺省值,用導數的sobel近似值檢測邊緣,那些梯度最大的點返回邊緣。
? ? roberts:用導數的roberts近似值檢測邊緣,那些梯度最大的點返回邊緣。
? ?prewitt:用導數的prewitt近似值檢測邊緣,那些梯度最大的點返回邊緣。
? ?LoG:用LoG算子檢測邊緣。
? Canny:用Canny算子檢測邊緣。
? THRESH:指定的閾值,所有不強于thresh的邊緣都被忽略。

? 由edge函數實現各算子對圖像的邊緣檢測
? clear all;
? I = imread('d:\office.bmp');
? I=rgb2gray(I);
? BW1 = edge(I,'sobel'); %利用Sobel算子進行邊緣檢測
? BW2 = edge(I,'roberts'); %利用roberts算子進行邊緣檢測
? BW3 = edge(I,'prewitt'); %利用prewitt算子進行邊緣檢測
? BW4 = edge(I,'log'); %利用log算子進行邊緣檢測
? BW5 = edge(I,'canny'); %利用canny算子進行邊緣檢測
? subplot(2,3,1),imshow(I)
? subplot(2,3,2),imshow(BW1)
? subplot(2,3,3),imshow(BW2)
? subplot(2,3,4),imshow(BW3)
? subplot(2,3,5),imshow(BW4)
?subplot(2,3,6),imshow(BW5)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247253.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247253.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247253.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HDU 6631 line symmetric(枚舉)

首先能想到的是至少有一對相鄰點或者中間間隔一個點的點對滿足軸對稱,那么接下來只需要枚舉剩下的點對是否滿足至多移動一個點可以滿足要求。 第一種情況,對于所有點對都滿足要求,那么Yes。 第二種情況,有一個點不滿足要求&#x…

學習數字圖像處理經驗談

一、面向應用:層層分解、抓住要點 我們學習數字圖像處理的最終目的還是應用,不管是用它來研制產品還是研發項目抑或是研究課題,都要用數字圖像處理的理論、方法和技術來解決實際問題。在此過程中,提高效率是非常重要的&#xff0c…

讀javascript百煉成仙笑死筆記一

“自然是這樣的,但是我現在這樣改一下,你說結果是多少呢?”葉小凡詭異地笑了笑,然后打出一段比較奇特的代碼。 var a 1; var b; var sum (b a --a) a-- b; “噗!”看到這段代碼,對面弟子差點一口老血…

C#調用存儲過程的通用類

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data.SqlClient;usingSystem.Collections;usingSystem.Data;//摘要:數據訪問助手。//作者:ZhiQiao//日期:2008/07/02namespaceZhiQiao.DataAccessHelper{ //存…

圖靈獎得主(一)

本文轉自:http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A A.M. Turing Award ACMs most prestigious technical award is accompanied by a prize of $25,000. It is given to an individual selected fo…

react-router-dom@6獲取路由傳參

目錄 參數獲取 1、子路由形式攜帶 2、問號(?)形式參數 3、事件跳轉傳參 router/index.tsx import App from "App"; import Home from "pages/Home"; import List from "pages/List"; import Detail from "pages/Detail"; import…

圖靈獎得主(二)

本文轉自:http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 1987年度的圖靈獎授予了IBM沃特森研究中心老資格的研究員 約翰科克(Johncocke)。 科克是從機械到數學、又從數學轉到 計算機方向上來的學者。…

jQuery效果之滑動

jQuery 滑動方法有三種:slideDown()、slideUp()、slideToggle()。 jQuery slideDown() 方法用于向下滑動元素, 語法:$(selector).slideDown(speed,callback); 可選的 speed 參數規定效果的時長。它可以取以下值:"slow"、…

Error: This command has to be run with superuser privileges (under the root user on most systems).

意思是錯誤:此命令必須以超級用戶權限(在大多數系統上以root用戶權限)運行。所以當前的用戶是普通用戶,需要切換為超級用戶(root用戶)先輸入在命令行中輸入 su root 然后會出現Password:&#…

圖靈獎得主(三)

本文轉自:本文轉自:http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 繼1979年度圖靈獎首次授予一位加拿大學者K.E.Iverson之后, 1989年度的圖靈 獎又一次授予加拿大學者威廉凱亨(Willia…

對微信公共號的理解

通過redirect_uri獲取code 通過code和appid 獲取access_token 進行鑒權 轉載于:https://www.cnblogs.com/zhouyideboke/p/11309752.html

vue3 v-model變化

概覽 就變化內容而言,此部分屬于高階內容: 非兼容:用于自定義組件時,v-model的 prop 和事件默認名稱已更改: prop:value -> modelValue;event:input -> update:modelValue&a…

圖靈獎得主(四)

本文轉自:本文轉自:本文轉自:http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 1991年度的圖靈獎授予了愛丁堡大學計算機科學系教授羅 賓米爾納(Robin Milner)。米爾納是繼M.V.Wilkes(1…

sql 日期類型空值等于 1900-01-01

SQL server 中查詢:select cast( as datetime) 結果:1900-01-01 00:00:00.000 做為判斷條件的話,要注意。不能直接 轉載于:https://www.cnblogs.com/meng9527/p/11311765.html

koa洋蔥模型

Koa 和 Express 都會使用到中間件 Express的中間件是順序執行,從第一個中間件執行到最后一個中間件,發出響應如上圖 Koa是從第一個中間件開始執行,遇到 next 進入下一個中間件,一直執行到最后一個中間件,在逆序&#x…

圖靈獎得主(五)

[1993]斯坦恩斯--"打工"帶來的機遇 斯坦恩斯是學數學出身的。1958年他在卡爾頓學院(Carlton College)取 得數學學士學位后進入普林斯頓大學研究生院,用了3年時間就 取得博士學位,其博士論文課題是關于博奕論的。 斯坦恩斯跨進計算機科…

koa后端允許跨域

舉個例子 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"widthdevice-width…

python面向對象之繼承

面向對象之繼承 什么是面向對象的繼承&#xff1f; 繼承&#xff08;英語&#xff1a;inheritance&#xff09;是面向對象軟件技術當中的一個概念。如果一個類別A“繼承自”另一個類別B&#xff0c;就把這個A稱 為“B的子類別”&#xff0c;而把B稱為“A的父類別”也可以稱“B是…

美國正面臨“人才泡沫”破裂危機?

&#xff08;Jason Lane和Kevin Kinser/文&#xff09;最近&#xff0c;與教育有關的種種問題在美國社會引起了廣泛討論。首先巨額的學生貸款問題&#xff1a;根據美聯儲紐約分行在2012年11月發布的一份報告&#xff0c;全美學生貸款總額已經達到420億美元&#xff0c;其中新增…

ngrx學習筆記

什么是ngrx ngrx是Angular基于Rxjs的狀態管理&#xff0c;保存了Redux的核心概念&#xff0c;并使用RxJs擴展的Redux實現。使用Observable來簡化監聽事件和訂閱等操作。 在看這篇文章之前&#xff0c;已經假設你已了解rxjs和redux。 有條件的話請查看官方文檔進行學習理解。 所…