python学opencv|读取图像(五十五)使用cv2.medianBlur()函数实现图像像素中值滤波处理

【1】引言

在前述学习过程中,已经探索了取平均值的形式进行图像滤波处理。

均值滤波的具体的执行对象是一个nXn的像素核,对这个像素核内所有像素点的BGR值取平均值,然后把这个平均的BGR值直接赋给像素核中心位置的核心像素点,由此实现图像滤波。

实质上,这让图像变得更加模糊。

相关文章链接为:

python学opencv|读取图像(五十四)使用cv2.blur()函数实现图像像素均值处理-CSDN博客

既然有均值滤波,就会有中值滤波,这就是本次文章所要讲述的内容。

中值滤波调用的函数为:cv2.medianBlur()。

【2】官网教程

点击下方链接,直达cv2.medianBlur()函数的官网教程:OpenCV: Image Filtering

官网页面的解释为:

++图1 cv2.medianBlur()函数的官网说明++

官网对cv2.medianBlur()函数的参数解释为:

void cv::medianBlur (

InputArray src, #输入图像

OutputArray dst, #输出图像

int ksize ) #像素核大小

【3】代码测试

首先是引入模块和初始图像:

python 复制代码
import cv2 as cv  # 引入CV模块

# 读取图片
srcm = cv.imread('srcx.png')  # 读取图像srcx.png

然后进行中值滤波操作:

python 复制代码
#滤波计算
src1 = cv.medianBlur(srcm,3)  # 图像取平均值,像素核大小为(3,3)
src2 = cv.medianBlur(srcm,5)  # 图像取平均值,像素核大小为(5,5)
src3 = cv.medianBlur(srcm,7)  # 图像取平均值,像素核大小为(7,7)

之后显示和保存图像:

python 复制代码
# 显示结果
cv.imshow('srcm ', srcm)
cv.imshow('src1 ', src1)
cv.imshow('src2 ', src2)
cv.imshow('src3 ', src3)
cv.imwrite('src1.png',src1)
cv.imwrite('src2.png',src2)
cv.imwrite('src3.png',src3)
# 窗口控制
cv.waitKey()  # 图像不关闭
cv.destroyAllWindows()  # 释放所有窗口

代码运行相关的图像有:

++图2 初始图像srcx.png++

++++

++图3 中值滤波图像src1.png++

++图4 中值滤波图像src2.png++

++图5 中值滤波图像src3.png++

和调用cv2.blur()函数使用均值滤波处理一样,调用cv2.medianBlur()函数进行中值滤波处理后,由图2到图5可见,随着像素核的增大,图像越来越模糊。这提醒我们,控制像素核的大小,可以进一步控制图像的模糊程度。

【4】细节说明

和调用cv2.blur()函数使用均值滤波处理不同,cv2.blur()函数需要给出(nXn)大小的像素核,调用cv2.medianBlur()函数进行中值滤波处理使用的像素核只需要写出边长n,但这个边长也应该是奇数,cv2.medianBlur()函数会自动根据这个边长划定一个正方形的像素核。

像素核使用奇数大小会比较好,因为奇数大小会在最中间围成一个方格,这个方格就是核心方格,中值计算的值直接赋给这个核心方格。

++图6 滤波方式对比++

【5】总结

掌握了使用python+opencv实现调用cv2.medianBlur()函数进行中值滤波处理图像的技巧。

相关推荐
lllsure1 分钟前
Python基础语法
开发语言·python
winfredzhang1 小时前
使用Python 打造多格式文件预览工具 — 图、PDF、Word、Excel 一站式查看
python·pdf·word·excel·照片·查看,zip,复制
浩皓素1 小时前
Python连接云端服务器:基于Paramiko库的实践与问题剖析
python
致于数据科学家的小陈2 小时前
Go 层级菜单树转 json 处理
python·go·json·菜单树·菜单权限·children
伊织code2 小时前
MixTeX - 支持CPU推理的多模态LaTeX OCR
python·ai·ocr·latex·mixtex
jardonwang12 小时前
DeepInjectSQL - 基于 AI 生成对抗网络(GAN)的下一代 SQL 注入自动化漏洞猎手
python·测试工具·生成对抗网络·安全性测试
大G哥2 小时前
加速LLM大模型推理,KV缓存技术详解与PyTorch实现
人工智能·pytorch·python·深度学习·缓存
jndingxin2 小时前
OpenCV 图形API(77)图像与通道拼接函数-----对图像进行几何变换函数remap()
人工智能·opencv·计算机视觉
Python×CATIA工业智造2 小时前
深入解析多线程与多进程:从理论到Python实践
python·pycharm
qq_263_tohua2 小时前
第99期 dropout防止过拟合
pytorch·python·深度学习