精华内容
下载资源
问答
  • 中值滤波python
    2022-04-27 16:09:42

    图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。

    该程序运行的为中值滤波

    import cv2
    # 读取图片
    image = cv2.imread("xg11binary.jpg ")
    # 中值滤波
    median = cv2.medianBlur(image, 5)
    # 显示
    cv2.waitKey()
    cv2.namedWindow('median', 0)
    cv2.imshow("median", median)
    cv2.waitKey( )
    cv2.destroyAllWindows()

    更多相关内容
  • 今天小编就为大家分享一篇Python 实现中值滤波、均值滤波的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 中值过滤代码matlab 学习Python:基础知识 这些笔记本文件旨在帮助您自学Python。 读者已经对编程,循环,源代码结构有了基本了解。 Python可以在许多应用领域中使用,但是您将看到,这些笔记本的示例主要来自科学,...
  • 图像处理python代码,附带测试图片:添加高斯、椒盐、泊松、均匀噪声,分别进行高斯滤波、中值滤波、盒滤波、双边滤波
  • 添加高斯噪声,并用高斯滤波、均值滤波、中值滤波、双边滤波四种滤波去噪方式,并且分别得到这四种滤波后的信噪比值,通过比较信噪比值,得到最佳的滤波去噪处理方式。添加噪声的浓度可以改变,并且也可以改变卷积核...
  • python调用高斯滤波函数或者中值对大数据集进行滤波
  • 中值滤波的主要原理是将数字图像中的某点用该点的邻域中各个像素值的中值所来代替,这样就能让目标像素周围能够更好的接近真实值,比如一张白纸上有一个黑点时,黑点的像素值比较大,经过中值滤波过后,黑点附近的...
  • 中值滤波:候选区域的9个点和过滤器的9个点做元素相乘后,将核中心的点赋值为这个9个乘积的中值,如果3*3 的kernel (值都为1),那么做完中值滤波后,此时5的位置为18。 最大值滤波和均值的意思是9个元素逐元素相乘...

    美团二面题

      

    简单介绍三种滤波的思路:

    共同点:三种滤波的方式其实可以理解为卷积操作,只是针对于给定的Filter进行过滤。如果kernel size现在是3*3(如果值都设置为1),则在9个单元格进行处理,没有padding的情况下, 默认从第二行开始。

    中值滤波:候选区域的9个点和过滤器的9个点做元素相乘后,将核中心的点赋值为这个9个乘积的中值,如果3*3 的kernel (值都为1),那么做完中值滤波后,此时5的位置为18。

    最大值滤波和均值的意思是9个元素逐元素相乘后,取这9个值的最大值和均值。

    coding 的思路:考虑padding、stride以及滑窗的动作计算,同时需要知道numpy的几个函数,我当时就给忘记了,尴尬

    import numpy as np
    
    def median_filter(input_image,kernel,stride=1,padding=False):
        """
        中值滤波/最大滤波/均值滤波
        :param input_image: 输入图像
        :param filter_size: 滤波器大小
        :return:
        """
    
        # 填充(默认为1)
        padding_num = 1
        if padding:
            padding_num = int((kernel.shape[0]-1)/2)
            input_image = np.pad(input_image,(padding_num,padding_num),mode="constant",constant_values=0)
    
        out_image = np.copy(input_image)
    
        # 填充后的图像大小
        w,h = input_image.shape
        print(input_image.shape,padding_num)
    
        for i in range(padding_num,w-padding_num,stride):
            for j in range(padding_num,h-padding_num,stride):
    
                region = input_image[i-padding_num:i+padding_num+1,j-padding_num:j+padding_num+1]
                print(i,j)
                print(region.shape,kernel.shape)
                # 确保 图像提取的局部区域 与 核大小 一致
                assert (region.shape == kernel.shape)
                # 中值滤波np.median,  最大值滤波 np.maximum  均值滤波: np.mean
                out_image[i,j] = np.median(np.dot(region,kernel))
    
    
    
        # 裁剪原图像大小
        if padding:
            out_image = out_image[padding_num:w-padding_num,padding_num:h-padding_num]
        return out_image
    
    
    if __name__ == '__main__':
        # 随机浮点数, 模仿灰度图
        input_image = np.random.rand(16,16)
        # 标准正态分布
        kernel = np.random.rand(3,3)
        print(input_image.shape,kernel.shape)
        output = median_filter(input_image,kernel)
        print(output.shape)
    
    
    
    

    展开全文
  • 中值滤波opencv-python

    千次阅读 2022-02-24 11:06:11
    中值滤波-cv.medianBlur()函数 文章目录前言一、中值滤波是什么?二、cv.medianBlur()函数1.函数原型2.与均值滤波的比较参考 前言 线性滤波是滤波模板内的像素值通过线性组合得到,运算过程包含排序、逻辑计算等等...

    中值滤波-cv.medianBlur()函数


    前言

    线性滤波是滤波模板内的像素值通过线性组合得到,运算过程包含排序、逻辑计算等等,并且线性滤波是对所有的像素进行线性组合,因此含有噪音的像素也一样会被计算在内,导致线性滤波对于去噪只能是减缓,不能消除,使得噪音仍然存在。而非线性滤波对像素的处理是非线性的,使得滤波的效果可能会更好,非线性滤波通过一定的逻辑判断可以将噪音过滤掉。常见的非线性滤波主要有中值滤波和双边滤波。


    一、中值滤波是什么?

    中值滤波和均值滤波的算法过程有异曲同工之妙,均值滤波是对滤波模板内的所有像素进行求和再求平均值,再将均值复制给所有的中心像素;中值滤波不同的是对滤波模板内的所有元素进行排序,取排序序列的中值作为中心像素。中值滤波和卷积操作一样,只有一个中心像素,也会和卷积一样进行图像的遍历,遍历的方向也和卷积一致。由于中值滤波不考虑像素差距较大的边缘值,可以比较好的应对斑点噪音和椒盐噪音。

    二、cv.medianBlur()函数

    1.函数原型

    代码如下(示例):

    dst = cv.medianBlur(src,
    					ksize
    					[,dst])
    #src:待中值滤波的输入图像
    #ksize:中值滤波模板的大小
    #dst:输出图像
    

    函数用于图像的中值滤波,并将滤波结果返回
    src: 符合ndarray数组对象,例如灰度图 三通道彩色图
    ksize:当数值维3或者5时,数据类型可以是uint8,uint16,uint32.但是对于较大的滤波模板,数据类型就只能是uint8.ksize必须相等,且为大于1的奇数.

    2.与均值滤波的比较

    在细节信息保护上,线性滤波因为本身固有的缺陷会导致细节信息缺失较为严重,因此线性滤波都会造成图像一定程度的模糊,但是在一定条件下,中值滤波对细节信息的保护会比线性滤波中的均值滤波更好,可以一定程度的避免图像模糊。但是随着滤波模板尺寸变大,中值滤波也一样图像模糊,这是因为滤波模板中的所有像素的中值接近于均值时,中值滤波就可以和均值滤波基本一致,但是中值滤波处理图像所需要的时间会比均值滤波处理时间更长。中值滤波处理脉冲干扰信号效果最佳,因为脉冲干扰信号引入的干扰一般都是较大或者较小的噪音。

    参考

    冯振 陈亚萌 基于python的opencv4详解[M]
    展开全文
  • 本文对Matlab工具箱中的中值滤波算法进行改进,提出一种基于×字形滤波窗口的自适应中值滤波算法,在有效去除噪声的同时,较好地保持了图像细节,缩短了运行时间。
  • RGB2YUV 与 高斯滤波 中值滤波 均值滤波
  • 一. 中值滤波: 中值滤波器是一种可以使图像平滑的滤波器。... python实现中值滤波和均值滤波,并用两种滤波器对受到椒盐噪声污染的图像进行去噪 import cv2 import numpy as np # Median fil...

    一. 中值滤波:

        中值滤波器是一种可以使图像平滑的滤波器。它使用滤波器范围内的像素的中值去代表该范围内所有的像素。中值滤波是消除图像噪声最常见的手段之一,特别是消除椒盐噪声,中值滤波的效果要比均值滤波更好。


    二. python实现中值滤波和均值滤波,并用两种滤波器对受到椒盐噪声污染的图像进行去噪

    import cv2
    
    import numpy as np
    
    # Median filter
    
    def median_filter(img, K_size=3):
    
        H, W, C = img.shape
    
        ## Zero padding
    
        pad = K_size // 2
    
        out = np.zeros((H + pad*2, W + pad*2, C), dtype=np.float)
    
        out[pad:pad+H, pad:pad+W] = img.copy().astype(np.float)
    
        tmp = out.copy()
    
        # filtering
    
        for y in range(H):
    
            for x in range(W):
    
                for c in range(C):
    
                    out[pad+y, pad+x, c] = np.median(tmp[y:y+K_size, x:x+K_size, c])
    
        out = out[pad:pad+H, pad:pad+W].astype(np.uint8)
    
        return out
    
    # Average filter
    
    def average_filter(img, G=3):
    
        out = img.copy()
    
        H, W, C = img.shape
    
        Nh = int(H / G)
    
        Nw = int(W / G)
    
        for y in range(Nh):
    
            for x in range(Nw):
    
                for c in range(C):
    
                    out[G*y:G*(y+1), G*x:G*(x+1), c] = np.mean(out[G*y:G*(y+1), G*x:G*(x+1), c]).astype(np.int)
    
    
    
        return out
    
    # Read image
    
    img = cv2.imread("../paojie_sp.jpg")
    
    # Median Filter and Average Filter
    
    out1 = median_filter(img, K_size=3)
    
    out2 = average_filter(img,G=3)
    
    # Save result
    
    cv2.imwrite("out1.jpg", out1)
    
    cv2.imwrite("out2.jpg", out2)
    
    cv2.waitKey(0)
    
    cv2.destroyAllWindows()
    
    

    三. 实验结果

              

                        受到椒盐噪声污染的图像 ↑

              

                        中值滤波后的图像 ↑

              

                        均值滤波后的图像 ↑

            可以明显看出,对于受到椒盐噪声污染的图像,中值滤波往往比均值滤波的去噪效果要好!


    四. 参考内容:

            https://www.cnblogs.com/wojianxin/p/12500348.html

            https://www.jianshu.com/p/53b4a8b15c28

    展开全文
  • 使用中值滤波器,它是一个奇数阶方阵。它消除了图像中的椒盐噪声,产生了平滑的输出。噪声只出现在边界像素值处。中值滤波器提高了图像的 PSNR 质量。
  • 中值滤波python实现)

    千次阅读 2021-01-05 21:47:34
    image = cv2.imread("E:/code/python/medfilter/1lena.png") width = image.shape[0] height = image.shape[1] grayimg = np.zeros([width,height,1],np.uint8) for i in range(height): for j in range(width):
  • 浅谈中值滤波 中值滤波 1.原理 设有一个序列:x1,x2,x3,x4,x5,将它们按照绝对值大小重新排列此序列x3,x5,x2,x4、x1,重排以后的中值是×2,此值就作为滤波的输出。 2.Matlab代码实现 function g = median_...
  • 用于图像去除噪声的自适应中值滤波算法,能够有效的去除图像中的噪声达到图像复原的效果,对于学习图像复原和图像处理有很大的帮助
  • 均值滤波与中值滤波python实现)

    千次阅读 2020-11-05 22:07:51
    中值滤波中值滤波的实现原理是把数字图像中一点的值用该点的一个区域的各个点的值的中值代替。 import cv2 import numpy as np from itertools import chain def padding_0(img): a = np.insert(img, 0, 0, 0) ...
  • Python实现中值滤波

    千次阅读 2021-10-21 16:25:58
    ) #med[i].append(min(temp_window)) print('计算原始中值滤波图像完成') return med def median_new(image,cc): med=[] for i in range(len(image)+1-cc): med.append([]) for j in range(len(image[i])+1-cc): ...
  • Python程序,用于处理视频中一组帧上的时间中值滤波效果。 安装 安装ffmpeg 创建一个python虚拟环境 mkdir venv python3 -m venv venv source venv/bin/activate 安装要求 pip install -r requirements.txt 运行...
  • 中值滤波 中值滤波的原理: 中值滤波,其原理在于使用卷积核内的中值来代替中心点的值。例如,当一个点值为255时,而周围其他点全都低于120,这时候它就是一个明显的噪点。使用中值滤波时,就会用其他的点代替该点...
  • 记录一下中值滤波的原理和Python的实现方式: 大佬中值滤波的博客(代码参考) 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。 这种滤波法对椒盐噪声有...
  • Python图形界面实现中值滤波、均值滤波红包:Lena椒盐噪声图片:# -*- coding: utf-8 -*-"""Created on Sat Oct 14 22:16:47 2017@author: Don"""from tkinter import *from skimage import ioimport numpy as npim=...
  • 滤波算法主要包括均值滤波,高斯滤波,中值滤波和双边滤波。 每种算法都有自己的特点,建议从原理上了解每种算法的优缺点。上图给出简洁版的总结。 以下是代码: import numpy as np import cv2 import matplotlib....
  • 手动实现中值滤波python

    千次阅读 2020-07-12 15:06:45
    # -*- coding: utf-8 -*- """ Created on Sat Jul 12 14:53:28 2020 @author: 陨星落云 """ import imageio import numpy as np ... # 中值滤波 h,w,c = img.shape # 零填充 pad = K_size//2 o
  • 自适应中值滤波.zip

    2020-05-03 10:59:54
    图像处理作业,自适应中值滤波器的实现,根据数字图像处理 第三版(冈萨雷斯 著)此书所描述的算法实现编码
  • """均值滤波、中值滤波、高斯滤波、图像锐化""" ''' 均值滤波的实现 path:图像路径 ksize:卷积核大小 ''' def Mean_blur(path, ksize): time_start = time.time() '''读取图像''' image = cv2.imread(path, 1) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,853
精华内容 1,941
关键字:

中值滤波python