python opencv 灰度图非局部平均去噪

代码:

import cv2
import numpy as np
# 灰度图像去噪
def MeansDenoising(img,h,templateWindowSize,searchWindowSize):
    dst = cv2.fastNlMeansDenoising(img,h,templateWindowSize,searchWindowSize)
    return dst
# 回调函数,因为只能传一个参数,不方便,所以pass
def nothing(pos):
    pass
#读取图片
img = cv2.imread("2.jpg",0)
# 创建老窗口
cv2.namedWindow('OldImg')
# 绑定老窗口和滑动条(滑动条的数值)
cv2.createTrackbar('h', 'OldImg', 10, 100, nothing)
cv2.createTrackbar('templateWindowSize', 'OldImg', 7, 100, nothing)
cv2.createTrackbar('searchWindowSize', 'OldImg', 21, 100, nothing)
while True:
    # 提取滑动条的数值d
    h = cv2.getTrackbarPos('h', 'OldImg')
    templateWindowSize =cv2.getTrackbarPos('templateWindowSize', 'OldImg')
    searchWindowSize = cv2.getTrackbarPos('searchWindowSize', 'OldImg')
    # 滑动条数字传入函数img_dilated中,并且调用函数img_dilated
    dilated = MeansDenoising(img,h,templateWindowSize,searchWindowSize)
    # 绑定 img 和 dilated
    result = np.hstack([img,dilated])
    cv2.imshow('OldImg', result)
    # 设置推出键
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
# 关闭窗口
cv2.destroyAllWindows()

效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8D5Yl7m2-1570706125957)(C:\Users\xiahuadong\Pictures\博客\40.png)]

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