OpenCV学习记录——平滑处理

文章目录

  • 前言
  • 一、图像噪声
  • 二、图像平滑处理
  • 三、完整应用代码

前言

        当我们用树莓派进行opencv图像处理时,摄像头所获取的图像质量通常会有所下降,此时,需要多种手段来优化图像的质量,提高图像识别的准度。今天所记录的是当图片经过传输等过程后出现的图像噪声现象及对应解决方法——平滑

一、图像噪声

        在数字图像的采集、处理和传输过程中,可能会受到各种噪声干扰,这会导致图像质量下降、图像变得模糊,甚至使图像的特征难以辨认。为了增强图像的质量,我们需要对图像进行平滑处理,以去除这些噪声的影响。常见的图像噪声包括椒盐噪声高斯噪声等。

(1)椒盐噪声

        椒盐噪声也称为脉冲噪声,是一种随机出现的白点或黑点,具体表现为亮的区域有黑色像素,或是暗的区域有白色像素,又或是两者皆有

        下图中,左图为原图像右图为添加椒盐噪声的图像

(2)高斯噪声

        高斯噪声是指概率密度函数服从高斯分布(正态分布)的一类噪声

        下图中,左图为原图像右图为添加高斯噪声的图像

二、图像平滑处理

        从信号处理的角度分析,图像平滑就是去除其中的高频信息保留低频信息,即可以通过低通滤波来去除图像中的噪声,实现对图像的平滑处理。 根据滤波器的不同,滤波方式可分为均值滤波、高斯滤波和中值滤波

(一)均值滤波

        均值滤波就是对图像的所有像素点进行取均值,即以一个方形区域为单位,将该区域的中心像素点赋值为区域内所有像素点的平均值。如图所示3*3矩形,中心值为235,这个值由于过大,会形成黑点,即噪声图像,为了消除噪声,将这个点重新设置为以它为中心的九个点的平均值,即:

(23+98+168+46+235+2+67+55+211)\div 9 = 100.5

           

        均值滤波是一种简单的滤波方法,尤其对高斯噪声的消除有较好的作用,但通常会使图像的细节变的稍微模糊,在需要观察图像细节时不建议使用均值滤波

        均值滤波处理函数如下:

cv2.blur(scr, ksize)

其中的两个参数分别为:

(1)“scr”, 要处理的图像

(2) “ksize”, 滤波核的大小,它是一个表示宽度和高度的元组。例如,(3, 3)表示一个3*3的滤波核

(二)高斯滤波

        高斯滤波就是对图像的所有像素点进行加权平均,即以一个方形区域为单位,将其中心像素点赋值为该区域的加权平均值:

23*0.05+98*0.1+168*0.05+46*0.1+235*0.4+2*0.1+67*0.5+55*0.1+211*0.05 = 137

            

        高斯滤波考虑了像素周围邻域的距离,使得离中心像素更近的像素具有更高的权重,可以有效地去除噪声,同时保留图像的边缘和细节

        高斯滤波处理函数如下:

cv2.GaussianBlur(src, ksize, sigmaX, sigmaY, borderType)

其中的五个参数分别为:

(1)“src”, 要处理的图像

(2)“ksize”, 高斯滤波核的大小,它是一个表示宽度和高度的元组。例如,(3, 3)表示一个3*3的滤波核

(3)“sigmaX”, X方向的高斯核标准差,通常可以写为0或者不写

(4)“sigmaY”, Y方向的高斯核标准差,如果sigmaY为0,则默认与sigmaX相同

(5)“borderType”, 边界处理类型,用于处理滤波核超出图像边界的情况

(三)中值滤波

        中值滤波就是对图像的所有像素点进行取中值,即以一个方形区域为单位,将其中心像素点赋值为该区域的中值。例如下图所示3*3矩形中:2、23、46、55、67、98、168、211、235,其中67为中值,所以将中心设置为67

             

        中值滤波是一种非线性滤波方法,对于去除椒盐噪声等椒盐噪声非常有效,但可能会导致图像细节模糊

        中值滤波处理函数如下:

