OpenCV库学习之cv2.medianBlur函数

news2024/9/9 6:40:46

OpenCV库学习之cv2.medianBlur函数

一、简介

cv2.medianBlur 是 OpenCV 库中的一个函数,用于对图像进行中值滤波。中值滤波是一种非线性的数字滤波技术,它将图像中每个像素的值替换为该像素周围邻域内的中值。这种滤波方法对于去除**椒盐噪声(salt-and-pepper noise)**特别有效,并且可以保持边缘信息,因此常用于图像的预处理阶段。

二、语法和参数

语法:

dst = cv2.medianBlur(src, ksize)

参数:

  • src: 输入图像,必须是单通道灰度图像或多通道彩色图像。
  • ksize: 滤波器的大小,必须是一个正奇数,例如3, 5, 7等。

返回值:

  • dst: 输出图像,与输入图像 src 具有相同的大小和类型。

三、实例

3.1 基本使用

假设我们有一个名为 lena.png 的图像文件,我们将对其进行中值滤波处理。

代码:

import cv2

# 读取图像
src = cv2.imread('lena.png', 0)

# 应用中值滤波
dst = cv2.medianBlur(src, 5)

# 显示原始图像和滤波后的图像
cv2.imshow('Original Image', src)
cv2.imshow('Median Blurred Image', dst)

# 等待按键后关闭所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:
由于这是一个图像处理函数,输出将是滤波后的图像,显示在窗口中。这里没有文本输出。

3.2 处理彩色图像

如果我们有一个彩色图像,我们也可以对其应用中值滤波。

代码:

import cv2

# 读取彩色图像
src_color = cv2.imread('color_input.jpg')

# 应用中值滤波
dst_color = cv2.medianBlur(src_color, 5)

# 显示原始彩色图像和滤波后的彩色图像
cv2.imshow('Original Color Image', src_color)
cv2.imshow('Median Blurred Color Image', dst_color)

# 等待按键后关闭所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:
同样,这里没有文本输出,但是会有两个窗口显示原始的彩色图像和滤波后的彩色图像。

四、注意事项

  1. ksize 必须是正奇数,否则函数会抛出错误。
  2. 中值滤波对图像的边缘像素处理可能不是最优的,因为边缘像素的邻域可能不完整。
  3. 由于中值滤波是非线性的,它不会像线性滤波器那样产生模糊效果,但它能有效去除椒盐噪声。
  4. 在处理图像之前,确保图像已经正确加载,并且路径正确无误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962711.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解 Go 数组、切片、字符串

打个广告:欢迎关注我的微信公众号,在这里您将获取更全面、更新颖的文章! 原文链接:深入理解 Go 数组、切片、字符串 欢迎点赞关注 前言 为什么在一篇文章里同时介绍数组、切片、字符串,了解这三个数据类型底层数据结构…

【人工智能专栏】Beam Search 束搜索

Beam Search 束搜索 这里是一个 beam_size=2 的Beam Search示意图,每个节点都会扩展5个下级节点,在 Beam Search 每次都会从所有扩展节点里面挑选出2个累计启发值最大的节点,直到达到结束标准。 理念 Beam Search 是对 Greedy Search(贪心搜索)的一个改进算法,能够扩展…

windows常用的dos命令

1.打开dos命令窗口: winr -> 输入cmd -> 回车 进入之后可以看到如下界面 其中 c: 代表盘符users: 代表的是磁盘符目录下的文件夹qayrup lin 是users文件夹下的子文件夹 以上的所有构成了我们当前操作的所在位置 常用的dos命令 作用命令切换盘符盘符名: -> 回车盘…

昇思25天学习打卡营第26天|Diffusion扩散模型

看了这个diffusion扩散模型,不得不感慨现在AI还是很厉害的。从一张包浆的图片,可以还原出来图片本来的面目,甚至可能一张打了马赛克的图片,用AI处理可能也可以还原出来原始图片。攻防战在AI加入战斗后又增加了很多变数。 受限于算…

【Bug收割机】已解决使用maven插件打包成功,在控制台使用mvn命令打包失败问题详解,亲测有效!

文章目录 前言问题分析报错原因解决方法私域 前言 在maven项目中,大家经常会使用maven插件来打包项目文件 但是有的人也习惯使用mvn命令在控制台直接进行打包,因为这样可以自定义组装一些命令,使用起来也更加灵活方便,比如mvn pa…

前端开发实用的网站合集

文章目录 一、技能提升篇vueuseJavaScript中文网JavaScript.infoRxJsWeb安全学习书栈网码农之家 二、UI篇iconfont:阿里巴巴矢量图标库IconPark3dicons美叶UndrawError 404摹克 三、CSS篇You-need-to-know-cssCSS TricksAnimate.cssCSS ScanCSS Filter 四、颜色篇中…

