【OpenCv 4 Python 3.7】模糊操作(均值模糊 中值模糊 自定义模糊 高斯模糊)

Opencv之图像滤波:5.中值滤波(cv2.medianBlur) 之前介绍的均值滤波、方框滤波、高斯滤波,都是线性滤波方式。由于线性滤波的结果是所有像素值的线性组合,因此含有噪声的像素也会被考虑进去,噪声不会被消除,而是以更柔和的方式存在。这时使用非线性滤波效果可能会更好。中值滤波与前面介绍的滤波方式不同,不再采用加权求均值的方式计算滤波结果。它用邻域内所有像素值的中间值来替代当前像素点的像素值。 5.1 原理介绍 中值滤波会取当前像素点及其周围临近像素点(一共有奇数个像素点)的像素值,将这些像素值排序,然后将位于中间位置的像素值作为当前像素点的像素值。 对如下矩.. 阅读详情

一、均值模糊 中值模糊 自定义模糊

在这里插入图片描述

  1. 基于离散卷积
  2. 定义好每个卷积核
  3. 不同卷积核得到不同的卷积效果
  4. 模糊是卷积的一种表象
    在这里插入图片描述

一、均值模糊blur

opencv有一个专门的平均滤波模板供使用–归一化卷积模板,所有的滤波模板都是使卷积框覆盖区域所有像素点与模板相乘后得到的值作为中心像素的值。

均值模糊函数blur():

定义:blur(src,ksize,dst=None, anchor=None, borderType=None)

定义是有5个参数,但最后三个均为none,所以也就2个参数

src:要处理的原图像

ksize: 必须是奇数卷积核,周围关联的像素的范围:代码中(5,5)就是5*5的大小,就是计算这些范围内的均值来确定中心位置的大小

二、中值模糊mediablur

中值滤波模板就是用卷积框中像素的中值代替中心值,达到去噪声的目的。 这个模板一般用于去除椒盐噪声。 前面的滤波器都是用计算得到的一个新值来取代中心像素的值,而中值滤波是用中心像素周围(也可以使他本身)的值来取代他,卷积核的大小也是个奇数。
中值模糊函数medianBlur():

定义:medianBlur(src, ksize, dst=None)

ksize与blur()函数不同,不是矩阵,而是一个数字,例如为5,就表示了5*5的方阵

中值滤波对于这些白点噪声的去除是非常的好的。

三、自定义模糊fileter 2D

推文:图像滤波函数imfilter函数的应用及其扩展

Opencv提供的一个通用的2D滤波函数为cv2.filter2D(),
滤波函数的使用需要一个核模板,对图像的滤波操作过程为:将和模板放在图像的一个像素A上,求与之对应的图像上的每个像素点的和,
核不同,得到的结果不同,而滤波的使用核心也是对于这个核模板的使用,需要注意的是,该滤波函数是单通道运算的,
也就是说对于彩色图像的滤波,需要将彩色图像的各个通道提取出来,对各个通道分别滤波才行。

filter2D(src,ddepth,kernel):

ddepth:深度,输入值为-1时,目标图像和原图像深度保持一致

kernel: 卷积核(或者是相关核),一个单通道浮点型矩阵
常用卷积核:
在这里插入图片描述
在这里插入图片描述

(均值模糊 中值模糊 自定义模糊 )代码实现:

import cv2 as cv
import numpy as np


def blur_demo(image): #均值模糊(去噪)
    dst = cv.blur(image, (5, 5)) #卷积层 5行5列
    cv.imshow("blur_demo", dst)


def median_blur_demo(image): #中值模糊(去噪:椒盐噪声)
    dst = cv.medianBlur(image, 5)
    cv.imshow("median_blur_demo", dst)


def custom_blur_demo(image): #自定义模糊
    #kernel = np.ones([5, 5], np.float32)/25 #去噪
    # 锐化(数值总和 = 0 一般是做边缘梯度,数值总和 = 1 一般是做图像增强) 提高对比度
    kernel = np.array([[0, -1, 0],[-1, 5, -1],[0, -1, 0]], np.float32) #锐化(数值总和 = 0 一般是做边缘梯度,数值总和 = 1 一般是做图像增强)
    dst = cv.filter2D(image, -1, kernel=kernel) #kernel=kernel 算子
    cv.imshow("custom_blur_demo", dst)


print("--------- Hello Python ---------")
src = cv.imread("D:/vcprojects/images/demo.png")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)
custom_blur_demo(src)
cv.waitKey(0)

