OpenCV影像梯度(Sobel和Scharr)
- 1 影像梯度是什么?
- 2 影像梯度的用途
- 3 影像梯度的使用
- 參考
這篇博客將介紹影像漸變以及如何使用OpenCV的cv2.Sobel計算Sobel漸變和Scharr漸變,
1 影像梯度是什么?
影像梯度是許多計算機視覺和影像處理程式的基本組成部分,
- 我們使用梯度來檢測影像中的邊緣,這使得我們能夠在影像中找到物體的輪廓和邊緣線;
- 我們使用它們作為通過特征提取量化影像的輸入-事實上,非常成功和著名的影像描述符,如定向梯度直方圖和SIFT是建立在影像梯度表示的基礎上的;
- 梯度影像甚至被用來構造顯著性圖,突出影像的主題;
2 影像梯度的用途
影像梯度的主要應用在于邊緣檢測,邊緣檢測是在影像中尋找輪廓/邊緣的程序,它揭示了影像中物體的結構資訊,因此,邊緣可以對應于:
- 影像中物件的邊界
- 影像中陰影或光照條件的邊界
- 物件中“區域”的邊界
影像梯度定義為影像強度的方向變化,
或者更簡單地說,在輸入(灰度)影像的每個像素處,梯度測量給定方向上像素強度的變化,通過估計方向或方向以及大小(即方向的變化有多大),能夠檢測影像中看起來像邊緣的區域,
梯度幅度(gradient magnitude)用來衡量影像強度的變化有多大,梯度幅度是一個實值數字,它量化了強度變化的“強度”,
梯度方向(gradient orientation)用于確定強度變化的方向,顧名思義,梯度方向會給出一個角度或𝜃 ,用來量化變化的方向,
弧度(radians)轉角度(degrees): 弧度*180/pi = 角度
3 影像梯度的使用
- Sobel和Scharr核,它們是卷積算子,使用OpenCV和cv2.Sobel可自動計算影像梯度
當量化和抽象地表示影像時,梯度幅度和方向有助于獲得優秀的特征和影像描述符,
但是對于邊緣檢測,梯度表示對區域噪聲非常敏感,將需要添加更多的步驟來創建一個實際的健壯的邊緣檢測器,
Soble核如下:

Scharr核如下,比Soble核能獲得更好的梯度近似值:

參考
- https://www.pyimagesearch.com/2021/05/12/image-gradients-with-opencv-sobel-and-scharr/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297229.html
標籤:其他
上一篇:opencv深度圖可視化

