OpenCV图像梯度(Sobel和Scharr)
生活随笔
收集整理的這篇文章主要介紹了
OpenCV图像梯度(Sobel和Scharr)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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/
總結
以上是生活随笔為你收集整理的OpenCV图像梯度(Sobel和Scharr)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 使用itextPdf7操作pd
- 下一篇: python操作word文档(pytho