0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

圖像處理常用算法(基礎(chǔ))

機器學習與人工智能 ? 來源:工程師李察 ? 2019-04-30 15:26 ? 次閱讀

同圖像灰度不同,邊界處一般會有明顯的邊緣,利用此特征可以分割圖像。需要說明的是:邊緣和物體間的邊界并不等同,邊緣指的是圖像中像素的值有突變的地方,而物體間的邊界指的是現(xiàn)實場景中的存在于物體之間的邊界。有可能有邊緣的地方并非邊界,也有可能邊界的地方并無邊緣,因為現(xiàn)實世界中的物體是三維的,而圖像只具有二維信息,從三維到二維的投影成像不可避免的會丟失一部分信息;另外,成像過程中的光照和噪聲也是不可避免的重要因素。正是因為這些原因,基于邊緣的圖像分割仍然是當前圖像研究中的世界級難題,目前研究者正在試圖在邊緣提取中加入高層的語義信息。

在實際的圖像分割中,往往只用到一階和二階導數(shù),雖然,原理上,可以用更高階的導數(shù),但是,因為噪聲的影響,在純粹二階的導數(shù)操作中就會出現(xiàn)對噪聲的敏感現(xiàn)象,三階以上的導數(shù)信息往往失去了應(yīng)用價值。二階導數(shù)還可以說明灰度突變的類型。在有些情況下,如灰度變化均勻的圖像,只利用一階導數(shù)可能找不到邊界,此時二階導數(shù)就能提供很有用的信息。二階導數(shù)對噪聲也比較敏感,解決的方法是先對圖像進行平滑濾波,消除部分噪聲,再進行邊緣檢測。不過,利用二階導數(shù)信息的算法是基于過零檢測的,因此得到的邊緣點數(shù)比較少,有利于后繼的處理和識別工作。

各種算子的存在就是對這種導數(shù)分割原理進行的實例化計算,是為了在計算過程中直接使用的一種計算單位。

1.Sobel算子

其主要用于邊緣檢測,在技術(shù)上它是以離散型的差分算子,用來運算圖像亮度函數(shù)的梯度的近似值, Sobel算子是典型的基于一階導數(shù)的邊緣檢測算子,由于該算子中引入了類似局部平均的運算,因此對噪聲具有平滑作用,能很好的消除噪聲的影響。Sobel算子對于象素的位置的影響做了加權(quán),與Prewitt算子、Roberts算子相比因此效果更好。

Sobel算子包含兩組3x3的矩陣,分別為橫向及縱向模板,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。實際使用中,常用如下兩個模板來檢測圖像邊緣。

檢測水平邊沿 橫向模板 :

檢測垂直平邊沿 縱向模板:

圖像的每一個像素的橫向及縱向梯度近似值可用以下的公式結(jié)合,來計算梯度的大小。

然后可用以下公式計算梯度方向。

在以上例子中,如果以上的角度Θ等于零,即代表圖像該處擁有縱向邊緣,左方較右方暗。

缺點是Sobel算子并沒有將圖像的主題與背景嚴格地區(qū)分開來,換言之就是Sobel算子并沒有基于圖像灰度進行處理,由于Sobel算子并沒有嚴格地模擬人的視覺生理特征,所以提取的圖像輪廓有時并不能令人滿意。

2. Isotropic Sobel算子

Sobel算子另一種形式是(Isotropic Sobel)算子,加權(quán)平均算子,權(quán)值反比于鄰點與中心點的距離,當沿不同方向檢測邊緣時梯度幅度一致,就是通常所說的各向同性Sobel(Isotropic Sobel)算子。模板也有兩個,一個是檢測水平邊沿的 ,另一個是檢測垂直平邊沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加權(quán)系數(shù)更為準確,在檢測不同方向的邊沿時梯度的幅度一致。

3.Roberts算子

羅伯茨算子、Roberts算子是一種最簡單的算子,是一種利用局部差分算子尋找邊緣的算子,他采用對角線方向相鄰兩象素之差近似梯度幅值檢測邊緣。檢測垂直邊緣的效果好于斜向邊緣,定位精度高,對噪聲敏感,無法抑制噪聲的影響。1963年,Roberts提出了這種尋找邊緣的算子。

