Learning OpenCV3
本专栏是Opencv3的编程学习笔记
凝望,划过星空.scut
坚持别人不能坚持的,才能获得别人不能拥有的
展开
-
【OpenCV 学习笔记】—— 基于拉普拉斯金字塔的图像融合原理以及C++实现【或许是全网最通俗易懂的讲解】
文章目录一、高斯金字塔1.1 什么是高斯金字塔1.2 利用OpenCV求取高斯金字塔二、拉普拉斯金字塔2.1 什么是拉普拉斯金字塔2.2 利用 OpenCV求取拉普拉斯金字塔三、基于拉普拉斯金字塔的图像融合3.1 融合原理3.2 代码实现3.3 融合效果展示一、高斯金字塔1.1 什么是高斯金字塔其实大家也不要被 “金字塔” 这样看起来高大上的名词给唬住了。其实说白了,高斯金字塔就是原始图像按...原创 2020-05-02 21:21:44 · 8741 阅读 · 3 评论 -
【OpenCV 进阶笔记】—— 图像增强算法详细解析以及算法实现 1 —— 伽马变换算法(Based on C++)
文章目录一、伽马变换算法详解二、在实现算法之前的预备知识四、代码实现(C++版)一、伽马变换算法详解我们先来看一下伽马变换的公式:s=Crγs = Cr^γs=Crγ,其中,sss 是做了伽马变换之后的图像的像素值、rrr 是原图像的对应位置的像素值。CCC 和 γγγ 是正的常数。我们下面重点关心一下 γγγ 的取值对图像产生的影响:这个图到底是什么意思呢?我这么解释吧:大家是不是都有用...原创 2020-04-25 22:18:15 · 2234 阅读 · 0 评论 -
OpenCV3学习笔记——直方图专题1(直方图的概念以及计算)
最近在学习OpenCV的直方图部分包括直方图的计算,绘制,均衡化以及直方图的对比,所以打算用几篇博客记录一下学习历程在这片博文中,我打算先记录一下直方图的基本概念以及它的计算和部分直方图的绘制1.直方图直方图是对数据进行统计的一种方法,并且将统计出来的一些值对应存放在事先划分的区间里面像下面这幅图一样:平时我们是怎么样计算直方图的呢?像我们以前学习过的概率与统计一样:首先,我们要确...原创 2019-07-12 16:07:30 · 517 阅读 · 0 评论 -
OpenCV3学习笔记——直方图专题2(直方图的绘制)
直方图的绘制——HS直方图和RGB三色直方图在上一篇博文中我们探讨了直方图的计算,其实直方图可以看成概率密度分布的离散化表达方法,而要注意的是:二维直方图并不是一个通道一个通道的分别独立平行计算,而是将两个通道的数据整合起来计算出的二维直方图1.1绘制直方图所需要掌握的一些基本函数:split()和merge() &nbs...原创 2019-07-14 14:44:08 · 647 阅读 · 1 评论 -
OpenCV3学习笔记——边缘检测之拉普拉斯变换Laplacian()
拉普拉斯变化——Laplacian()函数上一篇博文中的Sobel算子,它是通过计算图像的一阶导数来判断图像边缘的,原理我们还记得:就是图像的边缘处,它的像素值会有一个跃变,说明函数的变化率最大,那么也就是说图像的一阶导数达到峰值那么,对图像求二阶导呢?我们依然可以找到边缘,为什么?因为一阶导数值最大的地方,二阶导数值为0,我们也可以借助这个性质帮助我们找到边缘(当然会有一些不是边缘的点二阶...原创 2019-06-26 16:57:54 · 3279 阅读 · 2 评论 -
OpenCV3学习笔记——Sobel算子解析
Sobel算子1.原理今天和大家探讨一下一种用于边缘检测的离散微分算子——Sobel算子,以及用Sobel求图像边缘的过程我们先来看看求梯度的公式:那么,对于图像而言,它是离散的,所以h的最小值只能是1了,那么这意味着,图像中某个像素位置的梯度(以x方向为例)等于它左右两个像素点的像素之差除以2即:假设有一行像素是这样分布的:123 155 173那么,像素值为155的像素位置...原创 2019-06-23 15:26:54 · 4287 阅读 · 0 评论 -
OpenCV3学习笔记——边缘检测之Canny算法解析
边缘检测(Canny,Sobel,Laplacian)边缘检测出现在了图像变换的许多地方,前段时间我在学习这一部分的知识时,看着这些算法的源码,品味它们的思想,真的是一边学一边感叹到——太牛逼了!所以打算写一篇博文来记录这段时间的学习成果预备知识:1. 边缘检测的一般步骤:滤波:因为边缘检测主要是基于图像强度的一阶导和二阶导(具体导数的意义咱们一会探讨一下),然而导数对噪声非常敏感,因...原创 2019-06-21 15:20:57 · 2456 阅读 · 0 评论 -
OpenCV3学习笔记——非线性滤波之中值滤波,双边滤波解析
学习笔记——非线性滤波(中值滤波,双边滤波)1.1 中值滤波在线性滤波里面,每个像素的输出值都是一些输入像素的加权和,但是在某些情况下,比如噪声时散粒噪声而非高斯噪声,也就是图像偶尔会出现很大的值得时候,由于高斯滤波是加权求和操作,导致那些很大的值也会被分配到一定的权重而被加进新像素里面,所以这个时候使用高斯滤波,并不能消除像素,而只是转换为了更柔和但是仍然可见的散粒,这时我们就需要用到中值滤...原创 2019-06-04 17:45:04 · 803 阅读 · 3 评论 -
OpenCV3学习笔记——阈值化操作解析
OpenCV3学习笔记——关于阈值化操作的解析1.什么是阈值?在图像处理的时候,我们可能经常需要剔除一些高于或低于某一值的一些像素而阈值就可以被看成是最简单的图像分割方法,我们可以通过设定阈值来分割出图像中我们需要的部分那么是怎么做的呢?对于一副灰度图像,它的灰度值是在0(黑色)~255(白色)之间的,也就是说灰度图像在黑色与白色之间还有许多级的颜色(灰色)深度,像这样:假设我们设定...原创 2019-06-19 16:57:16 · 802 阅读 · 0 评论 -
OpenCV3学习笔记——均值滤波和高斯滤波详细剖析
OpenCV3学习笔记——均值滤波和高斯滤波解析1.均值滤波大家还记得上一篇博文中我们讲到的方框滤波吗?让我们再一次回顾方框滤波的内核:而我们今天的第一个主角——均值滤波,就是方框滤波的一种特殊情况均值滤波是一种最简单的滤波操作,输出图像的每一个像素值,是核窗口内输入图像对应像素的平均值,均值滤波算法的主要方法就是:用一片图像区域的各个像素值的均值来代替原图像的像素值,我们需要对图像中...原创 2019-06-01 14:23:19 · 3091 阅读 · 0 评论 -
OpenCV3学习笔记——线性滤波之方框滤波
OpenCV3学习笔记——线性滤波的使用1.为什么需要滤波?图像滤波是指尽量保存图像细节的情况下对目标图像的噪声进行抑制,它是图像预处理里面不可或缺的一环,处理的好坏将会直接影响后续处理的效果和分析的可靠性好的,说到这有必要补充一下什么是图像的噪声:信号或者图像的能量大部分集中在低频和中频段,而在高频段,有用的信息常常会被噪声淹没,因此,为了抑制噪声,改善图像质量,便于更高层次的处理,必须...原创 2019-05-31 17:46:02 · 1089 阅读 · 0 评论 -
OpenCV3学习笔记——腐蚀与膨胀解析(C++)
OpenCV3学习笔记——腐蚀与膨胀解析我们知道,图像的像素值越大的地方,图像越亮,而腐蚀和膨胀就是求图像像素局部最小值和局部最大值的过程膨胀(dilate):就是对图像的高亮部分进行膨胀,相当于高亮部分的领域扩张腐蚀(erode):就是对图像的高亮部分的侵蚀,也就是经过腐蚀操作之后图像的高亮部分变得更少了1.膨胀与腐蚀的原理:首先,在腐蚀与膨胀的操作过程中,我们得给出一个核窗口,它有一...原创 2019-06-12 16:39:16 · 3663 阅读 · 0 评论