數學形態學梯度¶
概要¶
數學形態學梯度, 就是為了獲得圖像的邊緣.
keywords 數學形態學 圖像邊緣
數學形態學梯度 gradient-明確國界¶
關于數學形態學, 阿凱這里簡單提一下.
數學形態學梯度 = 圖像膨脹 - 圖像腐蝕 從而獲取到圖像的邊緣.
gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)
源代碼
src/gradient_demo_v1.py
''' 數學形態學 獲取形態學梯度 gradient ''' import cv2 import numpy as np # 讀入灰度圖 img = cv2.imread("dao-bin.png", flags=cv2.IMREAD_GRAYSCALE) # 創建 核 kernel = np.ones((5,5), np.uint8) # 獲取形態學梯度 gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel) cv2.imwrite('dao_gradient_k5.png', np.hstack((img, gradient)))
阿凱用opencv自帶的邏輯運算, 也可以實現形態學梯度.
別著急, 在二值化邏輯運算阿凱會介紹opencv的二進制邏輯運算.
源代碼
src/gradient_demo_v2.py
''' 數學形態學 獲取形態學梯度 gradient ''' import cv2 import numpy as np # 讀入灰度圖 img = cv2.imread("dao-bin.png", flags=cv2.IMREAD_GRAYSCALE) # 創建 核 kernel = np.ones((5,5), np.uint8) # 獲取形態學梯度 erode = cv2.erode(img, kernel) dilate = cv2.dilate(img,kernel) gradient = cv2.bitwise_xor(dilate, erode) cv2.imwrite('dao_gradient_k5_v2.png', np.hstack((img, gradient)))