高斯核原理详解+生成高斯核的Python代码

article/2025/10/3 2:56:09

要搞清楚高斯核的原理的话,把下面这篇博文认认真真看一遍就可以了,链接如下:
https://blog.csdn.net/u013066730/article/details/123112159

下面是我认为值得注意和需要补充说明的几点:
1 为什么高斯滤波能够让图像实现模糊化?
答:高斯滤波本质是低通滤通(有兴趣的同学可以查阅高斯滤波器的频率响应函数),即让信号(数据集)的低频部分通过,高频部分滤除。图像的细节其实主要体现在高频部分,所以经过高斯滤波,图像看起来就变模糊了。

2 为什么很多文章中说生成高斯核时,我们通常取的范围就是-3个标准差到+3个标准差的范围。
答:因为高斯分布中变量值取-3个标准差到+3个标准差时,即-3sigma到3sigma区间内时,就占整个分布的99.8%了,我们就大致认为该段分布已经包含了所有的情况。
在这里插入图片描述
在这里插入图片描述

3 下面两幅截图中的159、273是怎么来的?
在这里插入图片描述
在这里插入图片描述
答:其实就是把矩阵中所有元素相加,咱们先验证下,再说为什么。

>> 2+4+5+4+2+4+9+12+9+4+5+12+15+12+5+4+9+12+9+4+2+4+5+4+2ans =159>> 

在这里插入图片描述

>> 1+4+7+4+1+4+16+26+16+4+7+26+41+26+7+4+16+26+16+4+1+4+7+4+1ans =273>> 

在这里插入图片描述
为什么矩阵中的每个元素都要除以一个常数呢?
答:这其实是做归一化操作,这里的归一化其实是权重归一化,如果我们不对核做权重归一化的操作话,那么我们做了相关运算或卷积运算之后像素值就有可能不在0~255的范围内,这是我们不希望出现的,所以要对核做权重归一化操作;另外,我们也不希望做了相关运算或卷积运算之后像素的值被线性压缩在一个小范围内,所我们也要对核做权重归一化操作。
PS:什么是相关运算、什么又是卷积运算?答:看下面这篇博文就能搞清楚了。
https://blog.csdn.net/zhuwei0710/article/details/68169317
实际上博文https://blog.csdn.net/u013066730/article/details/123112159从下面的内容开始,以实际例子回答了这个问题:
在这里插入图片描述
4 是否需要仔细分析博文https://blog.csdn.net/u013066730/article/details/123112159对高斯核分离的原理介绍?
答:通常情况下不需要, 只需要知道高斯核分离的作用是加快运算速度。目前我们使用的图像处理工具MATLAB和OpenCV都自带高斯滤波函数,这些函数的内部是作了高斯核分离优化的。

5 标准差、均值相同,那么3阶高斯核、5阶高斯是否是惟一的?
答:不是惟一的。因为这还与我们在-3个标准差到+3个标准差的范围内取哪些变量值有关,比如我既可取-2,-1,0,1,2这五个点,也可以取-2.1,-1.1,0.1,1.1,2.1这五个点,显然,取值不一样,高斯核也不一样。

6 下面是自己用Python写的生成高斯核的代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#作者微信/QQ 2487872782
#有问题可以联系作者交流
# 代码中涉及到函数meshgrid()的使用,不清楚地可以参考我的博文
# https://blog.csdn.net/wenhao_ir/article/details/124124717import numpy as np
import syskernel_size = 5
sigma = 1if sigma == 0:print('Error!The value of sigma cannot be zero.')sys.exit()
else:sigma_3 = 3 * sigmaX = np.linspace(-sigma_3, sigma_3, kernel_size)Y = np.linspace(-sigma_3, sigma_3, kernel_size)x, y = np.meshgrid(X, Y)gauss_1 = 1 / (2 * np.pi * sigma ** 2) * np.exp(- (x ** 2 + y ** 2) / (2 * sigma ** 2))Z = gauss_1.sum() #计算归一化系数gauss_2 = (1/Z)*gauss_1

