當前位置:編程學習大全網 - 源碼下載 - 正在處理-opencv-10。圖像銳化和邊緣檢測

正在處理-opencv-10。圖像銳化和邊緣檢測

Roberts算子又稱交叉差分算法,是壹種基於交叉差分的梯度算法,通過局部差分計算來檢測邊緣線。它通常用於處理具有陡峭和低噪聲的圖像。當圖像邊緣接近正負45度時,這種算法的處理效果比較理想。其缺點是邊緣定位不準確,提取的邊緣線較粗。

Prewitt是壹種用於圖像邊緣檢測的微分算子,其原理是利用特定區域內像素灰度值產生的差異來實現邊緣檢測。由於Prewitt算子使用3-3模板計算區域內的像素值,而Robert算子的模板是2-2,因此Prewitt算子的邊緣檢測結果在水平和垂直方向都比Robert算子更明顯。Prewitt算子適用於識別噪聲較多、漸變的圖像。

dst = filter2D(src,ddepth,kernel[,dst[,anchor[,delta[,borderType]]])

RSobel算子是壹種用於邊緣檢測的離散微分算子,它結合了高斯平滑和微分求導。利用算子計算圖像亮度的近似值,根據圖像邊緣旁邊的亮度,將區域內超過壹定數量的特定點記錄為邊緣。Sobel算子在Prewitt算子中加入了權重的概念,認為相鄰點之間的距離對當前像素的影響不同,距離越近對當前像素的影響越大,從而銳化圖像,突出邊緣輪廓。Sobel算子邊緣定位更準確,常用於噪聲較多、灰度漸變的圖像。

Sobel算子根據上下像素和左右鄰居的灰度加權差在邊緣處達到極值的現象來檢測邊緣。它可以平滑噪聲並提供更準確的邊緣方向信息。因為Sobel算子結合了高斯平滑和微分求導(微分),所以結果會有更多的抗噪性。Sobel算子是精度不是很高時常用的邊緣檢測方法。

dst = Sobel(src,ddepth,dx,dy[,dst[,ksize[,scale[,delta[,borderType]]])

經過Sobel算子處理後,我們還需要調用convertScaleAbs()函數計算絕對值,將圖像轉換成8位圖進行顯示。

dst = convertScaleAbs(src[,dst[,alpha[,beta]])

拉普拉斯算子是N維歐氏空間中的二階微分算子,常用於圖像增強和邊緣提取。它通過灰度差計算鄰域內的像素。基本流程是:判斷圖像中心像素的灰度值及其周圍其他像素的灰度值,如果中心像素的灰度值較高,則提升中心像素的灰度值;反之,降低中心像素的灰度,從而實現圖像銳化操作。在算法實現中,拉普拉斯算子計算鄰域中心像素在四個或八個方向上的梯度,然後將梯度相加,判斷中心像素的灰度與鄰域其他像素灰度的關系,最後通過梯度運算的結果調整像素灰度。

拉普拉斯算子分為四個鄰域和八個鄰域,其中四個鄰域用於計算鄰域中心像素在四個方向上的梯度,八個鄰域用於計算八個方向上的梯度。當鄰域內像素灰度相同時,模板的卷積運算結果為0;當中心像素的灰度高於鄰域內其他像素的平均灰度時,模板的卷積運算結果為正;當中心像素的灰度低於鄰域中其他像素的平均灰度時,模板的卷積為負。用適當的弱化因子處理卷積運算的結果,並將其加到原始中心像素上,可以銳化卷積運算的結果。

dst =拉普拉斯(src,ddepth[,dst[,ksize[,scale[,delta[,borderType]]])

由於Sobel算子在計算相對較小的核時,導數的近似計算精度相對較低,比如壹個Sobel算子為33,當梯度角接近水平或垂直方向時,其不準確性變得越來越明顯。Scharr算子和Sobel算子壹樣快,但是精度更高,特別是在計算小核的情況下,所以更推薦使用Scharr算子,利用3*3濾波器實現圖像邊緣提取。

Scharr算子又稱Scharr濾波器,也用於計算X或Y方向的圖像差,在OpenCV中主要是與Sobel算子配合存在。Scharr算子的函數原型如下,除了沒有ksize參數之外,和Sobel算子幾乎壹樣。

dst = Scharr(src,ddepth,dx,dy[,dst[,scale[,delta[,borderType]]])

Canny邊緣檢測算子(多級邊緣檢測算法)是廣泛應用於邊緣檢測的標準算法。它的目標是找到壹個最佳的邊緣檢測方案,或者找到圖像中灰度變化最大的位置。最佳邊緣檢測主要由三個標準來評價:低錯誤率、高定位和最小響應。

Canny算子的實現步驟如下:

edges = Canny(image,threshold1,threshold2[,edges[,apertureSize[,L2gradient]])

LOG(高斯的拉普拉斯算子)邊緣檢測算子也叫Marr & amp;Hildreth算子,根據圖像的信噪比找到邊緣檢測的最佳濾波器。該算法首先用高斯濾波器對圖像進行濾波,然後計算其拉普拉斯二階導數,根據二階導數的過零點來檢測圖像的邊緣,即通過檢測濾波結果的過零點來獲得圖像或物體的邊緣。

LOG算子要兼顧噪聲抑制和邊緣檢測,結合高斯平滑濾波和拉普拉斯銳化濾波,先平滑掉噪聲再檢測邊緣,這樣效果會更好。該算子類似於視覺生理學中的數學模型,因此在圖像處理領域得到了廣泛的應用。它具有抗幹擾能力強、邊界定位精度高、邊緣連續性好的特點,能有效提取對比度較弱的邊界。

  • 上一篇:《馬丁·伊登》結束遊戲,不如結束自己
  • 下一篇:大疆無人機是哪裏生產的
  • copyright 2024編程學習大全網