前文傳送門: 「Python 圖像處理 OpenCV (1):入門」 「Python 圖像處理 OpenCV (2):像素處理與 Numpy 操作以及 Matplotlib 显示圖像」 「Python 圖像處理 OpenCV (3):圖像屬性、圖像感興趣 ROI 區域及通道處理」 「Python 圖像處理 OpenCV (4):圖像算數運算以及修改顏色空間」 「Python 圖像處理 OpenCV (5):圖像的幾何變換」 「Python 圖像處理 OpenCV (6):圖像的閾值處理」 「Python 圖像處理 OpenCV (7):圖像平滑(濾波)處理」 「Python 圖像處理 OpenCV (8):圖像腐蝕與圖像膨脹」 「Python 圖像處理 OpenCV (9):圖像處理形態學開運算、閉運算以及梯度運算」 引言 今天是圖形處理形態學的最後一篇,我們介紹頂帽運算和黑帽運算。 建議先閱讀前面兩篇圖像處理的內容: 「Python 圖像處理 OpenCV (8):圖像腐蝕與圖像膨脹」 「Python 圖像處理 OpenCV (9):圖像處理形態學開運算、閉運算以及梯度運算」 形態學之頂帽運算 圖像處理頂帽運算是一個獲取圖像噪聲的運算,它是由原始圖像減去圖像開運算而得到的結果: 頂帽運算 = 原始圖像 - 開運算 圖像頂帽運算同樣是使用形態學擴展函數 morphologyEx() ,它的參數是 MORPH_TOPHAT ,示例如下: import cv2 as cv import numpy as np import matplotlib.pyplot as plt # 讀取圖片 source = cv.imread("demo_noise_white.jpg", cv.IMREAD_GRAYSCALE) # 設置卷積核 kernel = np.ones((5, 5), np.uint8) # 開運算 open = cv.morphologyEx(source, cv.MORPH_OPEN, kernel) # 頂帽運算 dst = cv.morphologyEx(source, cv.MORPH_TOPHAT, kernel)