【 1. 邊緣檢測 】
邊緣檢測是圖像處理和計算機視覺中的基本問題,
邊緣檢測的目的是標識數字圖像中亮度變化明顯的點。圖像邊緣檢測大幅度地減少了數據量,並且剔除了可以認爲不相關的信息,保留了圖像重要的結構屬性。圖像屬性中的顯著變化通常反映了屬性的重要事件和變化。如下圖:
常用的邊緣檢測模板有 Laplacian 算子、Roberts 算子、Sobel 算子、 Kirsch 算子和 Prewitt 算子等。
canny (精明) 邊緣檢測的五個步驟:
- 使用高斯濾波器,以平滑圖像,濾除噪聲。
- 計算圖像中每個像素點的梯度強度和方向。
- 應用非極大值(Non-Maximum Suppression)抑制,以消除邊緣檢測帶來的雜散響應。
- 應用雙閾值(Double-Threshold)檢測來確定真實的和潛在的邊緣。
- 通過抑制孤立的弱邊緣最終完成邊緣檢測。
【 2. OpenCv圖片邊緣檢測 】
import cv2
image = cv2.imread('picture.jpg')# 讀取圖片
gray = cv2.cvtColor(image,cv2.COLOR_RGB2GRAY)# 轉換爲灰度圖片
canny_edg=cv2.Canny(gray,50,150)#進行canny邊緣檢測
cv2.imshow('cute boy',canny_edg) # 顯示圖片
cv2.waitKey(0) # 等待用戶關閉圖片窗口
cv2.destroyAllWindows()# 關閉窗口
原圖
邊緣圖片