图像基础16 图像滤波与除噪——中值滤波
来源:互联网 发布:淘宝助理官方下载免费 编辑:程序博客网 时间:2024/05/22 17:39
本文学习资源来自《机器学习实践指南》 案例应用解析
中值滤波与邻域平均法类似,但计算的是中值,而不是平均值。具体算法是:将图像的每个像素用邻域(以当前像素为中心的正方形区域)像素的中值来代替。
椒盐噪声
median
代码:
# -*- coding: utf-8 -*-#code:# 中值滤波import cv2import numpy as npfn="test.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 = 50000for k in range(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 = np.zeros((h+2,w+2),np.float32)tmpimg = np.zeros((h+2,w+2))myh=h+2myw=w+2tmpimg[1:myh-1, 1:myw-1]=newimg[0:myh, 0:myw]# 用中值法for y in range(1,myh-1): for x in range(1,myw-1): lbimg[y,x]=np.median(tmpimg[y-1:y+2,x-1:x+2]) print(".")resultimg = np.array(lbimg[1:myh-1,1:myw-1],np.uint8)cv2.imshow('src',newimg)cv2.imshow('dst',resultimg)cv2.waitKey()cv2.destroyAllWindows()
结果:
也可以使用medianBlur函数实现中值滤波:
cv2.medianBlur(src, ksize[, dst]) -> dst
medianBlur
# -*- coding: utf-8 -*-#code:# 中值滤波import cv2import numpy as npfn="test.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 = 50000for k in range(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()
高斯噪声
import cv2import numpy as np fn = "test.jpg"myimg = cv2.imread(fn)img = cv2.cvtColor(myimg , cv2.COLOR_BGR2GRAY)# 加上高斯噪声param = 20# 灰阶范围grayscale = 256w = img.shape[1]h = img.shape[0]newimg = np.zeros((h,w),np.uint8)# 加上高斯噪声param=20# 灰阶范围grayscale=256w=img.shape[1]h=img.shape[0]newimg=np.zeros((h,w),np.uint8)for x in range(0,h): for y in range(0,w,2): r1 = np.random.random_sample() r2 = np.random.random_sample() z1=param*np.cos(2*np.pi*r2)*np.sqrt((-2)*np.log(r1)) z2=param*np.sin(2*np.pi*r2)*np.sqrt((-2)*np.log(r1)) fxy=int(img[x,y]+z1) fxy1 = int(img[x,y+1]+z2) #f(x,y) if fxy<0: fxy_val=0 elif fxy>grayscale-1: fxy_val=grayscale-1 else: fxy_val=fxy #f(x,y+1) if fxy1<0: fxy1_val=0 elif fxy1>grayscale-1: fxy1_val=grayscale-1 else: fxy1_val=fxy1 newimg[x,y]=fxy_val newimg[x,y+1]=fxy1_val print("-")# 滤波去噪lbimg = cv2.medianBlur(newimg, 3)cv2.imshow('src', newimg)cv2.imshow('dst',lbimg)cv2.waitKey()cv2.destroyAllWindows()
结果:
阅读全文
0 0
- 图像基础16 图像滤波与除噪——中值滤波
- 图像基础17 图像滤波与除噪——高斯滤波、双边滤波
- 图像基础14 图像滤波与除噪——均一化块滤波(高斯、椒盐)
- 图像基础15 图像滤波与除噪——邻域平均法
- opencv图像滤波——高斯滤波与中值滤波
- 中值滤波与图像锐化
- 中值滤波与图像锐化
- 数字图像处理—图像滤波(中值滤波)
- 图像的中值滤波
- 灰度图像中值滤波
- 【转】图像中值滤波
- 图像中值滤波实现
- 图像处理--中值滤波
- 图像增强-中值滤波
- 图像的中值滤波
- 图像噪声的抑制——均值滤波、中值滤波、对称均值滤波
- 图像噪声的抑制——均值滤波、中值滤波、对称均值滤波
- 图像噪声的抑制——均值滤波、中值滤波、对称均值滤波
- Google公布OpenFermion:量子计算机的开源软件包
- 约瑟夫环问题学习小记
- 希尔排序
- 《浪潮之巅》作者吴军最新演讲:超级人工智能
- 人工智能如何驱动实体经济?六大领域展望
- 图像基础16 图像滤波与除噪——中值滤波
- angular购物车增加订单
- AnngularJs购物车的简单操作
- linux命令学习1
- vector容器基本用法
- AngularJs简单订单操作
- deque容器基本操作
- AngularJs购物车添加订单综合
- P2066 机器分配