cv2.medianBlur(src, ksize)

(1)“scr”, 要处理的图像

(2) “ksize”, 滤波核的大小,它是一个表示宽度和高度的元组。例如,(3, 3)表示一个3*3的滤波核

三、完整应用代码

三种滤波方法的具体应用代码如下:

import cv2

# 图像读取
img = cv2.imread('noise.jpg')

# 图像平滑
blur1 = cv2.blur(img, (5, 5))               # 均值滤波
blur2 = cv2.GaussianBlur(img, (5, 5), 1)    # 高斯滤波
blur3 = cv2.medianBlur(img, 5)              # 中值滤波

# 图像显示
cv2.imshow('image1', img)
cv2.imshow('image2', blur1)
cv2.imshow('image3', blur2)
cv2.imshow('image4', blur3)
cv2.waitKey(0)
cv2.destroyAllWindows()

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端_关于CSS中外边距塌陷问题

问题描述: 当子级块级元素修改带动父级块级元素整体向下移动 我们希望当自级块级元素修改时,父级元素保持不动,解决方法有三个: 原代码: 方案一:为父级元素添加一个内边距 方案二:为父级元素添加overflo…

详解 websocket

目录 一、什么是websocket 二、websocket 的用途 三、websocket 特点 四、websocket 帧 五、websocket URL 格式 六、发送消息 七、关闭会话的方式 八、关闭帧错误码 九、简单的websocket 代码 一、什么是websocket WebSocket该协议在规范RFC 6455中进行了描述&#…

网络原理TCP/IP(1)

在网络通信中,协议非常重要 协议进行了分层 应用层就是对应着应用程序,是程序员打交道最多的这一层,调用系统提供的网络api写出来的代码都是属于应用层的 应用层有很多现成的协议,但是更多的还是程序员需要根据实际场景自定义协议…

服务攻防-端口协议桌面应用QQWPS等RCEhydra口令猜解未授权检测

知识点: 1、端口协议-弱口令&未授权&攻击方式等 2、桌面应用-社交类&文档类&工具类等 章节点: 1、目标判断-端口扫描&组合判断&信息来源 2、安全问题-配置不当&CVE漏洞&弱口令爆破 3、复现对象-数据库&中间件&…

ComposeForDesktop之gradle下载器

文章 目录 前言一、简要的代码片段二、小工具获取 前言 最近使用gradle编译安卓的时候又出现了gradle下载超时的问题,经常性地手动下载再复制到目录,确实每次都做,每次都很繁琐。 于是有了今天这个软件地诞生,先放个截图。 一…

C++面试宝典第26题:螺旋矩阵

题目 给你一个正整数n,生成一个包含1到n的平方的所有元素,且元素按顺时针顺序螺旋排列成n x n的正方形矩阵。 示例: 输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 解析 螺旋矩阵是指按照顺时针(或逆时针)螺旋顺序排列元素的二维矩阵。比如:给定一个如下的3x3矩阵,按顺…

2024美赛数学建模F题思路分析 - 减少非法野生动物贸易

1 赛题 问题F:减少非法野生动物贸易 非法的野生动物贸易会对我们的环境产生负面影响,并威胁到全球的生物多样性。据估计,它每年涉及高达265亿美元,被认为是全球第四大非法交易。[1]你将开发一个由数据驱动的5年项目,…

jupyter notebook显示的扩展很少,只有四五个--解决方案

如下:安装好只有四五个扩展 可以先删除 conda remove jupyter_nbextensions_configurator 然后使用pip安装 pip install jupyter_contrib_nbextensions jupyter contrib nbextensions install --user pip install jupyter_nbextensions_configurator jupyter nbex…

ChatGPT真有很多人在用吗?——回答一位知友的问题

先上结论 是的。数据不会撒谎,用户拿脚投票,ChatGPT发布仅五天内就达到了100万用户,是有史以来增长最快的消费者应用程序。2023年全球前50款AI工具就收获了240亿次访问,其中ChatGPT收获了146亿次访问。 一些想法和思考 我的一些…

