首页 > 编程语言 >python 中值滤波

python 中值滤波

时间:2023-01-20 11:38:34浏览次数:63  
标签:python image 滤波 range len window half


​代码在git​

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Dec 8 09:46:29 2021

@author: ledi
"""


import numpy as np
import cv2
from matplotlib import pyplot as plt

def medianBlur(image,ksize=2,):
'''
中值滤波,去除椒盐噪声

args:
image:输入图片数据,要求为灰度图片
ksize:滤波窗口大小
return:
中值滤波之后的图片
'''
rows,cols = image.shape[:2]
#输入校验
half = ksize//2
startSearchRow = half
endSearchRow = rows-half-1
startSearchCol = half
endSearchCol = cols-half-1
dst = np.zeros((rows,cols),dtype=np.uint8)
#中值滤波
for y in range(startSearchRow,endSearchRow):
for x in range(startSearchCol,endSearchCol):
window = []
for i in range(y-half,y+half+1):
for j in range(x-half,x+half+1):
window.append(image[i][j])
#取中间值
window = np.sort(window,axis=None)
if len(window)%2 == 1:
medianValue = window[len(window)//2]
else:
medianValue = int((window[len(window)//2]+window[len(window)//2+1])/2)
dst[y][x] = medianValue
return dst


image = cv2.imread('/home/ledi/桌面/clion/learn_orbslam/cpp_project_learn/OPENCV/python_code/middle.png')


med=medianBlur(image)

cv2.imwrite('med.png',med)

python 中值滤波_窗口大小


python 中值滤波_python_02


标签:python,image,滤波,range,len,window,half
From: https://blog.51cto.com/u_15202985/6020569

相关文章

  • python 字典
    通俗理解字典就是Java中的map定义字典遵循k:string,v:obj的模式,也就是说,除了基本数据类型,v可以是对象,列表等等。dictionary={'name':'jack',age:19}操作字典新增属......
  • python操作redis
    一、连接redis连接redis的方式,我们通常选择连接池。importredispool=redis.ConnectionPool(host='127.0.0.1',port=6379,password='12345')r=redis.Redis(connec......
  • Python学习笔记--面向对象--基础
    1.面向对象和面向过程的区别是?面向过程:把问题,拆解性小的流程。优点是:把复杂问题,流程化后简单了。缺点是:扩展性差。面向对象:优点是:扩展性强。缺点是:将......
  • 朴素贝叶斯 python 实现
    ​​百度文库​​​​​​文库2​​机器学习实战的朴素贝叶斯的代码太复杂"""CreatedonThuAug1015:08:592017@author:luogan"""#coding=gbk#NaiveBayes#Calculate......
  • Python学习笔记-常用模块介绍--subprocess函数
    1.什么是subprocess?是英文翻译过来,是子进程的意思。sub儿子;process进程2.示例1:importsubprocess#sub是儿子的意思,这个函数是开启了子进程。importtime......
  • Python学习笔记-常用模块介绍--configparser函数
    1.常见的配置有哪些?ini/cnfyaml2.示例#注释1;注释2这是config.ini的文件[mysqld]k1=v1k2:v2user=egonage=18is_admin=truesalary=31[client]k1=......
  • 滑动窗口滤波器原理分析及详细代码讲解实现
    前言在嵌入式开发程序中涉及数据采样如传感器采样,AD采样等如果直接读取信号后,将信号值直接参与后续逻辑处理,若程序无软件滤波,会导致静态或者动态采样时:      ......
  • Python学习笔记-常用模块介绍--random随机数函数
    1.random模块基本使用importrandomprint(random.random())#(0,1)----float大于0且小于1之间的小数print(random.randint(1,3))#[1,3]大于等于1且小......
  • Python学习笔记-常用模块介绍--hashlib哈希函数
    1.hash算法是什么?传入的值一样,结果一样。一种哈希算法算出来的结果,长度固定。不能反解。2.(扩展知识)文件下载完成后,进度显示100%,为什么不能立马打开?下载完成后,会进......
  • Python入门之变量
    """变量:在内存中存储数据"""#语法:#变量名称=对象#例如:name="张无忌"print(name)#语义:内存图#变量名:真实内存地址的别名#见名知意#......