精华内容
下载资源
问答
  • 本文实例为大家分享了opencv+python实现均值滤波的具体代码,供大家参考,具体内容如下原理均值滤波其实就是对目标像素及周边像素取平均值后再填回目标像素来实现滤波目的的方法,当滤波核的大小是3×3 3\times 33×...

    本文实例为大家分享了opencv+python实现均值滤波的具体代码,供大家参考,具体内容如下

    原理

    均值滤波其实就是对目标像素及周边像素取平均值后再填回目标像素来实现滤波目的的方法,当滤波核的大小是3×3 3\times 33×3时,则取其自身和周围8个像素值的均值来代替当前像素值。

    均值滤波也可以看成滤波核的值均为 1 的滤波。

    优点:算法简单,计算速度快;

    缺点:降低噪声的同时使图像产生模糊,特别是景物的边缘和细节部分。

    代码

    import cv2 as cv

    import numpy as np

    import math

    import copy

    def spilt( a ):

    if a/2 == 0:

    x1 = x2 = a/2

    else:

    x1 = math.floor( a/2 )

    x2 = a - x1

    return -x1,x2

    def original (i, j, k,a, b,img):

    x1, x2 = spilt(a)

    y1, y2 = spilt(b)

    temp = np.zeros(a * b)

    count = 0

    for m in range(x1, x2):

    for n in range(y1, y2):

    if i + m < 0 or i + m > img.shape[0] - 1 or j + n < 0 or j + n > img.shape[1] - 1:

    temp[count] = img[i, j, k]

    else:

    temp[count] = img[i + m, j + n, k]

    count += 1

    return temp

    def average_function(a , b ,img):

    img0 = copy.copy(img)

    for i in range (0 , img.shape[0] ):

    for j in range (2 ,img.shape[1] ):

    for k in range (img.shape[2]):

    temp = original(i, j, k, a, b, img0)

    img[i,j,k] = int ( np.mean(temp))

    return img

    def main():

    img0 = cv.imread(r"noise.jpg")

    ave_img = average_function( 3 , 3, copy.copy(img0) ) #(3,3)滤波器大小

    cv.imshow("ave_img",ave_img)

    cv.imshow("original",img0)

    cv.waitKey(0)

    cv.destroyAllWindows()

    if __name__ == "__main__":

    main()

    样例

    原图:

    blank.gif

    滤波核为3×3 3\times 33×3的均值滤波后:

    blank.gif

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

    时间: 2020-02-17

    展开全文
  • OpenCV python 均值滤波

    2019-12-23 10:56:23
    OpenCV python 均值滤波 原图[source.jpg] import cv2 def main(): # 1.导入图片 img_src = cv2.imread("source.jpg") # 2.执行均值滤波处理 img_result5 = cv2.blur(img_src, (5, 5)) img_result30 = cv2...

    OpenCV python 均值滤波

    原图[source.jpg]
    在这里插入图片描述

    import cv2
    
    
    def main():
    
        # 1.导入图片
        img_src = cv2.imread("source.jpg")
    
        # 2.执行均值滤波处理
        img_result5 = cv2.blur(img_src, (5, 5))
        img_result30 = cv2.blur(img_src, (30, 30))
    
        # 3.显示结果
        cv2.imshow("img_src", img_src)
        cv2.imshow("img_result5", img_result5)
        cv2.imshow("img_result30", img_result30)
    
        cv2.waitKey()
        cv2.destroyAllWindows()
    
    
    if __name__ == '__main__':
        main()
    
    

    处理结果图片[img_result5]
    在这里插入图片描述
    结果图片[img_result30.jpg]
    在这里插入图片描述

    展开全文
  • 本文实例为大家分享了opencv+python实现均值滤波的具体代码,供大家参考,具体内容如下原理均值滤波其实就是对目标像素及周边像素取平均值后再填回目标像素来实现滤波目的的方法,当滤波核的大小是3×3 3\times 33×...

    本文实例为大家分享了opencv+python实现均值滤波的具体代码,供大家参考,具体内容如下

    原理

    均值滤波其实就是对目标像素及周边像素取平均值后再填回目标像素来实现滤波目的的方法,当滤波核的大小是3×3 3\times 33×3时,则取其自身和周围8个像素值的均值来代替当前像素值。

    均值滤波也可以看成滤波核的值均为 1 的滤波。

    优点:算法简单,计算速度快;

    缺点:降低噪声的同时使图像产生模糊,特别是景物的边缘和细节部分。

    代码

    import cv2 as cv

    import numpy as np

    import math

    import copy

    def spilt( a ):

    if a/2 == 0:

    x1 = x2 = a/2

    else:

    x1 = math.floor( a/2 )

    x2 = a - x1

    return -x1,x2

    def original (i, j, k,a, b,img):

    x1, x2 = spilt(a)

    y1, y2 = spilt(b)

    temp = np.zeros(a * b)

    count = 0

    for m in range(x1, x2):

    for n in range(y1, y2):

    if i + m < 0 or i + m > img.shape[0] - 1 or j + n < 0 or j + n > img.shape[1] - 1:

    temp[count] = img[i, j, k]

    else:

    temp[count] = img[i + m, j + n, k]

    count += 1

    return temp

    def average_function(a , b ,img):

    img0 = copy.copy(img)

    for i in range (0 , img.shape[0] ):

    for j in range (2 ,img.shape[1] ):

    for k in range (img.shape[2]):

    temp = original(i, j, k, a, b, img0)

    img[i,j,k] = int ( np.mean(temp))

    return img

    def main():

    img0 = cv.imread(r"noise.jpg")

    ave_img = average_function( 3 , 3, copy.copy(img0) ) #(3,3)滤波器大小

    cv.imshow("ave_img",ave_img)

    cv.imshow("original",img0)

    cv.waitKey(0)

    cv.destroyAllWindows()

    if __name__ == "__main__":

    main()

    样例

    原图:

    2020219113149440.jpg

    滤波核为3×3 3\times 33×3的均值滤波后:

    2020219113248096.jpg

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • OpenCV——均值滤波

    千次阅读 2021-10-05 07:52:36
    图像均值滤波的C++及python代码实现

    一、均值滤波

       均值滤波是典型的线性滤波算法,它是指在图像上对目标像素给一个模板,该模板包括了其周围的临近像素(以目标像素为中心的周围8个像素,构成一个滤波模板,即包括目标像素本身),再用模板中的全体像素的平均值来代替原来像素值。
       均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点 ( x , y ) (x,y) xy,选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点 ( x , y ) (x,y) xy,作为处理后图像在该点上的灰度 g ( x , y ) g(x,y) gxy,即 g ( x , y ) = ∑ f ( x , y ) / m g(x,y)=∑f(x,y)/m gxy=fxy/m m m m为该模板中包含当前像素在内的像素总个数。
       均值滤波本身存在着固有的缺陷,即它不能很好地保护图像细节,在图像去噪的同时也破坏了图像的细节部分,从而使图像变得模糊,不能很好地去除噪声点。

    二、C++代码

    #include <opencv2\opencv.hpp>
    #include <iostream>
    
    using namespace cv;
    using namespace std;
    
    int main()
    {
    	Mat img = imread("hx.jpg");
    	
    	if (img.empty() )
    	{
    		cout << "请确认图像文件名称是否正确" << endl;
    		return -1;
    	}
    	Mat result_3, result_9; //存放滤波结果,数字代表滤波器尺寸
    	
    	//调用均值滤波函数blur()进行滤波
    	blur(img, result_3, Size(3, 3)); // 3x3卷积核
    	blur(img, result_9, Size(9, 9)); // 9x9卷积核
    	
    	//显示处理结果
    	imshow("origion pic ", img);
    	imshow("3x3 result", result_3);
    	imshow("9x9 salt", result_9);
    	waitKey(0);
    	return 0;
    }
    

    三、python代码

    import cv2
    
    img = cv2.imread('hx.jpg')
    # -------------------均值滤波------------------
    img_mean_3 = cv2.blur(img, (3, 3))
    img_mean_9 = cv2.blur(img, (9, 9))
    # ------------------可视化结果-----------------
    cv2.imshow('origion_pic', img)
    cv2.imshow('3x3_filtered_pic', img_mean_3)
    cv2.imshow('9x9_filtered_pic', img_mean_3)
    cv2.waitKey(0)
    
    

    四、结果展示

    1、原始图像

    在这里插入图片描述

    2、3x3卷积

    在这里插入图片描述

    3、9x9卷积

    在这里插入图片描述

    展开全文
  • 主要为大家详细介绍了opencv+python实现均值滤波,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 数字图像均值滤波 滤波的作用: 对数字图像进行滤波其主要目的是消除其中的噪声,保留图像中的有用信息平滑图像,因此图像滤波也叫图像平滑。图像和数字信号也有共同之处,就是有用信息基本都在低频段或者中...
  • Python语言不调用OpenCV函数实现均值滤波编译环境前提运行结果目的 编译环境 由于编程语言选择Python,所以博主用的编译器为PyCharm 2017 前提 我们在学了冈萨雷斯的数字图像处理之后,了解到里面许多的滤波函数...
  • opencv+python 实现均值滤波

    千次阅读 2019-11-05 22:26:45
    opencv+python 实现均值、中值滤波 import cv2 as cv import numpy as np import math import copy def spilt( a ): if a/2 == 0: x1 = x2 = a/2 else: x1 = math.floor( a/2 ) x2 = a - x1...
  • 均值滤波、方框滤波、高斯滤波、中值滤波 -- coding: utf-8 -- import cv2 import numpy as np from matplotlib import pyplot as plt img1=cv2.imread(“D:/images/take.jpg”) img2=cv2.imread(“D:/images/qudou....
  • 库:opencv,numpy 编译环境:PyCharm(当然,其他集成编译环境也可以) 2.正文: import cv2 import numpy as np img01 = cv2.imread("E:\cpy\photo\image01.bmp")#读取目标图片 #中值滤波 img_...
  • 滤波算法主要包括均值滤波,高斯滤波,中值滤波和双边滤波。 每种算法都有自己的特点,建议从原理上了解每种算法的优缺点。上图给出简洁版的总结。 以下是代码: import numpy as np import cv2 import ...
  • 非局部均值滤波python实现

    千次阅读 2019-03-13 11:12:41
    理论上,该算法需要在整个图像范围内判断像素间的相似度,也就是说,每处理一个像素点时,都要计算它与图像中所有像素点间的相似度。但是考虑到效率问题,...实现python代码: #coding:utf8 import cv2 import n...
  • 利用opencv python实现图像滤波 (1)在python安装opencv库 如果安装了python,直接安装:pip install opencv-python 安装numpy包:pip install numpy 测试是否安装成功:python命令行输入import cv2,没有报错即...
  • Python+opencv 均值滤波

    2020-12-06 16:14:09
    '原图均值滤波(5x5)', '噪声图', '噪声图均值滤波(3x3)', '噪声图均值滤波(5x5)'] for idx in range(len(imgs)): plt.subplot(2,3,idx+1) # 2行3列,将图像放置在第idx+1位置上(从左往右,从上到下计数) plt....
  • importcv2importnumpy as npfrom PIL importImage, ImageDraw, ImageFont__author__ = "sunjingjing"#均值滤波defblur(source): img= cv2.blur(source, (10,10)) cv2img= cv2.cvtColor(img, cv2.COLOR_BGR2RGB) #c.....
  • 基于OpenCV均值漂移滤波实现
  • opencv实现导向滤波

    2018-04-20 16:09:38
    ////*******************************************************************//////*****************调用opencv实现导向滤波****************************//////**********************************************...
  • 一. 中值滤波: 中值滤波器是一种可以使图像平滑的滤波器。... python实现中值滤波和均值滤波,并用两种滤波器对受到椒盐噪声污染的图像进行去噪 import cv2 import numpy as np # Median fil...

空空如也

空空如也

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

opencv实现均值滤波python

python 订阅