'''带拖动条的均值滤波
'''
import timeimport cv2
import numpy as npdef callback(int):passcv2.namedWindow('dst',cv2.WINDOW_AUTOSIZE)# 创建trackbar (trackbarname,winname,value,count,callback,userdata)
cv2.createTrackbar('ksize', 'dst', 3, 30, callback)
cv2.createTrackbar('save', 'dst', 0, 1, callback)path = '../img/'
img_name = 'lena'
suf = '.jpg'img_path = path+img_name+sufimg = cv2.imread(img_path)dst = img.copy()
while True:cv2.imshow('img', img)ksize = cv2.getTrackbarPos('ksize', 'dst') # 输出值:trackbarname,winname 输出:当前值if ksize%2==0:ksize+=1# dst = cv2.blur(img, (ksize,ksize))dst = cv2.GaussianBlur(img,(ksize,ksize),sigmaX=1)cv2.imshow('dst', dst)# 判断是否保存is_save = cv2.getTrackbarPos('save','dst')if is_save==1:cv2.imwrite(path+img_name+'_new'+suf,dst)print('已保存')is_save=0key = cv2.waitKey(300) # 持续10msif key & 0xFF == 27:break
cv2.destroyAllWindows()
原图:

结果:
