python环境用opencv实现多种滤波操作

2025-11-23 19:03:10

1、滤波或者叫模糊

常用的有 中值滤波 均值滤波 高斯滤波 高斯双边滤波 boxFilter 

其中中值滤波对椒盐噪声效果好(前文已有实验),双边效果好点但速度慢点。

本文还是以梅瓶图为例进行比较说明。

import cv2  as cvimport  numpy as npimport copyimport osfrom matplotlib import pyplot as pltfrom skimage.measure import compare_ssimimport random

image = cv.imread("c:\\meiping1.png", 1)cv.imshow("image", image)

python环境用opencv实现多种滤波操作

2、加噪声

NoiseImg = image.copy()for k in range(15000):  # Create 5000 noisy pixels    i = random.randint(0, image.shape[0] - 1)    j = random.randint(0, image.shape[1] - 1)    color = (random.randrange(256), random.randrange(256), random.randrange(256))    NoiseImg[i, j] = colorcv.imshow("randomcolorNoize", NoiseImg)

python环境用opencv实现多种滤波操作

3、# 中值滤波

NoiseImgCopy = NoiseImg.copy()

medianBlur = cv.medianBlur(NoiseImgCopy, 5)

cv.imshow("medianBlur", medianBlur)

python环境用opencv实现多种滤波操作

4、# 均值滤波Blur = cv.blur(NoiseImgCopy, (5, 5))cv.imshow("Blur", Blur)

python环境用opencv实现多种滤波操作

5、# 高斯滤波

GaussianBlur = cv.GaussianBlur(NoiseImgCopy, (5, 5), 0)

cv.imshow("GaussianBlur", GaussianBlur)

python环境用opencv实现多种滤波操作

6、# 高斯双边滤波

bilateralFilter = cv.bilateralFilter(NoiseImgCopy, 40, 75, 75)

cv.imshow("bilateralFilter", bilateralFilter)

# cv.imshow("NoiseImgg", NoiseImg)

python环境用opencv实现多种滤波操作

7、#方框滤波

boxFilter = cv.boxFilter(NoiseImgCopy, -1, (5,5), normalize=1)

cv.imshow("boxFilter", boxFilter)

python环境用opencv实现多种滤波操作

8、通常常用的 是高斯和中值滤波比较多用。常作为前期处理使用。有些比较厉害的滤波后期再介绍。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