首页 > 代码库 > 数学之路-python计算实战(17)-机器视觉-滤波去噪(中值滤波)
数学之路-python计算实战(17)-机器视觉-滤波去噪(中值滤波)
Blurs an image using the median filter.
- C++: void medianBlur(InputArray src, OutputArray dst, int ksize)
- Python: cv2.medianBlur(src, ksize[, dst]) → dst
Parameters: - src – input 1-, 3-, or 4-channel image; when ksize is 3 or 5, the image depth should be CV_8U, CV_16U, or CV_32F, for larger aperture sizes, it can only be CV_8U.
- dst – destination array of the same size and type as src.
- ksize – aperture linear size; it must be odd and greater than 1, for example: 3, 5, 7 ...
The function smoothes an image using the median filter with the aperture. Each channel of a multi-channel image is processed independently. In-place operation is supported.
中值滤波将图像的每个像素用邻域 (以当前像素为中心的正方形区域)像素的 中值 代替 。与邻域平均法类似,但计算的是中值
# -*- coding: utf-8 -*- #code:myhaspl@myhaspl.com #中值滤波 import cv2 import numpy as np fn="test3.jpg" myimg=cv2.imread(fn) img=cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY) #加上椒盐噪声 #灰阶范围 w=img.shape[1] h=img.shape[0] newimg=np.array(img) #噪声点数量 noisecount=50000 for k in xrange(0,noisecount): xi=int(np.random.uniform(0,newimg.shape[1])) xj=int(np.random.uniform(0,newimg.shape[0])) newimg[xj,xi]=255 #滤波去噪 lbimg=cv2.medianBlur(newimg,3) cv2.imshow(‘src‘,newimg) cv2.imshow(‘dst‘,lbimg) cv2.waitKey() cv2.destroyAllWindows()
中值滤波忽略了较高阶灰度和较低阶灰度,直接取中值,因为有效得过滤椒盐噪声
对高斯噪声的滤波
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。