OpenCV基础
文章平均质量分 90
x-jeff
AI爱好者
CVer
个人博客网站:https://shichaoxin.com
微信公众号:x-jeff的AI工坊
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【OpenCV基础】第四十一课:LBP特征
LBP(Local Binary Patterns,局部二值模式)是一种用来描述图像局部纹理特征的算子,LBP特征具有灰度不变性和旋转不变性等显著优点。它将图像中的各个像素与其邻域像素值进行比较,将结果保存为二进制数,并将得到的二进制比特串作为中心像素的编码值,也就是LBP特征值。LBP提供了一种衡量像素间邻域关系的特征模式,因此可以有效地提取图像的局部特征,而且由于其计算简单,可用于基于纹理分类的实时应用场景,例如目标检测、人脸识别等。原创 2025-10-19 21:27:21 · 993 阅读 · 0 评论 -
【OpenCV基础】第四十课:HOG特征检测
👉。原创 2025-09-27 10:55:22 · 856 阅读 · 0 评论 -
【OpenCV基础】第三十九课:SURF特征检测
SURF讲解:【论文阅读】SURF:Speeded Up Robust Features。参数详解:想要获取最新文章推送或者私聊谈人生,请关注我的个人微信公众号:⬇️x-jeff的AI工坊⬇️个人博客网站:https://shichaoxin.comGitHub:https://github.com/x-jeff原创 2025-08-30 10:33:52 · 471 阅读 · 0 评论 -
【OpenCV基础】第三十八课:Haar特征
Haar特征(Haar-like feature)是用于物体识别的一种数字图像特征。它们因为与Haar小波转换(Haar wavelet)极为相似而得名,是第一种即时的人脸检测运算。Haar小波转换是由数学家Alfréd Haar于1909年提出的,是小波变换中最简单的一种变换,也是最早提出的小波变换。历史上,直接使用图像的强度(就是图像每一个像素点的RGB值)使得特征的计算强度很大。原创 2025-08-17 15:01:47 · 1323 阅读 · 0 评论 -
【OpenCV基础】第三十七课:积分图计算
积分图(Integral Image)的定义:取图像左上侧的全部像素计算累加和,并用这个累加和替换图像中的每一个像素,使用这种方式得到的图像称为积分图像。Ixyx′⩽xy′⩽y∑ix′y′积分图又称总和面积表(summed area table,简称SAT),是一个快速且有效的对一个网格的矩形子区域中计算和的数据结构和算法。积分图可以只遍历一次图像即可有效的计算出来,其通常被用来加速计算过程。原创 2025-08-08 21:16:33 · 1193 阅读 · 0 评论 -
【OpenCV基础】第三十六课:SIFT特征检测
SIFT全称为。SIFT特征在面对图像缩放或者图像旋转时具有不变性,并且在亮度改变和3D视野下,也具有部分的不变性。此外,这一特征对遮挡、杂乱以及噪声有一定的抵抗能力。原创 2025-07-28 19:13:24 · 1384 阅读 · 0 评论 -
【OpenCV基础】第三十五课:亚像素级别角点检测
实际情况下几乎所有的角点都不会是一个真正的准确像素点,比如1005,实际上可能是100.2345.789。亚像素级别的角点检测基于的一个重要条件是:从亚像素点q到位于q邻域内任意像素点p的向量都与pDIpiT⋅q−pi01其中,DIpi是像素点piDIpidxdyDIpiTdxdyDIpi⋅DIpiTdxdxdxdy。原创 2025-07-20 20:45:21 · 1044 阅读 · 0 评论 -
【OpenCV基础】第三十四课:自定义角点检测器
我们利用或中的λ1和λ2可以定义自己的响应函数,从而构建自定义角点检测器。原创 2025-07-06 16:28:47 · 1199 阅读 · 0 评论 -
【OpenCV基础】第三十三课:Shi-Tomasi角点检测
Shi-Tomasi角点检测和Rminλ1λ2。原创 2025-07-01 17:23:02 · 736 阅读 · 0 评论 -
【OpenCV基础】第三十二课:Harris角点检测
可以表达图像中对象的主要信息,并且以此为依据可以从其他未知图像中检测出相似或者相同对象。常见的图像特征:边缘、角点、纹理。原创 2025-06-23 21:22:40 · 1498 阅读 · 0 评论 -
【OpenCV基础】第三十一课:基于距离变换与分水岭的图像分割
👉在图论中,Geodesic Distance就是图中两节点的最短路径的距离,这与平时在几何空间中通常用到的Euclidean Distance(欧氏距离),即两点之间的最短距离有所区别。在上图中,两个黑点的欧式距离是用虚线表示的d15d_{15}d15,而Geodesic Distance作为实际路径的最短距离,其距离应为沿途实线段距离之和的最小值,即d12d23d34d45d12d23d34d45。原创 2025-06-19 16:28:36 · 1041 阅读 · 0 评论 -
【OpenCV基础】第三十课:点多边形测试
点多边形测试:测试一个点是否在给定的多边形内部、边缘或者外部。原创 2025-06-06 21:45:57 · 405 阅读 · 0 评论 -
【OpenCV基础】第二十九课:图像矩
图像矩,Hu矩,几何矩,中心矩,归一化中心矩,cv::moments,cv::HuMoments,cv::contourArea,cv::arcLength原创 2025-05-26 20:49:24 · 1142 阅读 · 0 评论 -
【OpenCV基础】第二十八课:轮廓周围绘制矩形框和圆形框
轮廓检测:【OpenCV基础】第二十六课:轮廓发现。拉默-道格拉斯-普克算法(Ramer–Douglas–Peucker algorithm),又称道格拉斯-普克算法(Douglas–Peucker algorithm)和迭代端点拟合算法(iterative end-point fit algorithm),是一种将线段组成的曲线降采样为点数较少的类似曲线的算法。它是最早成功地用于制图综合的算法之一。该算法的目的是,给定一条由线段构成的曲线(在某些情况下也称为折线),找到一条点数较少的相似曲线。该算法根据原原创 2025-05-14 20:08:27 · 928 阅读 · 0 评论 -
【OpenCV基础】第二十七课:凸包
凸包相关内容请见:【数学基础】第十八课:凸优化基础。Graham’s scan是一种计算一组平面点凸包的算法,时间复杂度为O(nlogn)O(n\log n)O(nlogn)。算法步骤与图解:另外,如果发现三点共线的情况,算法可以考虑将其视为左转或者右转。这取决于究竟只是要求凸包的边界,还是要找到在凸包边界上所有的点。基于2D点集寻找凸包,方法见本文第2部分。API参数解释:想要获取最新文章推送或者私聊谈人生,请关注我的个人微信公众号:⬇️x-jeff的AI工坊⬇️个人博客网站:https://shi原创 2025-05-11 20:42:04 · 1145 阅读 · 0 评论 -
【OpenCV基础】第二十六课:轮廓发现
是基于图像边缘提取的基础寻找对象轮廓的方法。所以边缘提取的阈值选定会影响最终轮廓发现结果。原创 2025-05-10 17:53:33 · 950 阅读 · 0 评论 -
【OpenCV基础】第二十五课:模板匹配
模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。模板图像在待检测的图像上,从左到右,从上到下进行遍历,并计算模板与待检测图像重叠部分的匹配度。OpenCV提供了六种计算模板匹配程度的方式:👉Rxyx′y′∑Tx′y′−Ixx′yy′2T为模板图像,I为待检测图像,x′0...w−1;y′0...h−1,其中,wh为模板的宽和高(下同)。原创 2025-04-30 20:35:27 · 1102 阅读 · 0 评论 -
【OpenCV基础】第二十四课:直方图反向投影
先计算某一特征的直方图模型,然后在目标图像中寻找是否有相似的对象。因此,我们可以利用直方图的反向投影来实现图像分割,目标检测等任务。通常用HSV色彩空间的H和S两个通道的直方图模型。👉直方图的反向投影原理详解:Image1595268637074716接下来计算反向投影矩阵(反向投影矩阵的大小和原灰度图像矩阵的大小相同)。原图像中坐标为00。原创 2025-04-28 18:49:54 · 1036 阅读 · 0 评论 -
【OpenCV基础】第二十三课:直方图比较
对输入的两张图像计算得到直方图H1和H2,归一化到相同的尺度空间,然后可以通过计算H1与H2之间的距离得到两个直方图的相似程度进而比较图像本身的相似程度。原创 2025-04-26 21:06:49 · 1032 阅读 · 0 评论 -
【OpenCV基础】第二十二课:直方图计算
将多通道图像分离成多个单通道图像。例如:相反的,可用于将多个单通道图像合并为一个多通道图像:1.2.参数解释:此外,还有另外两种重载方式,参数解释大同小异,不再赘述:举个例子:这里再详细说下参数6()。该参数指的是直方图的维数,例如二维直方图:举个简单的例子:可以看出输出为9×99\times 99×9的二维直方图,m1和m2会被配对:(0,0),(1,1),(2,2),(0,0),(4,4),(5,5),(6,6),(7,7),(8,8)(0,0),(1,1),(2,2),(0,0),(4,原创 2025-04-24 20:04:04 · 956 阅读 · 0 评论 -
【OpenCV基础】第二十一课:直方图均衡化
假设有图像数据8×88\times 88×8,像素值范围0~14共15个灰度等级:统计得到各个等级出现次数及直方图:直方图均衡化(Histogram Equalization)是一种增强图像对比度的方法。其主要思想是将一副图像的直方图分布变成近似均匀分布,从而增强图像的对比度。均衡化前后的图像直方图:举例说明下直方图均衡化的过程,假设现在有一个8位的8×88\times 88×8灰度图像:该灰度图像的灰度值出现次数如下表所示,为了简化表格,出现次数为0的值已经被省略:累积分布函数(cdf)如下所示,与上一表原创 2025-04-23 19:30:18 · 1209 阅读 · 0 评论 -
【OpenCV基础】第二十课:像素重映射
简单点说,像素重映射就是把输入图像中各个像素按照一定的规则映射到另外一张图像的对应位置上去,形成一张新的图像。例如:参数解释:在放大图像时,通常需要进行插值操作:此时我们就需要根据原图中黑色点的像素值推算出插值后图像中橘色点的像素值。橘色点在原图中的坐标可表示为:OpenCV提供的插值方法有:3.1.为最近邻插值,会选择最近的点。如上图所示,黑色的X表示需要插入的值,它会选择距离它最近的Px+1,yP_{x+1,y}Px+1,y的值来作为它的值。当插入的值距离四个点都相等时,会选择距离最近的左上角的原创 2025-04-21 18:40:50 · 1314 阅读 · 0 评论 -
【OpenCV基础】第十九课:霍夫变换
是一种特征提取手段,用来提取形状(直线、圆等)边界。⚠️前提:霍夫变换检测边缘只对边缘图片(经过或者提取特征后的图片)有效,对一般的图片无效。原创 2025-04-20 14:24:56 · 2463 阅读 · 0 评论 -
【OpenCV基础】第十八课:Canny边缘检测算法
Canny边缘检测算法是1986年提出的。前三步在之前的博客中都有所介绍,现在着重讲解下后两步。👉第4步:非最大信号抑制:经过前三步的处理之后,我们得到的边缘可能很模糊,而这一步就是起到将边缘“瘦身”的作用。如上图所示,共有9个相邻的像素点(8个黄色点+1个红色点)。以中心像素点(红色点)为例,如果梯度方向刚好是45o的整倍数,那么中心像素点刚好在梯度方向上都有相邻的两个像素。但如果梯度方向不是45o的整倍数,则其会横穿两个像素之间,因此我们需要对其进行线性插值来精确计算。gup。原创 2025-04-15 21:33:29 · 1228 阅读 · 0 评论 -
【OpenCV基础】第十七课:Laplace算子
属于一阶微分算子,利用了一阶导数,图像在边缘处的一阶导数值最大。而属于二阶微分算子,利用了二阶导数,图像在边缘处的二阶导数为零:∂x∂ff′xfx1−fx∂x2∂2ff′′xf′x−f′x−1fx1fx−1−2fx上述是一维情况下,那么在二维函数fxy中,xy∂x2∂2ffx1yfx−1y−2fxy∂y2∂2ffxy1fxy−1。原创 2025-04-13 18:30:01 · 1186 阅读 · 0 评论 -
【OpenCV基础】第十六课:Sobel算子
是像素值发生跃迁的地方,是图像的显著特征之一,在图像特征提取、对象检测、模式识别等方面都有重要的作用。如下图红圈处所示,即为图像的一个边缘:如何捕捉/提取边缘:对图像求它的一阶导数。δfx−fx−1δ越大,说明像素在X方向变化越大,边缘信号越强。例如上图红圈处的像素变化以及其一阶导数变化:Sobel算子便可用于图像边缘提取。原创 2025-04-10 20:24:48 · 1820 阅读 · 0 评论 -
【OpenCV基础】第十五课:边缘处理
图像卷积时边界像素不能被卷积操作,原因在于边界像素没有完全跟kernel重叠,所以当使用3×3卷积核时有1个像素的边缘没有被处理,使用5×5卷积核时有2个像素的边缘没有被处理。此时我们便需要处理下图像的边缘。原创 2025-04-05 14:50:51 · 565 阅读 · 0 评论 -
【OpenCV基础】第十四课:自定义线性滤波
卷积核也常被称为“算子”。假设有原图如下:100−10−110👉−1−2−1000121−101−202−1010−10−14−10−10。原创 2025-04-01 21:44:04 · 956 阅读 · 0 评论 -
【OpenCV基础】第十三课:基本阈值操作
👉阈值二值化(threshold binary):dst(x,y)={maxVal,if src(x,y) > thresh0,otherwisedst(x,y) = \begin{cases} maxVal, & \text{if src(x,y) > thresh} \\ 0, & \text{otherwise} \end{cases}dst(x,y)={maxVal,0,if src(x,y) > threshotherwise👉阈值反二值化(threshold binary inverte原创 2025-03-28 21:20:06 · 818 阅读 · 0 评论 -
【OpenCV基础】第十二课:图像的缩放
一个图像金字塔由一幅图像所衍生出的一系列不同分辨率的图像组成,最底下一张图像尺寸最大,最上方的图像尺寸最小,在空间中,形似金字塔。就是把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像。想要获取最新文章推送或者私聊谈人生,请关注我的个人微信公众号:⬇️x-jeff的AI工坊⬇️。拉普拉斯金字塔是一个上采样的过程,是高斯金字塔的逆过程。高斯不同是图像的内在特征,在灰度图像增强、角点检测中经常用到。⚠️使用时需要注意生成的图像是原图在宽与高各缩小。得到的上一层图像只有当前层的。原创 2025-03-24 20:32:01 · 785 阅读 · 0 评论 -
【OpenCV基础】第十一课:形态学操作的应用
使用getStructuringElement定义我们所需的结构元素。原创 2025-03-18 21:51:16 · 1136 阅读 · 0 评论 -
【OpenCV基础】第十课:形态学操作
图像形态学操作:基于形状的一系列图像处理操作的合集,主要是基于集合论基础上的形态学数学。形态学有四个基本操作:膨胀、腐蚀、开、闭。原创 2025-03-14 19:11:28 · 1036 阅读 · 1 评论 -
【OpenCV基础】第九课:图像模糊
图像模糊是图像处理中最简单和常用的操作之一。⚠️使用该操作的原因之一是为了给图像预处理时降低噪声。图像模糊操作背后是数学的卷积计算。卷积操作的原理:这四种模糊方式有时也被称为:均值滤波、高斯滤波、中值滤波和双边滤波。因为模糊属于一种滤波操作,具体关系可参照下图:其中,均值滤波、高斯滤波和中值滤波属于;而双边滤波属于。接下来我们结合OpenCV中的相关API来进一步了解这些图像模糊的方法。原创 2025-03-10 19:37:14 · 1481 阅读 · 0 评论 -
【OpenCV基础】第八课:绘制形状和文字
cv::Point可以表示平面上的一个点。原创 2025-03-06 20:34:32 · 397 阅读 · 0 评论 -
【OpenCV基础】第七课:调整图像亮度与对比度
调整图像亮度和对比度属于像素变换(点操作)。原创 2025-03-03 22:19:53 · 861 阅读 · 0 评论 -
【OpenCV基础】第六课:图像混合
gx1−αf0xαf1x其中α的取值范围为0~1之间。原创 2025-02-27 22:58:53 · 580 阅读 · 0 评论 -
【OpenCV基础】第五课:图像操作
在中,我们可以通过获取图像某一行像素数组的指针。。在本节将介绍另外几种直接读取像素值的方法。原创 2025-02-25 22:41:24 · 954 阅读 · 0 评论 -
【OpenCV基础】第四课:Mat对象
(部分复制:共用一个矩阵,即一张图,该图如果发生改变,A和B都将改变。而完全复制是各自用各自的数据部分,互不干扰。其中第三种方式还可用于图像融合,mask的尺寸必须和原图像相同,它的非零元素表示需要复制的矩阵元素,mask必须是。想要获取最新文章推送或者私聊谈人生,请关注我的个人微信公众号:⬇️x-jeff的AI工坊⬇️。一般情况下只会复制Mat对象的头和指针部分,不会复制数据部分。类型的,可以有1个或多个通道。的像素值不为0,则把src在像素点。的像素值为0,则dst保留其在。的像素值直接赋给dst的。原创 2025-02-23 13:54:24 · 1081 阅读 · 0 评论 -
【OpenCV基础】第三课:掩膜操作
像素值是图像被数字化时由计算机赋予的值,代表了图像中某一小方块(即)的平均亮度信息。通常用表示一个像素,这样总共有256个灰度等级(像素值在0~255之间)。对于来说,RGB的所谓“多少”就是指亮度,并使用来表示。通常情况下,RGB各有256级亮度,亮度取值范围为0~255,共256级。按照计算,256级的RGB色彩总共能组合出约1678万种色彩,即256*256*256=16777216。通常也被简称为或,也称为(2的24次方)。R0G0B0,各通道亮度均为0,自然是黑色。R255G。原创 2025-02-21 23:40:51 · 1095 阅读 · 0 评论 -
【OpenCV基础】第二课:加载、修改、保存图像
(又称或本质上,彩色模型是坐标系统和子空间的阐述。位于系统的每种颜色都有单个点表示。RGB(红绿蓝)是依据人眼识别的颜色定义出的空间,可表示大部分颜色。但在科学研究中一般不采用RGB颜色空间,因为它的细节难以进行数字化的调整。它将色调,亮度,饱和度三个量放在一起表示,很难分开。原创 2025-02-19 20:59:48 · 780 阅读 · 0 评论
分享