Java真人版猫爪老鼠活动报名平台系统

🐾“真人版猫爪老鼠活动报名平台系统”——趣味追逐,等你来战!🐭 🐱【萌宠变主角,现实版趣味游戏】 厌倦了电子屏幕的虚拟游戏?来试试“真人版猫爪老鼠活动”吧!在这个平台上&…

android java socket server端 可以不断的连接断开,不断的收发 TCP转发

adb.exe forward tcp:5902 tcp:5902 前面本地5901 转发到 后面设备为5902查看转发 adb forward --list删除所有转发 adb forward --remove-allpublic static final String TAG "Communicate";private static boolean isEnable;private final WebConfig webConfig;//…

jenkins流水线语法--withCredentials篇

jenkins流水线语法--withCredentials篇 (在流水线代码中不显示明文密码) 在jenkinsfile中进行harbor登录上传镜像时直接用的密码,在代码中不怎么严谨,也缺失安全性;在网上查找资料和大佬们的博客,得出一篇完…

一起来做几道有趣的概率题

看到一篇叫做《和上帝一起掷骰子》的文章,里面提到了很多概率有关的问题,不少经过计算得出的概率都与人第一看上去产生的直觉大相径庭。所以,人类的直觉往往是靠不住的。 举两个例子: 若1千人中有1人携带hiv病毒,有一种…

电脑卡了怎么办?

在日常使用电脑的过程中,我们可能会遇到各种各样的问题,其中电脑卡顿是很让人心烦的问题之一。电脑卡顿不仅会影响我们的工作效率,还会让人感到非常烦恼。本文将详细介绍电脑卡顿的常见原因及其解决方法,帮助大家轻松应对这一问题…

深入浅出消息队列----【延迟消息的实现原理】

深入浅出消息队列----【延迟消息的实现原理】 粗说 RocketMQ 的设计细说 RocketMQ 的设计这样实现是否有什么问题? 本文仅是文章笔记,整理了原文章中重要的知识点、记录了个人的看法 文章来源:编程导航-鱼皮【yes哥深入浅出消息队列专栏】 粗…

四步教你快速解决UE5文件迁移失败❗️

本期作者:尼克 易知微3D引擎技术负责人 不知道大家在用UE5迁移文件时,有没有发现这个问题:如果文件输出的路径选择了非项目路径,那么UE会提示无法迁移。在UE4中,这样做是不存在问题的,只要选择「忽略」就可…

OS—文件系统

目录 一. 文件系统结构I/O 控制层基本文件系统文件组织模块逻辑文件系统 二. 文件系统布局文件系统在磁盘中的结构主引导记录(MasterBoot Record,MBR)引导块(boot block)超级块(super block)文件系统中空闲块的信息 文件系统在内存中的结构 三. 外存空间管理空闲表法空闲链表法…

关于CDN

CDN 代表内容分发网络(Content Delivery Network)它是一种通过将内容复制到多个地理位置分散的服务器上,从而加速网络内容传输的技术。CDN 的主要目的是提高用户访问速度、减少延迟和提升网站的可靠性。 具体来说,CDN 通过以下方…

飞创直线模组桁架机械手优势及应用领域

随着工业自动化和智能制造的发展,直线模组桁架机械手极大地减轻了人类的体力劳动负担,在危险性、重复性高的作业环境中展现出了非凡的替代能力,引领着工业生产向自动化、智能化方向迈进。 一、飞创直线模组桁架机械手优势 飞创直线模组桁架…

爬虫问题---ChromeDriver的安装和使用

一、安装 1.查看chrome的版本 在浏览器里面输入 chrome://version/ 回车查看浏览器版本 Chrome的版本要和ChromeDriver的版本对应,否则会出现版本问题。 2.ChromeDriver的版本选择 114之前的版本:https://chromedriver.storage.googleapis.com/index.ht…

mmdetection:用于目标检测、实例分割、全景分割和半监督目标检测的工具包

MMDetection 是一个基于 PyTorch 的开源目标检测工具箱,是 OpenMMLab 项目的一部分。该工具箱采用模块化设计,使用户能够通过组合不同组件轻松构建自定义的目标检测框架。 MMDetection 支持多种检测任务,包括目标检测、实例分割、全景分割和…

【ROS 最简单教程 002/300】ROS 集成开发环境安装: Noetic

💗 有遇到安装问题可以留言呀 ~ 当时踩了挺多坑,能帮忙解决的我会尽力 ! 1. 安装操作系统环境 Linux ❄️ VM / VirtualBox Ubuntu20.04 如果已有 linux 环境 (如双系统等),可跳过步骤 1 ~ 👉 保姆级图文安装教程指路…