cv.destroyAllWindows()

二、高斯模糊

在这里插入图片描述

在这里插入图片描述
使用opencv高斯模糊

高斯平滑函数GaussianBlur()

定义:GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)

src,输入图像,即源图像,填Mat类的对象即可。它可以是单独的任意通道数的图片,但需要注意,图片深度应该为CV_8U,CV_16U, CV_16S, CV_32F 以及 CV_64F之一。
dst,即目标图像,需要和源图片有一样的尺寸和类型。比如可以用Mat::Clone,以源图片为模板,来初始化得到如假包换的目标图。
ksize,高斯内核的大小。其中ksize.width和ksize.height可以不同,但他们都必须为正数和奇数(并不能理解)。或者,它们可以是零的,它们都是由sigma计算而来。
sigmaX,表示高斯核函数在X方向的的标准偏差。  根据这个可以获取sigmaY,若是sigmaX和sigmaY都没有则根据ksize获取
sigmaY,表示高斯核函数在Y方向的的标准偏差。若sigmaY为零,就将它设为sigmaX,如果sigmaX和sigmaY都是0,那么就由ksize.width和ksize.height计算出来。
为了结果的正确性着想,最好是把第三个参数Size,第四个参数sigmaX和第五个参数sigmaY全部指定到。
borderType,用于推断图像外部像素的某种边界模式。注意它有默认值BORDER_DEFAULT。

(高斯模糊)代码实现:

import cv2 as cv
import numpy as np


def clamp(pv): #确保值在0-255之间
    if pv > 255:
        return 255
    if pv < 0:
        return 0
    else:
        return pv


def gaussian_noise(image):
    h, w, c = image.shape
    for row in range(h):
        for col in range(w):
            s = np.random.normal(0, 20, 3)
            b = image[row, col, 0]  # blue
            g = image[row, col, 1]  # green
            r = image[row, col, 2]  # red
            image[row, col, 0] = clamp(b + s[0])
            image[row, col, 1] = clamp(g + s[1])
            image[row, col, 2] = clamp(r + s[2])
    cv.imshow("noise image", image)


print("--------- Hello Python ---------")
src = cv.imread("E:/ji_qi_xue_xi/opencv_kejian/opencv_python_image/aaa.jpg")
cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.imshow("input image", src)

t1 = cv.getTickCount()
gaussian_noise(src)
t2 = cv.getTickCount()
time = (t2 - t1)/cv.getTickFrequency()
print("time consume : %s"%(time*1000))
dst = cv.GaussianBlur(src, (5, 5), 0) #高斯模糊API   (5, 5)的高斯窗口
cv.imshow("Gaussian Blur", dst)


cv.waitKey(0)

cv.destroyAllWindows()
opencv各类滤波器详解 1.低通滤波器 低通滤波器的效果是降低图像变化的幅度,即对图像进行模糊或平滑,它将一个像素替换为相邻矩形内的像素和,并除以相邻像素的个数(以得到平均值)。 //使用低通滤波器 #include #include using namespace cv; using namespace std; int main() { Mat src = imread("car.jpg"); Mat 阅读详情

相关推荐

python实现对图片进行均值滤波、中值滤波、高斯滤波处理及其原理和特点

python实现对图片进行均值滤波、中值滤波、高斯滤波处理及其原理和特点

weixin_53868909的博客 6105

CV10 图像模糊(均值、高斯、中值、双边滤波)

通过将图像与低通滤波器内核进行2D卷积来实现图像模糊。这对于消除噪音很有用。它实际上从图像中消除了高频部分(例如噪声,边缘)。因此,在此操作中边缘有些模糊。(有一些模糊技术也可以不模糊边缘)。OpenCV主要提供四种类型的模糊技术:均值模糊、高斯模糊、中值模糊和双边滤波模糊。 当我们只想得到感兴趣的物体时,通过图像模糊,可以将那些尺寸和亮度较小的物体过滤掉,较大的物体则易于检测。除了降低噪声,这就是图像平滑(模糊)的另一个重要应用:减少噪点,突出ROI,以便目标提取。 一 均值模糊 理论推导 均值模

yzfzzz的博客 2904

高斯模糊原理和python实现