代码运行结果如下:
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/aGEpG67s.shtml

相关文章

C语言哈希表UT_hash的使用方法详解

由于C语言本身不存在哈希,因此&#xff0c;我们可以调用开源的第三方头文件&#xff0c;这只是一个头文件&#xff1a;uthash.h&#xff0c;使用时只需要在文件首部编写#include<uthash.h>即可。 uthash的使用 #include "uthash.h" struct my_struct {int id…

utxo 是什么

UTXO 代表 Unspent Transaction Output。 在比特币社区里&#xff0c;Transaction 被简称为 TX&#xff0c;所以上面这个短语缩写为 UTXO。一般会认为 UTXO 是比特币区块链设计当中的一部分&#xff0c;但事实上 UTXO 和区块链没有必然的联系&#xff0c;你可以完全照搬比特币区…

UT单元测试(一)——基础流程总结篇

参考书籍《单元测试的艺术》 一、单元测试的定义 一个单元测试是一段代码&#xff08;通常是一个方法&#xff09;&#xff0c;这段代码调用另一段代码&#xff08;一个单元可以是一个方法或函数&#xff09;&#xff0c;然后检验某些假设的正确性。如果这些假设是正确的&a…

UT标记详细说明

原来论坛用的是UT标记&#xff0c;UT是UltraThreads的简写。 微软word用的是Microsoft Word XML。 网页用的html ------------------------------------------------------------------ 什么是UT代码&#xff1f; UT标记对HTML的简化。一般情况下&#xff0c;即使指定讨论区禁…

UT-890J ( USB -2- RS422/485 Cable )

USB -2- RS422/485 Cable < 參考 網路文章 / 規格書 > DB9 公頭 (有 DB9轉 KF128螺絲端子轉接板 ) UT890_20190220152556_43695-2.pdf 驅動下載: UT890_Win XP Server2003 2008 Vista 7 8 32-64bit FT-232 USB-232 Chip USB -2- RS422/485 Cable < 參考文章 / 規格書…

RTU是什么及其用途

RTU是Remote Terminal Unit&#xff08;远程终端单元&#xff09;的缩写&#xff0c;是一种用于实现现动器等现场控制设备&#xff0c;实现对现场设备的实时监控&#xff0c;用途包括以下几个方面&#xff1a; 1.压力、流量等。 2.实时监测&#xff1a;RTU可以对现场设备进行…

RTU和DTU的区别是什么?

在物联网应用中&#xff0c;我们经常使用到两种数据传输设备——DTU和RTU。它们的功能大致相似&#xff0c;但又有些许不同。那在实际应用中&#xff0c;什么情况选择DTU&#xff0c;什么情况选择RTU呢&#xff1f;下面我们就一起来看看&#xff0c;它们之间到底有什么区别以及…

RTU和DTU分别是什么?

RTU和DTU是两种常见的远程数据采集和传输设备&#xff0c;虽然它们都是用于实现远程数据采集和传输&#xff0c;但在一些方面存在不同&#xff0c;下面是两者的区别。1、定义RTU是Remote Terminal Unit的缩写&#xff0c;翻译为“远程终端单元”&#xff0c;它是一种用于实现远…

硬刚Hive | 4万字基础调优面试小总结

本文基本涵盖以下内容&#xff1a; 一、基于Hadoop的数据仓库Hive基础知识二、HiveSQL语法三、Hive性能优化四、Hive性能优化之数据倾斜专题五、HiveSQL优化十二板斧六、Hive面试题(一)七、Hive/Hadoop高频面试点集合(二) 基于Hadoop的数据仓库Hive基础知识 Hive是基于Hadoop的…

数据结构知识点_重点期考总结复习

目录 前言数据数据的逻辑结构和物理结构逻辑结构物理结构&#xff08;存储结构&#xff09; 算法特性和时间复杂度算法的五大特性算法的时间复杂度 线性表线性表两种存储结构顺序表链型表线性表分析 栈和队列栈队列 串串的基本操作定长存储结构堆分配存储结构块链存储表示串的模…