linux有关安全的几个基本配置,禁止root登录,新建root权限账号

一、不安装多余的软件,能最小化安装就不要安装图形化界面,然后根据需求安装需要的软件。 二、防火墙要启用,如果您的这台服务器对外有服务只要放开服务就好了,就是说白了白名单,切忌一上来第一件事儿就是关闭防火墙&a…

three.js CSS2DRenderer、CSS2DObject渲染HTML标签

有空的老铁关注一下我的抖音&#xff1a; 效果&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red;position: relative;"><…

Django响应(一)

一、HttpResponse与JsonResponse 1.1、HttpResponse 官网:https://docs.djangoproject.com/zh-hans/4.1/ref/request-response/#django.http.HttpResponse 返回给浏览器端的响应对象 from django.http import HttpResponse response = HttpResponse("Heres the text o…

数据结构+算法(第09篇):菜鸟也能“种”好二叉树!

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

2023年网信办约谈了上万家网站

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 网信办发布公告&#xff1a; 网信办在共约谈网站 10646 家;责令 453 家网站暂停功能或更新;下架移动应用程序 259 款;关停小程序 119 款;取消违法网站许可或备案、关闭违法网站 14624 家;关闭违法违规账号 127878 个…

windows 谷歌浏览器Chrome 怎么禁止更新

1.首先把任务管理器里的谷歌浏览器程序结束&#xff1a; &#xff08;鼠标在任务栏右击&#xff0c;出现任务管理器&#xff09; 2.windowr&#xff0c;输入services.msc 带有Google Update的服务&#xff0c;选择禁用。 3.windowr&#xff0c;输入taskschd.msc 任务计划程序…

CTF-WEB进阶与学习

PHP弱类型 在进行比较的时候&#xff0c;会先判断两种字符串的类型是否相等&#xff0c;再比较 在进行比较的时候&#xff0c;会先将字符串类型转化成相同&#xff0c;再比较 如果比较一个数字和字符串或者比较涉及到数字内容的字符串&#xff0c;则字符串会被转换成数值 并且…

[晓理紫]每日论文分享(有中文摘要,源码或项目地址)--大模型、扩散模型、视觉

专属领域论文订阅 关注{晓理紫|小李子}&#xff0c;每日更新论文&#xff0c;如感兴趣&#xff0c;请转发给有需要的同学&#xff0c;谢谢支持 如果你感觉对你有所帮助&#xff0c;请关注我&#xff0c;每日准时为你推送最新论文。 为了答谢各位网友的支持&#xff0c;从今日起…

如何分辨坏信息?

每当有社会热点&#xff0c;大家也许都会遇到一个困扰&#xff1a; 铺天盖地的信息&#xff0c;实在是太多了。究竟哪一些值得信任&#xff0c;哪些不值得信任&#xff1f;哪些可以接受&#xff0c;哪些最好保持怀疑&#xff1f; 我想用这篇文章&#xff0c;彻底把这个问题讲清…

day32 买卖股票的最佳时机Ⅱ 跳跃游戏 跳跃游戏Ⅱ

题目1&#xff1a;122 买卖股票的最佳时机Ⅱ 题目链接&#xff1a;122 买卖股票的最大时机Ⅱ 题意 整数数组prices[i]表示某股票的第i天的价格&#xff0c;每天可买卖股票且最多持有1股股票&#xff0c;返回最大利润 利润拆分&#xff0c;拆分为每天的利润 每天的正利…

【演讲比赛流程管理系统(C++版)】

一、演讲比赛程序需求 1.1、比赛规则 学校举行一场演讲比赛&#xff0c;共有12个人参加。比赛共两轮&#xff0c;第一轮为淘汰赛&#xff0c;第二轮为决赛 每名选手都有对应的编号&#xff0c;如10001~10012 比赛方式:分组比赛&#xff0c;每组6个人 第一轮分为两个小组&a…
最新文章