高斯模糊是一种常见的模糊技术,相关知识点有:高斯函数、二维卷积。 (一)一维高斯分布函数 一维(连续变量)高斯函数形式如下,高斯函数又称“正态分布函数”: μ是分布函数的均值(或者期望),sigma是标准差。 一维高斯分布函数的图形: 从图可知,以x=0为中心,x取值距离中心越近,概率密度函数值越大,距离中心越远,密度函数值越小。 (二)二维高斯分布函数 二维高斯分布函数的形式: 特别说明,当变量x和y相互独立时,则相关系数ρ=0,二维高斯分布函数可以简化为...

qm5132的博客 1万+

OpenCV教程——图像模糊。均值模糊,高斯模糊,中值模糊,双边模糊,高斯分布

双边滤波也可以用下图表示,对P点进行模糊,Q点的距离虽然很近,但是像素值差距过大,所以Q点的权重很小,不会过多的考虑到Q点的信息,所以说双边滤波考虑到了边缘信息,避免了边缘信息的丢失。较小(其二维高斯分布概率密度函数图像见下图右),那么生成的掩膜的中心系数较大,而周围的系数较小,这样对图像的模糊效果就不是很明显;,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,也可能是亮的区域有黑色像素或是在暗的区域有白色像素(或者两者皆有)。(i,j)为模版窗口的其他系数的坐标,即(x1,x2)

2301_76484015的博客 5536

在 Python 中使用 OpenCV 高斯模糊我这张的丑脸

@Author:Runsen 谁都无法否认,长得好看的人就是更具有吸引力,赏心悦目谁都喜欢。好看的人无论在职场或情场,都一定更占优势。 但是,此「颜值」非彼「颜值」。一说到「颜值」,大部分想到的是脸蛋。 因此,对于我来说,希望模糊图像和视频的人脸。在本篇博客中,你将学习如何使用 Python 中的 OpenCV 库模糊图像和视频中的人脸。 为了模糊图像中显示的人脸,首先检测这些人脸及其在图像中的位置。对此,查看之前的一篇关于人脸检测的教程,在这里使用人脸检测的源代码。 我们使用基于SSD的人脸检测,具体源代

微信号:RunsenLiu 5578

【图像处理】——图像滤波(Python+opencv实现三种方法:均值滤波、中值滤波、高斯滤波等)

图像滤波也就是图像平滑化,图像平滑是一种区域增强的算法,平滑算法有邻域平均法、中指滤波、边界保持类滤波等。在图像产生、传输和复制过程中,常常会因为多方面原因而被噪声干扰或出现数据丢失,降低了图像的质量(某一像素,如果它与周围像素点相比有明显的不同,则该点被噪声所感染)。这就需要对图像进行一定的增强处理以减小这些缺陷带来的影响。图像平滑 有均值滤波、方框滤波、中值滤波和高斯滤波等.在opencv中都是通过一个搜索窗口即核来对图像进行扫描,将扫描后的结果经过处理作为新的像.

python_AI_fans的博客 4184

python-OpenCV:模糊操作,高斯模糊,原理及其代码解析。

系列文章目录 本文针对模糊操作由浅入深做原理及代码解析。 文章目录系列文章目录模糊模糊是什么模糊操作的原理基于离散卷积的模糊均值模糊中值模糊自定义模糊高斯模糊(重点)高斯分布高斯模糊 模糊 模糊是什么 在学习之前,必须要清楚的是模糊是什么?说得最直观一点就是,假设一个人是600度的近视,他离另一个人2米时,戴眼镜时看到的图像转化到不戴眼镜时看到的图像就是模糊的过程。 但是在计算机视觉领域,我们不能从人的感观来说。 模糊,属于低通滤波的一种,它称为模糊,也可以称为平滑。 低通滤波是一种信号过滤方式,指的

qq_45804132的博客 5051

ESXI 8.0虚拟机安装OpenWRT软路由详细教程

OpenWrt 是嵌入式的 Linux 路由器固件,OpenWrt在稳定运行的同时提供了强大的扩展能力,用户可以完全的定制属于自己的路由系统,满足不一样的个性化需求,本文讲解如何使用ESXI安装OpenWRT,打造属于自己的软路由。本次安装使用的是版本。默认登录信息:用户:root密码:password下载固件:https://github.com/haiibo/OpenWrt/releases/tag/X86_64【CPU配置】:4核心。

qq_27121281的博客 3915

【opencv-python】均值滤波、中值滤波、高斯滤波、图像锐化的代码实现

import time import cv2 import numpy as np """均值滤波、中值滤波、高斯滤波、图像锐化""" ''' 均值滤波的实现 path:图像路径 ksize:卷积核大小 ''' def Mean_blur(path, ksize): time_start = time.time() '''读取图像''' image = cv2.imread(path, 1) '''resize''' height = 400 widt

jxyyyy的博客 1万+

Matlab机械臂建模:机器人工具箱的使用&&导入自己的机械臂模型

本文主要介绍如何在matlab中建立机械臂模型(前提要下载了Robotics Toolbox机器人工具箱~),并进行基于正逆运动学计算的轨迹运动。对于已有的Solidworks机械臂三维模型,如何导入Matlab,并对其进行运动控制。

m0_46427461的博客 5万+

Fedproto:原型聚合的联邦学习框架

文中说明,联邦学习通过计算传递梯度聚合模型时,客户端之间的异构性通常会阻碍模型优化收敛和泛化性能。故本文提出新的FedProto框架,将梯度替换成为原型,通过计算、聚合从不同客户端收集到的本地原型,然后将全局原型发送回所有客户端,以规范本地模型的训练。对每个客户机进行局部训练的目的是最小化对本地数据的分类损失,同时保持生成的本地原型足够接近相应的全局原型(损失函数最小+正则)。什么是原型?文中提到:“

weixin_47754029的博客 2650

【OpenCV】(均值、中值、自定义)模糊操作

文章目录1.模糊操作概念2.均值、中值、自定义模糊2.1 均值模糊cv.blur2.2 中值模糊cv.medianBlur2.3 自定义模糊cv.filter2D 1.模糊操作概念   模糊操作分类:   1.均值模糊   2.中值模糊   3.自定义模糊   模糊操作基本原理:   1.模糊原理:离散卷积   2.定义好每个卷积核,不同卷积核达到不同的卷积效果   3.迷糊是卷积的一种表象   卷积原理:            2.均值、中值、自定义模糊 2.1 均值模糊cv.blur   对随机噪声有很

qq_36926037的博客 773

MPN – 制造商物料编号(延伸)

此外,用户还可以在物料主数据中定义阻止MPN材料的原因,以及在采购订单创建时,是否可以将现有的MPN材料修改为其他MPN材料,从而实现对MPN材料的精细控制和管理。通过使用AMPL,用户可以指定每个MPN材料是否仅能为特定工厂或整个企业所有工厂采购、采购的时间段、是否必须属于特定修订级别、是否只能从特定制造商工厂采购以及是否被阻止及其原因。通过AMPL管理,企业可以规范采购流程,避免使用未经批准的材料,从而提高采购的透明度和效率,同时也为质量控制提供了保障‌。3、QM中的制造商物料。质量信息记录QI01。

yanzibing99的博客 2487

python中图像模糊算法(均值,中值,自定义模糊),边缘保留滤波算法参数说明

模糊处理算法       均值模糊--------------------------------------------------------------blur()       中值模糊-------------------------椒盐噪声处理效果非常明显--------------------medianBlur()       高斯模糊---------------------...

wx601056818的博客 4588

神经元细胞结构刨析(持续更新)

神经细胞的学习笔记

weixin_46596227的博客 2222

YOLO26涨点改进| TGRS 2026 | 独家自研创新、检测头改进篇| AHATHead自适应混合注意力检测头,二次创新,强化特征表达与目标判别能力,适合遥感小目标检测、小目标检测有效涨点

🔥本文提出了一种改进YOLO26模型的AHATHead自适应混合注意力检测头,通过融合全局与局部注意力机制增强特征表达能力。该方法采用动态权重分配策略,在预测阶段自动调整关键区域与通道特征权重,有效提升小目标和密集场景的检测性能。实验表明,AHATHead在保持较高推理效率的同时,显著提高了目标定位精度与类别判别能力。文章详细介绍了模块结构、实现原理和代码集成步骤,并提供了两种改进配置方案(yolo26_AHATHead.yaml和yolo26_RFHA-YOLO-AHATHead.yaml)

Ai缝合怪、助力小伙伴高效发论文 159

OpenCV中的模糊处理(python)

OpenCV中的模糊处理一级目录二级目录三级目录 一级目录 二级目录 三级目录

HL_HLT的博客 5340

几款开源的自动驾驶仿真平台项目

它被开发为一个虚幻的插件,可以简单地放到任何你想要的虚幻环境中。第一类是基于合成的数据,对环境、感知及车辆进行模拟,这里的感知大多数是图像层面的感知,这类模拟器主要用于感知、规划算法的初步开发上,Carla、AirSim、Udacity self-driving car simulator就属于这类;第二类是基于真实数据的回放,这里的真实数据包括图像、lidar、radar等各种传感器的数据,这类模拟器主要用于测试无人驾驶中信息融合算法以及车辆不同部件的性能,Apollo和Autoware就属于这类。

