opencv学习小结(1)–高斯模糊与卷积核、模糊半径

2024-05-14 21:18

本文主要是介绍opencv学习小结(1)–高斯模糊与卷积核、模糊半径,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因为做的项目需要用到opencv的工具包,所以本人就开始了对opencv的各类函数进行原理上的学习,希望能够尽快的完成对opencv系统的学习。

1:什么是高斯模糊:

模糊是一种利用图像算法对源图像素色值进行重新合成的一种处理结果(当然也是近视眼就会导致模糊..xixi),而高斯模糊则是运用高斯函数(遵循数据正态分布)求出对应图像的卷积核在进行一定换算最后合成图像的一种特殊处理结果,当然其中有很多过程及概念,先简单了解一下高斯模糊成像的过程是怎么样的:

1:卷积核:

一看非常高大上的名字,它其实就是通过某种算法得出的一个结果矩阵,我们知道图像其实就是一个二维的矩阵排列,通过高斯函数求出来的卷积核(矩阵)在与源矩阵进行一定的换算就得出结果矩阵就是我们最后模糊的图像结果,效果如图所示:

示例1

假设我们先不关心卷积核的生成,那么他是如何通过卷积核生成结果矩阵的呢:如图中所示:如果要求出结果矩阵的第2排第2列中的元素值需要将卷积核矩阵对准源矩阵中对应的像素元素也就是source pixel中的6(3*3的矩阵),然后通过求出加权的和也就是(-1*3)+(0*0)+(1*1)+(-2*2)+(0*6)+(2*2)+(-1*2)+(0*4)+(1*1)结果为-3,那么结果矩阵里的第2排第2列的元素值为-3;是不是感觉就是那么回事,其实的确就是那么回事,通过高斯函数求出的卷积核(也称滤波器)在进行加权求和就得出运算之后的图像了,那么现在知道模糊成像的这么一个过程,我们应该继续探索高斯求出的卷积核是怎么求出来的!

2:模糊的原理

我们知道了模糊的一个过程那么我们应该知道模糊的简单原理是什么样的还是画图理解更好解释:

示例2

如上图所示,如果我们想对中心元素点2进行一个模糊处理那么应该怎么做,既然是模糊那么就是通过周边元素的值来确定自己应该是多少,显然照上图来看的话我们模糊很简单就是求出周边的加权平均,结果就是1了(就像扫雷一样)

即(1+1+1+1+2+1+1+1+1)/9=1,如下:

示例3

这样得出的结果就已经是经过简单模糊的图像的了,当然实际操作不可能通过这么简单的运算来得出模糊图像,因为不管从效率还是实际的模糊效果来说都太差了,那么我们应该去学习更高级的权重分配模式了。在统计学里有一个影响深远的权重分配模式叫“正态分布”,在高斯模糊中也正是遵循正态分布来求出适应的模糊值,那么我们就了解一下正态分布是什么东西吧

正态分布的权重

一维的正态分布图

二维的正态分布图(图像都是二维)

首先我们来看一下正态分布是个什么样子,在统计学中正态分布应用在很多地方如医学,建筑等领域,从图中我们可以看出距离中心0zero的位置越小取值越大,曲度越大,处于中心点则是最高权重,位于周边则取值递减,也更加符合只有距离模糊像素越近的像素才有更高的权重思路,这种做法就避免了如果模糊像素与周边像素颜色差值过大造成的模糊效果不尽人意的问题;

权重矩阵(可以理解为卷积核)

如果理解了正态分布的权重分配我们可以继续往下来讲,如果我们在实际对图像做处理的时候其实就是对图像矩阵做处理,图像都是由很多像素排列的矩阵形成的图像,那么权重矩阵该怎么分配呢,很简单就是利用像素点的坐标值通过高斯函数对每个像素点进行运算得出每个像素点的权重值

二维的高斯函数公式

其中x,y代表当前模糊像素点的坐标值,σ代表是模糊半径(指的就是你中心点与周围像素的距离取值),有了这个公式那么算出权重矩阵那就是没那么复杂了,举个栗子,如图:

5*5的卷积核也就是权重矩阵

如果要构建一个模糊半径为2的权重矩阵那么他的矩阵应该是(2*2+1)*(2*2+1),为什么要加1呢是因为作为权重矩阵往往都是奇数矩阵,通常来讲这是为了能有一个中心点,如果不是奇数那么中心点的半径就不是统一的,例如如果是2*2的矩阵那么就无法确定准确的中心点位置,奇数刚好可以解决这个问题;有了这个矩阵我们就可以开始利用高斯函数来进行计算了,将x,y带入函数中,利用java的数学操作可以求出中心点(0,0)及周边的像素点的权重值: sigma(模糊半径)

 

函数在代码中的体现

最后通过每个对矩阵里的每个像素点进行运算求出的矩阵:

权重矩阵

这样我们的权重矩阵也就是卷积核就大功告成了,当然还没有完,假设我们有一个图像矩阵也就是未经过处理的图像矩阵,他们的色值如下图所示:

这个色值值得是图像的RGB色值,那么我们将权重矩阵对准源图像的色值矩阵将权重矩阵和色值矩阵相乘得出个结果全部加起来就可以求出中心的模糊值

这篇关于opencv学习小结(1)–高斯模糊与卷积核、模糊半径的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989875

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个