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.hqwc.cn/news/454255.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用代理IP有风险吗?如何防范潜在的风险?

代理IP用途无处不在。它们允许您隐藏真实IP地址,从而实现匿名性和隐私保护。这对于保护个人信息、绕过地理受限的内容或访问特定网站都至关重要。 然而,正如任何技术工具一样,代理IP地址也伴随着潜在的风险和威胁。不法分子可能会滥用代理IP…

【八大排序】选择排序 | 堆排序 + 图文详解!!

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构冒险记 ✅C语言进阶之路 🌅 有航道的人,再渺小也不会迷途。 文章目录 一、选择排序1.1 基本思想1.2 算法步骤 动图演示1.3 代码实现1.4 选择排序特性总结 二…

ThinkPad T430 黑苹果Hackintosh 使用OpenCore成功安装macOS 14.3 Sonoma

先放几张图,如果有感兴趣的,点个赞再走呗。 有人想看,我也有动力去慢慢补文字,讲述一下详细过程。 过去一直以为,老电脑只能黑苹果低版本的macOS 今天成功安装了最新的Sonoma,运行流畅,连超高…

C++进阶--搜索二叉树

概念 搜索二叉树是一种特殊的二叉树,其具有以下特点: 1.对于每个结点,它的左子树中的所有节点的值都小于该节点的值,而右子树中的所有节点的值都大于该节点的值。 2.左子树和右子树都是搜索二叉树。 这个 特性使得搜索二叉树可…

《合成孔径雷达成像算法与实现》Figure6.5

clc clear close all参数设置 距离向参数设置 R_eta_c 20e3; % 景中心斜距 Tr 2.5e-6; % 发射脉冲时宽 Kr 20e12; % 距离向调频率 alpha_os_r 1.2; % 距离过采样率 Nrg 320; % 距离线采样数 距离向…

SpringbootV2.6整合Knife4j 3.0.3 问题记录

参考 https://juejin.cn/post/7249173717749940284 近期由于升级到springboot2.6X,所以服务端很多组件都需要重新导入以及解决依赖问题。 下面就是一个很经典的问题了, springboot2.6与knife4j的整合。 版本对应 springboot2.6与knife4j 3.0.3 坑 …

【UE 材质】扇形材质

目录 效果 步骤 (1)控制扇形的弧宽度 (2)控制扇形的角度 (3)完整节点 效果 步骤 (1)控制扇形的弧宽度 创建一个材质,混合模式设置为“Additive”,着色…

Python中的HTTP代理与网络安全

在当今数字化的世界里,网络安全已经成为我们无法忽视的重要议题。无数的信息在网络上传递,而我们的隐私和敏感数据也在这个过程中可能面临被窃取或滥用的风险。在Python编程中,HTTP代理作为一种工具,能够在网络安全方面发挥重要的…

JVM 性能调优 - Java 中的四种引用(4)

为什么会有四种引用 我们先回顾下在 Java 虚拟机内存体系(1) 中提到了的垃圾回收算法 1、引用计数法 原理:给对象添加一个引用计数器,每当有一个地方引用它,计数器的值就加一。每当有一个引用失效,计数器的值就减一。当计数器值为零时,这个对象被认为没有其他对象引用,…

瑞_数据结构与算法_B树

文章目录 1 什么是B树1.1 B树的背景1.2 B 的含义1.3 B-树的度和阶1.4 B-树的特性1.5 B-树演变过程示例 2 B-树的Java实现2.1 B树节点类Node 🙊前言:本文章为瑞_系列专栏之《数据结构与算法》的B树篇。由于博主是从B站黑马程序员的《数据结构与算法》学习…

【高质量精品】2024美赛A题22页word版成品论文+数据+多版本前三问代码及代码讲解+前四问思路模型等(后续会更新)

一定要点击文末的卡片,进入后,即可获取完整资料后续参考论文!! 整体分析:这个题目是一个典型的生态系统建模问题,涉及到动物种群的性比例变化、资源可用性、环境因素、生态系统相互作用等多个方面。这个题目的难点在于如何建立一个合理的数学…

ppt形状导入draw.io

draw.io里面的形状还是有点少,我有时想找一个形状,发现PPT里有,但draw.io里有,比如 也就是这个形状 最简单的想法就是我直接把这个形状在PPT里存成图片(png),然后再导入到draw.io里,但是结果是…