OpenCV開運算(Opening)閉運算(Closing)形態梯度(Gradient)TopHat、BlackHat
阿新 • • 發佈:2018-12-10
程式碼位置:15-OpeningClosingGradientTophatBlackhat.py
import cv2 kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3)) img = cv2.imread('./res/jeep.jpeg') cv2.imshow('org', img) opening = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel, iterations=2) cv2.imshow('open', opening) closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel, iterations=2) cv2.imshow('close', closing) gradient = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel) cv2.imshow('gradient', gradient) tophat = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel) cv2.imshow('tophat', tophat) blackhat = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel) cv2.imshow('blackhat', blackhat) cv2.waitKey(0) cv2.destroyAllWindows()
- Opening開運算:先腐蝕再開放叫開運算,作用能消除圖片上的小標點。
- Closing閉運算:線膨脹後腐蝕。作用是消除圖片上的小黑點。
- Gradient 用於獲取圖片的輪廓,形態梯度圖 = 彭長圖 - 腐蝕圖
- Top Hat = 原圖 - 開運算圖,顯示出原圖去除掉的白色部分。
- Black Hat = 原圖 - 閉運算, 顯示出原圖去除掉的黑色部分。
效果圖: