import numpy as np
from cv2 import cv2#算术均值滤波器:
def a_mean(img,kernel_size):G_mean_img = np.zeros(img.shape)#print(G_mean_img[0][0])#print(img)k = int((kernel_size-1)/2)#print(k)for i in range(img.shape[0]):for j in range(img.shape[1]):if i <k or i>(img.shape[0]-k-1) or j <k or j>(img.shape[1]-k-1):G_mean_img[i][j]=img[i][j]else:for n in range(kernel_size):for m in range(kernel_size):G_mean_img[i][j] +=np.float(1/(kernel_size*kernel_size)*img[i-k+n][j-k+m])#G_mean_img[i][j]=1/9*(img[i-1][j-1]+img[i-1][j]+img[i-1][j+1]+img[i][j-1]+img[i][j]+img[i][j+1]+img[i+1][j-1]+img[i+1][j]+img[i+1][j+1])G_mean_img = np.uint8(G_mean_img)return G_mean_img#几何均值滤波器:
def G_mean(img,kernel_size):G_mean_img = np.ones(img.shape)#print(G_mean_img[0][0])#print(img)k = int((kernel_size-1)/2)#print(k)for i in range(img.shape[0]):for j in range(img.shape[1]):if i <k or i>(img.shape[0]-k-1) or j <k or j>(img.shape[1]-k-1):G_mean_img[i][j]=img[i][j]else:for n in range(kernel_size):for m in range(kernel_size):G_mean_img[i][j] *=np.float(img[i-k+n][j-k+m])G_mean_img[i][j] = pow(G_mean_img[i][j],1/(kernel_size*kernel_size))#G_mean_img[i][j]=1/9*(img[i-1][j-1]+img[i-1][j]+img[i-1][j+1]+img[i][j-1]+img[i][j]+img[i][j+1]+img[i+1][j-1]+img[i+1][j]+img[i+1][j+1])G_mean_img = np.uint8(G_mean_img)return G_mean_img#谐波均值滤波均值滤波器:
def H_mean(img,kernel_size):G_mean_img = np.zeros(img.shape)#print(G_mean_img[0][0])#print(img)k = int((kernel_size-1)/2)#print(k)for i in range(img.shape[0]):for j in range(img.shape[1]):if i <k or i>(img.shape[0]-k-1) or j <k or j>(img.shape[1]-k-1):G_mean_img[i][j]=img[i][j]else:for n in range(kernel_size):for m in range(kernel_size):if img[i-k+n][j-k+m] ==0:G_mean_img[i][j] = 0breakelse:G_mean_img[i][j] +=1/np.float(img[i-k+n][j-k+m])else:continuebreakif G_mean_img[i][j]!=0:G_mean_img[i][j] = (kernel_size*kernel_size)/G_mean_img[i][j]#G_mean_img[i][j]=1/9*(img[i-1][j-1]+img[i-1][j]+img[i-1][j+1]+img[i][j-1]+img[i][j]+img[i][j+1]+img[i+1][j-1]+img[i+1][j]+img[i+1][j+1])G_mean_img = np.uint8(G_mean_img)return G_mean_img#逆谐波均值滤波均值滤波器:
def HT_mean(img,kernel_size,Q):G_mean_img = np.zeros(img.shape)#print(G_mean_img[0][0])#print(img)k = int((kernel_size-1)/2)#print(k)for i in range(img.shape[0]):for j in range(img.shape[1]):if i <k or i>(img.shape[0]-k-1) or j <k or j>(img.shape[1]-k-1):G_mean_img[i][j]=img[i][j]else:result_top = 0result_down = 0for n in range(kernel_size):for m in range(kernel_size):if Q>0:result_top +=pow(np.float(img[i-k+n][j-k+m]),Q+1)result_down +=pow(np.float(img[i-k+n][j-k+m]),Q)else:if img[i-k+n][j-k+m]==0:G_mean_img[i][j] = 0breakelse:result_top +=pow(np.float(img[i-k+n][j-k+m]),Q+1)result_down +=pow(np.float(img[i-k+n][j-k+m]),Q)else:continuebreakelse:if result_down !=0:G_mean_img[i][j] = result_top/result_down#G_mean_img[i][j]=1/9*(img[i-1][j-1]+img[i-1][j]+img[i-1][j+1]+img[i][j-1]+img[i][j]+img[i][j+1]+img[i+1][j-1]+img[i+1][j]+img[i+1][j+1])G_mean_img = np.uint8(G_mean_img)return G_mean_imgif __name__ == "__main__":img = cv2.imread('data.jpg',0)G_mean_img_3 = HT_mean(img,kernel_size = 3,Q=-1.5)G_mean_img_5 = HT_mean(img,kernel_size = 5,Q=-1.5)G_mean_img_9 = HT_mean(img,kernel_size = 9,Q=-1.5)print(G_mean_img_3.max())cv2.imshow("show1",img)cv2.imshow("show2_3",G_mean_img_3)cv2.imshow("show3_5",G_mean_img_5)cv2.imshow("show3_9",G_mean_img_9)cv2.waitKey(0)print("test_end")

python 实现算术均值滤波,几何均值滤波,谐波均值滤波,逆谐波均值滤波相关推荐

  1. 数字图像处理--算术、几何、谐波、逆谐波均值滤波器Matlab

    本文链接:https://blog.csdn.net/Dooonald/article/details/78545461 算术均值 close all clear all f=imread('D:/t ...

  2. 高斯核函数初始化邻接矩阵_基于均值漂移和双层群结构模型的群目标GMPHD滤波...

    0 引言 群目标(如机群编队和弹道导弹群目标), 是由一些具有相似运动特性且在很长一段时间内都处于相互邻近状态的目标组成.同时, 这些目标又会随着时间不断地分裂融合, 构成复杂的运动模式, 给群目标的 ...

  3. 卷积滤波 英文_3. 数码相机内的图像处理基本图像滤波

    [转载请注明来源和作者] 在第一篇文章里面,我提到计算摄影学是计算机图形学,计算机视觉,光学和传感器等领域的交叉学科,在这个领域我们可以用强大的图像算法,对传感器所获取的信息做任意的处理,得到丰富多彩 ...

  4. python的算术表达式_python算术表达式

    算术运算符用于对操作数进行各种算术运算.Python 中的算术运算符如表所示. 在Python 3 中,除法运算符(/)永远返回一个浮点数,因此5/2 的结果将为2.5. 表达式中最常见也最基础的一类 ...

  5. python生成X~N(μ,σ^2)正态分布数据。(均值为μ,标准差为σ)

    python生成X~N(μ,σ^2)正态分布数据.(均值为μ,标准差为σ) 代码 import numpy as np import numpy.matlib import math# #注意:对于来 ...

  6. python机器人编程——四轴UARM机械臂的运动控制(逆解)原理及python实现(下)

    目录 1 概要 2 uarm机械臂运动控制程序的python实现 2.1机械结构的python表达 2.2 逆解算法的python表达 2.2.1 俯视图根据目标点(x,y)计算J1,L 2.2.2 ...

  7. 主共振、超谐波共振、亚谐波共振与次共振

    主共振.超谐波共振.亚谐波共振与次共振 派生系统的固有频率ω0\omega_0ω0​接近激励频率ω\omegaω时产生的共振现象成为主共振.ω0\omega_0ω0​接近激励频率ω\omegaω的整数 ...

  8. ip iq 谐波检测matlab仿真,谐波检测技术在配电项目中的应用

    本文对谐波相关的概念进行了阐释,包括谐波源的分析.检测方法和谐波危害等,在此基础上,重点对两种谐波电流检测方法进行理论上的分析和比较,并进行了MATLAB仿真,得出了一些有意义的结论.具体内容安排如下 ...

  9. Python解决矩阵的PLU分解及求矩阵的逆

    Python解决矩阵的PLU分解及求矩阵的逆 关于PLU的分解基础知识就不叙述了,可以自己去看矩阵分析的书,大体上和高斯消去法差不多. PLU分解被经常用在Ax=bAx=bAx=b的求解上 在这里xx ...

最新文章

  1. Android应用内多进程分析和研究
  2. EJB3.0 定时服务:Timer Service
  3. 2.4 1死锁的概念(1)
  4. hosts文件 端口_在Linux系统中使用Vim读写远程文件
  5. Sqoop:MySQL2Sqoop修改源表结构对同步数据的影响
  6. 某大型银行深化系统技术方案之十六:业务应用层
  7. Kippo:一款强大的SSH蜜罐工具
  8. Tiny-Spring源码阅读(一)IOC的理解
  9. PHP ECSHOP中 诡异的问题:expects parameter 1 to be double
  10. 2020华为软挑总结
  11. python桌面整理小助手
  12. AES解码:BadPaddingException: pad block corrupted异常
  13. Vue 中监控 img 加载完毕事件
  14. python爬虫京东口红销售排行
  15. iPhone 导入照片显示时间不是拍摄时间
  16. 解决IIS存储空间不足的问题
  17. java英文字母_用JAVA编一个程序输出全部的英文字母
  18. Douyin-Bot 项目优化-改进,优化效率,本地cv2识别过滤
  19. 【网络运维】小平头PingTow网络IP导入检测工具软件开发源代码分享
  20. 蓝桥杯单片机——数码管的动态显示(4)

热门文章

  1. VUE 百度UE自定义上传图片按钮
  2. C# unicode 转中文
  3. 教你快速在github上添加密钥,赶快收藏起来吧
  4. PIC16F877A与Proteus仿真-24C01驱动仿真
  5. 错误代码0x80070570
  6. SQL报错盲注绕过云锁
  7. jQuery学习:scroll滚动 垂直滚动scrollTop 水平滚动scrollLeft
  8. UITouch 摇晃手势启动器
  9. 如何自动生成图表目录
  10. I/O Input and Output