Roberts邊緣算子是一個2x2的模板,采用的是對角方向相鄰的兩個像素之差。從圖像處理的實際效果來看,邊緣定位較準,對噪聲敏感。適用于邊緣明顯且噪聲較少的圖像分割。Roberts邊緣檢測算子是一種利用局部差分算子尋找邊緣的算子,Robert算子圖像處理后結(jié)果邊緣不是很平滑。經(jīng)分析,由于Robert算子通常會在圖像邊緣附近的區(qū)域內(nèi)產(chǎn)生較寬的響應(yīng),故采用上述算子檢測的邊緣圖像常需做細化處理,邊緣定位的精度不是很高。

4. Prewitt算子

Prewitt算子是一種一階微分算子的邊緣檢測,利用像素點上下、左右鄰點的灰度差,在邊緣處達到極值檢測邊緣,去掉部分偽邊緣,對噪聲具有平滑作用 。其原理是在圖像空間利用兩個方向模板與圖像進行鄰域卷積來完成的,這兩個方向模板一個檢測水平邊緣,一個檢測垂直邊緣。

對數(shù)字圖像f(x,y),Prewitt算子的定義如下:

G(i)=|[f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)]-[f(i+1,j-1)+f(i+1,j)+f(i+1,j+1)]|

G(j)=|[f(i-1,j+1)+f(i,j+1)+f(i+1,j+1)]-[f(i-1,j-1)+f(i,j-1)+f(i+1,j-1)]|

則 P(i,j)=max[G(i),G(j)]或 P(i,j)=G(i)+G(j)

經(jīng)典Prewitt算子認為:凡灰度新值大于或等于閾值的像素點都是邊緣點。即選擇適當?shù)拈撝礣,若P(i,j)≥T,則(i,j)為邊緣點,P(i,j)為邊緣圖像。這種判定是欠合理的,會造成邊緣點的誤判,因為許多噪聲點的灰度值也很大,而且對于幅值較小的邊緣點,其邊緣反而丟失了。

Prewitt算子對噪聲有抑制作用,抑制噪聲的原理是通過像素平均,但是像素平均相當于對圖像的低通濾波,所以Prewitt算子對邊緣的定位不如Roberts算子。

因為平均能減少或消除噪聲,Prewitt梯度算子法就是先求平均,再求差分來求梯度。水平和垂直梯度模板分別為:

檢測水平邊沿 橫向模板 :

檢測垂直平邊沿 縱向模板:

該算子與Sobel算子類似,只是權(quán)值有所變化,但兩者實現(xiàn)起來功能還是有差距的,據(jù)經(jīng)驗得知Sobel要比Prewitt更能準確檢測圖像邊緣。

5.Laplacian算子

Laplace算子是一種各向同性算子,二階微分算子,在只關(guān)心邊緣的位置而不考慮其周圍的象素灰度差值時比較合適。Laplace算子對孤立象素的響應(yīng)要比對邊緣或線的響應(yīng)要更強烈,因此只適用于無噪聲圖象。存在噪聲情況下,使用Laplacian算子檢測邊緣之前需要先進行低通濾波。所以,通常的分割算法都是把Laplacian算子和平滑算子結(jié)合起來生成一個新的模板。

拉普拉斯算子也是最簡單的各向同性微分算子,具有旋轉(zhuǎn)不變性。一個二維圖像函數(shù)的拉普拉斯變換是各向同性的二階導數(shù),定義了更適合于數(shù)字圖像處理,將拉式算子表示為離散形式:

另外,拉普拉斯算子還可以表示成模板的形式,如下圖所示,

離散拉普拉斯算子的模板:

其擴展模板:

拉式算子用來改善因擴散效應(yīng)的模糊特別有效,因為它符合降制模型。擴散效應(yīng)是成像過程中經(jīng)常發(fā)生的現(xiàn)象。

