Opencv学习笔记(四)图像滤波

本文介绍了图像处理中的滤波技术,包括均值滤波、中值滤波、高斯滤波和双边滤波,并提供了使用OpenCV库在Python中实现这些滤波操作的代码示例。通过调整滤波窗口大小,可以有效地抑制图像噪声,提升图像质量。
摘要由CSDN通过智能技术生成

文章目录


图像滤波的目的是抑制图像中的噪声。

滤波技术

图像滤波技术
1.均值滤波:将滤波窗口内的所有像素值求和,取得平均值作为中心像素的值。
2.中值滤波:将滤波窗口(含有奇数个点)内的像素值按照从小到大的顺序排列,取得中值作为中心像素的值。它可以有效的抑制椒盐噪声。
3.高斯滤波:将滤波窗口内的像素值进行高斯加权求和,求得的值作为中心像素的值。高斯滤波只能去除高斯噪声。
cv2.GaussianBlur():需要指定X 、Y方向的标准差,如果只指定X方向,Y方向也取相同的值。如果两个方向的标准差都为0,函数会根据核函数的大小自动计算。
4.双边滤波:使用空间高斯权重和灰度值相似性高斯权重,根据每个位置的邻域对该位置构建不同的权重模板。

代码

import cv2

# 读取图像
img = cv2.imread(r'F:\OPENCV\Opencv\flower.jfif', cv2.IMREAD_COLOR)
cv2.namedWindow('src_img', cv2.WINDOW_NORMAL)
cv2.resizeWindow('src_img', (300, 300))
cv2.imshow('src_img', img)
# 灰度图像
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.namedWindow('gray_img', cv2.WINDOW_NORMAL)
cv2.resizeWindow('gray_img', (300, 300))
cv2.imshow('gray_img', gray_img)
# 均值滤波
blur_img = cv2.blur(gray_img, (5, 5))
cv2.namedWindow('blur_img', cv2.WINDOW_NORMAL)
cv2.resizeWindow('blur_img', (300, 300))
cv2.imshow('blur_img', blur_img)
# 中值滤波
medianBlur_img = cv2.medianBlur(gray_img, 5)
cv2.namedWindow('medianBlur_img', cv2.WINDOW_NORMAL)
cv2.resizeWindow('medianBlur_img', (300, 300))
cv2.imshow('medianBlur_img', medianBlur_img)
# 高斯滤波
gaussian_img = cv2.GaussianBlur(gray_img, (5, 5), 0)
cv2.namedWindow('gaussian_img', cv2.WINDOW_NORMAL)
cv2.resizeWindow('gaussian_img', (300, 300))
cv2.imshow('gaussian_img', gaussian_img)
# 双边滤波
bilateralFilter_img = cv2.bilateralFilter(gray_img, 9, 75, 75)
cv2.namedWindow('bilateralFilter_img', cv2.WINDOW_NORMAL)
cv2.resizeWindow('bilateralFilter_img', (300, 300))
cv2.imshow('bilateralFilter_img', bilateralFilter_img)

cv2.waitKey()
cv2.destroyAllWindows()

结果
在这里插入图片描述

图像滤波的方法和滤波窗口(核)的大小可根据实际情况选定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值