Python OpenCV3 膨胀(dilation) 收缩(erosion)
膨胀处理与缩小处理
膨胀处理是指把一个pixel如果是1他的四面八方也会因为膨胀而变成1
缩小处理则是把1的周围变成0
主要用3×3的行列式来定义例如
[[1, 1, 1]
[1, 1, 1]
[1, 1, 1]]
的行列式的话就是四面八方都会改变
但是
[[0, 1, 0]
[1, 1, 1]
[0, 1, 0]]的行列式的话就只有上下左右会改变
原图
经过膨胀处理 (5次)
import numpy as np import cv2 try: img = cv2.imread('kemofure.jpg') if img is None: print('Fail') import sys sys.exit() kernal = np.ones((3, 3), np.uint8) dst = cv2.dilate(img, kernal, iterations = 5) cv2.imwrite('dilate.jpg', dst) cv2.waitKey(10) cv2.destroyAllWindows() cv2.waitKey(1) except: import sys print("Error: ", sys.exc_info()[0]) print(sys.exc_info()[1]) import traceback print(traceback.format_tb(sys.exc_info()[2]))
经过缩小处理
import numpy as np import cv2 try: img = cv2.imread('kemofure.jpg') if img is None: print('Fail') import sys sys.exit() kernal = np.ones((3, 3), np.uint8) dst = cv2.erode(img, kernal, iterations = 5) cv2.imwrite('dilate.jpg', dst) cv2.waitKey(10) cv2.destroyAllWindows() cv2.waitKey(1) except: import sys print("Error: ", sys.exc_info()[0]) print(sys.exc_info()[1]) import traceback print(traceback.format_tb(sys.exc_info()[2]))