OpenCV基本操作(开闭运算)

一. 基础铺垫

          图像的开闭运算是在图像膨胀腐蚀的基础上得到的,图像膨胀腐蚀可参考:膨胀与腐蚀

          通俗理解:膨胀即"增肥", 腐蚀即"减肥"。

二. 开闭运算

         开运算:先腐蚀,再膨胀。一般用来去除物体外边的毛刺。

         闭运算:先膨胀,再腐蚀。一般用来去掉物体内部缺陷。

         一个小例子:

import cv2
import numpy as np


if __name__ == "__main__":
    img_mask = cv2.imread("test.jpg")

    # 执行两次开操作(先腐蚀后膨胀),去掉毛刺
    kernel1 = np.ones((80,80), dtype=np.uint8)
    mask = cv2.morphologyEx(img_mask, cv2.MORPH_OPEN, kernel1, 2)

    # 执行两次闭操作(先膨胀后腐蚀),去掉内部缺陷
    kernel2 = np.ones((20,20), dtype=np.uint8)
    mask2 = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel2, 2)

    res = np.hstack([img_mask, mask, mask2])
    cv2.imwrite("res.jpg", res)

           res.jpg的结果如下:

OpenCV基本操作(开闭运算)_第1张图片

 

你可能感兴趣的:(OpenCV,opencv,开闭运算)