Laplacian算子一般不以其原始形式用于邊緣檢測,因為其作為一個二階導數(shù),Laplacian算子對噪聲具有無法接受的敏感性;同時其幅值產(chǎn)生算邊緣,這是復雜的分割不希望有的結(jié)果;最后Laplacian算子不能檢測邊緣的方向;所以Laplacian在分割中所起的作用包括:(1)利用它的零交叉性質(zhì)進行邊緣定位;(2)確定一個像素是在一條邊緣暗的一面還是亮的一面;一般使用的是高斯型拉普拉斯算子(Laplacian of a Gaussian,LoG),由于二階導數(shù)是線性運算,利用LoG卷積一幅圖像與首先使用高斯型平滑函數(shù)卷積改圖像,然后計算所得結(jié)果的拉普拉斯是一樣的。所以在LoG公式中使用高斯函數(shù)的目的就是對圖像進行平滑處理,使用Laplacian算子的目的是提供一幅用零交叉確定邊緣位置的圖像;圖像的平滑處理減少了噪聲的影響并且它的主要作用還是抵消由Laplacian算子的二階導數(shù)引起的逐漸增加的噪聲影響。

6.Canny算子

該算子功能比前面幾種都要好,但是它實現(xiàn)起來較為麻煩,Canny算子是一個具有濾波,增強,檢測的多階段的優(yōu)化算子,在進行處理前,Canny算子先利用高斯平滑濾波器來平滑圖像以除去噪聲,Canny分割算法采用一階偏導的有限差分來計算梯度幅值和方向,在處理過程中,Canny算子還將經(jīng)過一個非極大值抑制的過程,最后Canny算子還采用兩個閾值來連接邊緣。

Canny邊緣檢測算法

step1: 用高斯濾波器平滑圖象;

step2: 用一階偏導的有限差分來計算梯度的幅值和方向;

step3: 對梯度幅值進行非極大值抑制

step4: 用雙閾值算法檢測和連接邊緣

詳解:

http://www.cnblogs.com/cfantaisie/archive/2011/06/05/2073168.html

(1)圖象邊緣檢測必須滿足兩個條件:一能有效地抑制噪聲;二必須盡量精確確定邊緣的位置。

(2)根據(jù)對信噪比與定位乘積進行測度,得到最優(yōu)化逼近算子。這就是Canny邊緣檢測算子。

(3)類似與Marr(LoG)邊緣檢測方法,也屬于先平滑后求導數(shù)的方法。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4575

    瀏覽量

    92337
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1078

    瀏覽量

    40345
  • 模板
    +關(guān)注

    關(guān)注

    0

    文章

    108

    瀏覽量

    20542

原文標題:圖像處理常用算法(基礎(chǔ))