前端JS/TS面试题

JS面试题总结 一、this指向问题&#xff08;1&#xff09;this的理解&#xff08;2&#xff09;怎样改变this的指向问题&#xff08;3&#xff09;Call,bind,apply三者的区别&#xff08;4&#xff09;容易判读错的几种this情况&#xff08;5&#xff09;this指向问题&#xff…

3.Hadoop Hive服务

接上文—————> 目录&#xff1a; 一.安装二.have基本命令操作三.hive数据仓库四.hive表的类型&#xff1a;五.hive中重要的元数据表六.hive的连接方式七.使用jdbc编写外部程序操作hive八.hive的基本数据类型九.hive的复杂的数据类型十.hive的建表语句十一.hive 删除表十…

深入理解计算机系统(CSAPP)含lab详解 完结

文章目录 深入理解计算机操作系统-第一章1.1 信息就是位 上下文1.2 程序被其他程序翻译成不同的格式1.3 了解编译系统如何工作是大有益处的1.4 处理器读并解释储存在内存中的指令1.4.1 系统的硬件组成I/O 设备1.4.2 运行 hello 程序 1.5 高速缓存至关重要1.6 存储设备形成层次…

面经-hangzhou

目录 上篇 一、基础篇 网络基础 TCP三次握手 HTTP协议 浏览器输入URL过程 操作系统基础 进程和线程的区别 操作系统内存管理 Java基础 面向对象三大特性 数据结构 设计模式与原则 面试题 构造方法 初始化块 This 重写和重载的区别 Object类方法 基本数据类…

Hive入门详解操作

Hive 第一章 Hive简介 1.1. Hive的简介 1.1.1 hive出现的原因 FaceBook网站每天产生海量的结构化日志数据&#xff0c;为了对这些数据进行管理&#xff0c;并且因为机器学习的需求&#xff0c;产生了hive这门技术&#xff0c;并继续发展成为一个成功的Apache项目。 1.1.2 …

计算机科学速成课 Crash Course Computer Science 笔记(摘要形式)

Crash Course Computer Science总共40节课&#xff0c;架构式地详细介绍了计算机从底层到顶层的构造和新的技术&#xff0c;一节课十分钟左右&#xff0c;可让小白在很短时间内产生对计算机的总体理解 本文是听课后做的笔记&#xff0c;便于复习回顾 点击观看计算机科学速成课 …

算法基础课【合集1】

文章目录 基础算法785. 快速排序786. 第k个数787. 归并排序788. 逆序对的数量789. 数的范围790. 数的三次方根791. 高精度加法792. 高精度减法793. 高精度乘法794. 高精度除法795. 前缀和796. 子矩阵的和797. 差分798. 差分矩阵799. 最长连续不重复子序列800. 数组元素的目标和…

hive知识点总结

Hive 一、Hive简介 什么是Hive Hive由FaceBook实现并开源基于Hadoop的数据仓库工具可以将结构化的数据映射为一张数据库表并提供HQL&#xff08;Hive Sql&#xff09;查询功能底层数据是存储在HDFS上的Hive的本质是将SQL转化为MapReduce任务进行不熟悉MapReduce的用户很方便…

数据结构知识

数据结构 第零章 引入0.1 元素类型说明0.2 数组定义0.3 内存动态分配0.4 参数传递0.5 操作算法中用到的预定义常量和类型0.6 结构类型的比较 第一章绪论1.1 数据结构的研究内容❀内容小结 1.2 基本概念和术语1.2.1 数据、数据元素、数据项、数据对象1.2.2 数据结构1.2.2.1 逻辑…

Hive

文章目录 1️⃣、Hive入门1.1、什么是Hive1.2、Hive架构 2️⃣、Hive安装及使用2.1、 Hive安装地址2.2、Hive安装部署.2.2.1、安装Hive2.2.2、启动并使用Hive 2.3、MySQL安装2.3.1 安装MySQL2.3.2 配置MySQL 2.4、配置Hive元数据存储到MySQL2.4.1 配置元数据到MySQL2.4.2 验证元…