南七小僧的学海无涯 2850

OpenCV—Python 图像滤波(均值、中值、高斯、高斯双边、高通等滤波)

一、图像处理——滤波 过滤 :是信号和图像处理中基本的任务。其目的是根据应用环境的不同,选择性的提取图像中某些认为是重要的信息。过滤可以移除图像中的噪音、提取感兴趣的可视特征、允许图像重采样等等。 频域分析 :将图像分成从低频到高频的不同部分。低频对应图像强度变化小的区域,而高频是图像强度变化非常大的区域。 在频率分析领域的框架中,滤波器是一个用来增强图像中某个波段或频率并阻塞(或降低)其他频率波...

红叶谷 wsp_1138886114的博客 4万+

基于高斯两步移动搜寻法(2SFCA)的城市绿地可达性分析

第二步,对于每一个街道i,给定空间距离阈值d0,便形成另一个空间作用域,同样对于落在空间作用域内的每块绿地l的供给比率(Rl)利用高斯方程赋以权重,然后对这些加权后的供给比率(Rl)进行加和,便得到每个街道i的绿地可达性Ai。图3与图4是高斯两步移动搜索法的示例。在图3中,以d0为阈值,有1、2、3 三个街道中心点落在了绿地a的空间作用域内。同样在图4中,以d0为阈值,有a、c两个绿地中心点落在了街道2的空间作用域内,根据公式(3),对a、c高斯方程加权后的供需比率进行累加,便得到了街道2 的绿地可达性。

2301_77310370的博客 2405

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python-OpenCV 处理图像(六):模糊操作(均值模糊、中值模糊)

import cv2 import numpy as np __author__ = "zxsuperstar" __email__ = "zxsuperstar@163.com" def blur_demo(image): #均值模糊 去随机噪声有很好的去燥效果 dst = cv2.blur(image,(5,5)) cv2.imshow("dst",dst) d...

zx_good_night的博客 2056

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【OpenCV-Python】教程:3-4 平滑去噪,高斯平滑,均值滤波,中值滤波

和一维信号一样,图像也可以通过低通滤波器和高通滤波器进行滤波;低通滤波器可以模糊图像和去除噪声,高通滤波器可以用于找图像边缘。

2567

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

210_Python+OpenCV_04_模糊(均值、中值、高斯)

一、 均值模糊 1. 基于平均值 # -*- coding:utf-8 -*- # Linda Li 2019/8/19 9:08 cv_22_均值模糊 PyCharm import cv2 as cv import numpy as np def blur_demo(image): """均值模糊——用于随机去噪""" # 定义一个一行三列的卷积盒(1,3)代表x和y方向...

weixin_44304362的博客 580

Python OpenCV 图片高斯模糊

Python OpenCV 高斯模糊,今天的1个小时只学习1个函数吧

梦想橡皮擦,专栏100例写作模式先行者,现象级专栏 《Python 爬虫 100 例》作者、《滚雪球学 Python 专栏》原创者 2万+

opencv模糊图像变清晰_opencv-python 4.2图像模糊

图像模糊可以去除噪音。 import cv2 import numpy as np image = cv2.imread("dogcat1.jpg") cv2.namedWindow("input image", cv2.WINDOW_AUTOSIZE) cv2.imshow("input image", image) #均值模糊 dst = cv2.blur(image, (5,...

weixin_39595621的博客 7907

Python+OpenCV(六)——均值/中值/自定义/高斯模糊、高斯噪声处理、高斯双边滤波

Python+OpenCV(六)——均值/中值/自定义/高斯模糊、高斯噪声处理 学习视频:python+opencv3.3视频教学 基础入门 其他学习记录: Python+OpenCV(一)——基础操作 Python+OpenCV(二)——Numpy模块 Python+OpenCV(三)——色彩空间 Python+OpenCV(四)——像素运算 Python+OpenCV(五)——ROI和泛洪填充 源码如下: # -*- coding = utf-8 -*- # @Time : 2021/8/2 15:41

Cat_South_North的博客 690
上一篇: 【OpenCv 4 Python 3.7】ROI与泛洪填充
下一篇: 基于python3的Opencv图像处理教程(从零到实践)(贾志刚)pdf笔记、代码
YL_python_C++_java
博客等级 码龄7年 1392粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值