python 一维和二位数据的高斯模糊滤波
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python 一维和二位数据的高斯模糊滤波,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1939字,纯文字阅读大概需要3分钟。
内容图文
![python 一维和二位数据的高斯模糊滤波](/upload/InfoBanner/zyjiaocheng/1327/ad4d5a49148743e18173c18fe2e4987e.jpg)
高斯模糊一阶核函数:
高斯函数二阶核函数:
def calc(self,x,y=0): if self.level==1: return 1/((2*math.pi)**0.5*self.sigema)*math.exp(-(x**2/2/(self.sigema**2))) elif self.level==2: return 1/(2*math.pi*self.sigema*self.sigema)*math.exp(-(x**2+y**2)/2/self.sigema/self.sigema)
σ为标准差
定义一个模糊半径,通过上述公式获取到需要的核函数
如半径r=1 ,σ=2
一阶时为x=[-1,0,1],生成核为[0.176033,0.199471,0.176033]/data.sum()
及把[0.319168,0.361664,0.319168]作为下面计算的卷积和
对于边缘数据进行镜像模糊对称 ,再将数据进行卷积运算即可得出滤波数据
模糊算法:
def VerticalFlipping(self,data):#垂直翻转if data.shape[0]<=1: return data newarray=np.zeros(data.shape) for i in range(data.shape[0]): newarray[i]=data[-i-1] return newarray def HorizontalFlipping(self,data):#水平翻转if data.shape[1]<=1: return data newarray=np.zeros(data.shape) for i in range(data.shape[1]): newarray[:,i]=data[:,-i-1] return newarray def fuzzy(self,data):#图像边缘模糊算法: 镜像模糊 data=np.array(data) if self.level==2: data=np.row_stack((self.VerticalFlipping(data[:self.radius]),data)) data=np.row_stack((data,self.VerticalFlipping(data[-1:]))) data=np.column_stack((self.HorizontalFlipping(data[:,:self.radius]),data)) data=np.column_stack((data,self.HorizontalFlipping(data[:,-self.radius:]) )) return data
滤波方法
# 滤波函数 def filter(self, data, template): arr=self.fuzzy(data) height=arr.shape[0] width=arr.shape[1] newData=np.zeros((height, width)) if self.level==1: for i in range(arr.shape[0]): for j in range(self.radius,arr.shape[1]-self.radius): t=arr[i, j-self.radius:j+self.radius+1] a=np.multiply(t,template) newData[i,j]=a.sum() return newData[:,self.radius:-self.radius] elif self.level==2: for i in range(self.radius, height-self.radius): for j in range(self.radius, width-self.radius): t=arr[i-self.radius:i+self.radius+1, j-self.radius:j+self.radius+1] a= np.multiply(t, template) newData[i, j] = a.sum() #newImage = Image.fromarray(newData) return newData[self.radius:-self.radius,self.radius:-self.radius]
原文:https://www.cnblogs.com/skycandy/p/8990566.html
内容总结
以上是互联网集市为您收集整理的python 一维和二位数据的高斯模糊滤波全部内容,希望文章能够帮你解决python 一维和二位数据的高斯模糊滤波所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。