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)]](https://i-blog.csdnimg.cn/blog_migrate/f813babf8f6e8c0b5e4c8f5a58b54360.png)