opencv-python 形态学之开闭运算、形态学梯度、图像顶帽和黑帽运算
形态学的高级形态,建立在腐蚀和膨胀这两个基本操作之上
一. 图像开运算
图像开运算是图像依次经过腐蚀、膨胀处理后的过程。
开运算主要使用的函数morphologyEx,它是形态学扩展的一组函数,其参数cv2.MORPH_OPEN对应开运算。其原型如下: dst
= cv2.morphologyEx(src, cv2.MORPH_OPEN, kernel) dst表示处理的结果 src表示原图像 cv2.MORPH_OPEN表示开运算, Kernel表示卷积核。可以采用函数 np.ones((5,5), np.uint8)
构建。或cv2.getStructuringElement(cv2.MORPH_RECT,(5,5))
# coding:utf-8
import cv2
import numpy as np
image= cv2.imread('./data/wb2.png')
window_name="MORPH_OPEN"
orgname="原图:".encode("gbk").decode(errors="ignore")
def callBack_func(r):
kernel= cv2.getStructuringElement(cv2.MORPH_RECT,(2*r+1,2*r+1))
dst=cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel);
cv2.imshow(window_name,dst);
cv2.imshow(orgname , image)
cv2.namedWindow(window_name);
cv2.createTrackbar('kernel', window_name, 1,20, callBack_func);
cv2.waitKey(0);
拖动TrackBar看开运算效果