文章出處:【微信號:datawork,微信公眾號:機器學習與人工智能】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA在圖像處理領(lǐng)域的優(yōu)勢有哪些?

    。這種并行處理能力使得FPGA在處理大規(guī)模圖像數(shù)據(jù)時表現(xiàn)出色,能夠?qū)崟r完成復雜的圖像處理算法。 二、高靈活性 FPGA具有很高的靈活性,可以
    發(fā)表于 10-09 14:36

    常用的ADC濾波算法有哪些

    ADC(模數(shù)轉(zhuǎn)換器)濾波算法在信號處理中起著至關(guān)重要的作用,它們能夠幫助我們提取出有用的信號,同時濾除噪聲和干擾。以下是常用的ADC濾波算法詳解,這些
    的頭像 發(fā)表于 10-08 14:35 ?124次閱讀

    圖像識別算法有哪幾種

    圖像識別算法是計算機視覺領(lǐng)域的核心技術(shù)之一,它通過分析和處理圖像數(shù)據(jù),實現(xiàn)對圖像中的目標、場景和物體的識別和分類。
    的頭像 發(fā)表于 07-16 11:22 ?750次閱讀

    圖像識別算法都有哪些方法

    傳統(tǒng)方法和基于深度學習的方法。 傳統(tǒng)圖像識別算法 1.1 邊緣檢測 邊緣檢測是圖像識別的基礎(chǔ),它用于檢測圖像中的邊緣信息。邊緣是圖像中亮度變
    的頭像 發(fā)表于 07-16 11:14 ?4536次閱讀

    圖像識別算法的優(yōu)缺點有哪些

    圖像識別算法可以快速地處理大量圖像數(shù)據(jù),提高工作效率。與傳統(tǒng)的人工識別方法相比,圖像識別算法
    的頭像 發(fā)表于 07-16 11:09 ?982次閱讀

    opencv圖像識別有什么算法

    OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫,提供了大量的圖像處理和計算機視覺相關(guān)的算法。以下是一些常見的OpenCV
    的頭像 發(fā)表于 07-16 10:40 ?578次閱讀

    FPGA設(shè)計經(jīng)驗之圖像處理

    今天和大俠簡單聊一聊基于FPGA的圖像處理,之前也和各位大俠聊過相關(guān)的圖像處理,這里面也超鏈接了幾篇,具體如下: 圖像邊緣檢測
    發(fā)表于 06-12 16:26

    基于FPGA的實時邊緣檢測系統(tǒng)設(shè)計,Sobel圖像邊緣檢測,F(xiàn)PGA圖像處理

    ,利用乒乓操作和 SDRAM 緩存圖像,可以實時提取視頻圖像的邊緣特征。文中對比了 MATLAB 和 FPGA 的處理效果,由于 FPGA 對算法采取了硬件加速,所以相較于 MATL
    發(fā)表于 05-24 07:45

    關(guān)于數(shù)字圖像處理常用技巧

    圖像生成采集處理過程中都會不同程度的引入各種噪聲,因此會導致圖像的質(zhì)量變差。從而影響對圖像的識別。所以必須要對圖像進行濾波,所以必須對
    的頭像 發(fā)表于 02-19 09:27 ?747次閱讀
    關(guān)于數(shù)字<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>的<b class='flag-5'>常用</b>技巧

    FPGA圖像處理之CLAHE算法

    在FPGA圖像處理--CLAHE算法(一)中介紹了為啥要用CLAHE算法來做圖像增強。
    的頭像 發(fā)表于 01-04 12:23 ?2224次閱讀
    FPGA<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>之CLAHE<b class='flag-5'>算法</b>

    FPGA圖像處理-CLAHE算法介紹(一)

    在介紹CLAHE算法之前必須要先提一下直方圖均衡化,直方圖均衡化算法是一種常見的圖像增強算法,可以讓像素的亮度分配的更加均勻從而獲得一個比較好的觀察效果。
    的頭像 發(fā)表于 01-02 13:32 ?1592次閱讀
    FPGA<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>-CLAHE<b class='flag-5'>算法</b>介紹(一)

    FPGA圖像處理方法

    圖像細節(jié)。 FPGA 圖像處理方法 1、圖像增強 兩大方法:空間域方法和時間域方法(以后再詳述) 2、圖像濾波 (1)平滑空間 濾波器 (2
    的頭像 發(fā)表于 12-02 13:15 ?961次閱讀

    圖像處理算法——邊緣檢測

    基于邊緣檢測的分析不易受整體光照強度變化的影響,同時利用邊緣信息容易凸顯目標信息和達到簡化處理的目的,因此很多圖像理解方法都以邊緣為基礎(chǔ)。邊緣檢測強調(diào)的是圖像對比度。
    的頭像 發(fā)表于 11-30 16:56 ?858次閱讀
    <b class='flag-5'>圖像</b><b class='flag-5'>處理算法</b>——邊緣檢測

    常用圖像處理模塊是什么?

    在實際應(yīng)用中常用圖像處理模塊有哪些
    發(fā)表于 10-30 06:20

    機器視覺之圖像增強和圖像處理

    對原始獲取圖像進行一系列的運算處理,稱為圖像處理。圖像處理是機器視覺技術(shù)的方法基礎(chǔ),包括
    發(fā)表于 10-23 10:43 ?465次閱讀
    機器視覺之<b class='flag-5'>圖像</b>增強和<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>