python中各种滤波对图片的影响

  1. 均值滤波
    均值滤波的通俗意思是说:用给出模板的分辨率精度来改变原图像,模糊内核越大,那么越模糊
    均值滤波的关键语句是:
dst = cv.blur(src, (5, 5))#均值滤波,第一个参数:待处理图像熟悉参数,第二个参数表示:模糊内核大小

图像对比:python中各种滤波对图片的影响_第1张图片
python中各种滤波对图片的影响_第2张图片
再来一张矩阵12*12的图:
python中各种滤波对图片的影响_第3张图片
也就是说模糊内核越大,图像越模糊。
代码如下:

import cv2 as cv
import numpy as np
def blur_demo(src):
    dst = cv.blur(src, (12, 12))#均值滤波,第一个参数:待处理图像熟悉参数,第二个参数表示:模糊内核大小
    cv.imshow("blur_demo", dst)#展示模糊后的图像,第一个参数是图像的窗口的名字,第二个是待显示的图像
if __name__ == "__main__":
    src = cv.imread("snp.jpg")#载入名为‘snp,jpg'的图片
    blur_demo(src)#进入函数
cv.waitKey()
cv.destroyAllWindows()

  1. 中值滤波
    先生成一个椒盐图片,如图:

    椒盐图片的形成代码:
import numpy as np

import random

import cv2

def sp_noise(image, prob):

    output = np.zeros(image.shape, np.uint8)#第一个参数是:形状,第二个参数是:把图片转换成np.uint8进行各种操作

    thres = 1 - prob#添加椒盐噪声prob

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

        for j in range(image.shape[1]):

            rdn = random.random()#用于生成一个0到1的随机浮点数

            if rdn < prob:

                output[i][j] = 0

            elif rdn > thres:

                output[i][j] = 255

            else:

                output[i][j] = image[i][j]

    return output

img = cv2.imread("snp.jpg")

# 添加椒盐噪声,噪声比例 0.02

out = sp_noise(img, prob=0.02)

cv2.imshow("img", out)

cv2.waitKey()

通过中值滤波后:
python中各种滤波对图片的影响_第4张图片
通过滤波后仍然有少量的椒盐噪声,而且图片变得比原图片模糊了。

  1. 高斯滤波
    高斯滤波简单来说就是某一像素被周围像素的加权平均值来代替。最直观的例子就是美图秀秀中的背景虚化。
    其他滤波方式后面学到会再写,这篇文章是依靠这位前辈的代码完成的
    添加链接描述

你可能感兴趣的:(笔记,opencv,python,机器学习)