上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 16 下一页
摘要: 之前我们就已经用过OpenCV中的特征检测进行过目标跟踪,这次我们将介绍一种算法,用来寻找和追踪视频中的目标物体。Meanshift算法:meanshift算法的原理很简单。假设你有一堆点集,例如直方图反向投影得到的点集。还有一个小的窗口,这个窗口可能是圆形的,现在要移动这个窗口到点集密度最大的区域当中。如下图:最开始的窗口是蓝色圆环的区域,命名为C1。蓝色圆环的重音用一个蓝色的矩形标注,命名为C 阅读全文
posted @ 2021-12-08 09:44 wuyuan2011woaini 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 从本次教程开始,我们进入新的篇章,之前一直在讨论OpenCV的特征部分,这次我们来讨论OpenCV中的背景分离,又称背景减法模型。背景分离(BS)是一种通过使用静态相机来生成前景掩码(即包含属于场景中的移动对象像素的二进制图像)的常用技术。顾名思义,BS计算前景掩码,在当前帧与背景模型之间执行减法运算,其中包含场景的静态部分,或者更一般而言,考虑到所观察场景的特征,可以将其视为背景的所有内容。背景 阅读全文
posted @ 2021-12-08 09:43 wuyuan2011woaini 阅读(939) 评论(0) 推荐(0) 编辑
摘要: 之前我们讨论到cv2.findHomography()函数里有四个算法,这次我们来简述最后两个算法。LMEDSLMEDS又称最小中值平方法,LMedS的经典步骤是:1. 随机采样2. 计算模型参数3. 计算相对模型的点集偏差err,并求出偏差中值Med(err)4. 迭代2. 3.步直至获得符合阈值的最优解:Med(err)最小5. 精确优化模型参数(LM算法迭代优化)LMedS的函数接口 参照O... 阅读全文
posted @ 2021-12-08 09:41 wuyuan2011woaini 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 注意:本教程中将涉及到机器学习的一些概念,但不进行过多的详述。我们在上一个教程中所提及到的FLANN算法就属于单应性算法,先解释一下单应性,在计算机视觉中:平面的单应性被定义为从一个平面到另一个平面的投影映射。比如,一个二维平面上的点映射到摄像机成像仪上的映射就是平面单应性的例子。之前我们使用一个查询图像,在其中找到一些 特征点(关键点),我们又在另一幅图像中也找到了一些特征点,最后对这两幅 图像... 阅读全文
posted @ 2021-12-08 09:39 wuyuan2011woaini 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 之前我们讨论过了诸多的特征检测算法,这次我们来讨论如何运用相关的方法进行特征匹配。本次教程完全为实战教程,没有相关的算法原理介绍,大家可以轻松一下了。蛮力匹配(ORB匹配)Brute-Force匹配非常简单,首先在第一幅图像中选择一个关键点然后依次与第二幅图像的每个关键点进行(改变)距离测试,最后返回距离最近的关键点。对于BF匹配器,首先我们必须使用cv2.BFMatcher()创建BFMatch... 阅读全文
posted @ 2021-12-08 09:38 wuyuan2011woaini 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 它不会拒绝n < 12的候选对象。像素的选择不是最佳的,因为其效率取决于问题的顺序和角落外观的分布。高速测试的结果被丢弃了。彼此相邻地检测到多个特征。 它不会拒绝n < 12的候选对象。 像素的选择不是最佳的,因为其效率取决于问题的顺序和角落外观的分布。 高速测试的结果被丢弃了。 彼此相邻地检测到多 阅读全文
posted @ 2021-12-08 09:35 wuyuan2011woaini 阅读(451) 评论(0) 推荐(0) 编辑
摘要: ORB是2011年ICCV上作者Rublee所提出,主要针对目前主流的SIFT或者SURF等算法的实时性进行改进。当然在实时性大为提升的基础上,匹配性能也在一定程度较SIFT与SURF算法降低。但是,在图像Two Views匹配对之间变换关系较小时,能够匹配性能逼近SIFT算法,同时计算耗时极大降低。ORB算法实时性在移动端设备上提供很好的应用,当下比较流行SLAM中采用较多的ORB-SLAM算法 阅读全文
posted @ 2021-12-08 09:30 wuyuan2011woaini 阅读(1225) 评论(0) 推荐(0) 编辑
摘要: 之前讨论过的SIFT算法以及SURF算法由于受到了专利的保护,在高版本的OpenCV中是没法使用的,这就有些强人所难了,但今天我们介绍一种算法,不仅更加简单,而且是免费使用的。原理在SIFT算法使用128维的描述符,因为使用float类型描述,所以需要512字节的内存。在SURF算法中,以64维描述符来计算,至少需要256字节的内存。在创建一个含有数千个特征的向量会消耗大量的内存,这种情况在资源的 阅读全文
posted @ 2021-12-08 09:28 wuyuan2011woaini 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 我们在上个教程讨论了SIFT算法用于检测特征点,SIFT算法对旋转、尺度缩放、亮度变化等保持不变性,对视角变换、仿射变化、噪声也保持一定程度的稳定性,是一种非常优秀的局部特征描述算法。但是其实时性相对不高。SURF(Speeded Up Robust Features)算法改进了特征了提取和描述方式,用一种更为高效的方式完成特征点的提取和描述。SURF算法原理SURF特征检测的步骤1. 尺度空间的 阅读全文
posted @ 2021-12-08 09:25 wuyuan2011woaini 阅读(767) 评论(0) 推荐(0) 编辑
摘要: 我们来看代码: 阅读全文
posted @ 2021-12-08 09:23 wuyuan2011woaini 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 在上一个教程中,我们看到了Harris Corner Detector。1994年下半年,J。Shi和C. Tomasi在他们的论文《有益于跟踪的特征》中做了一个小修改,与Harris Harris Detector相比,显示了更好的结果。哈里斯角落探测器由下式给出:取而代之的是,史托马西提出:如果大于阈值,则将其视为拐角。如果像在Harris Corner Detector中那样在空间中绘制它, 阅读全文
posted @ 2021-12-08 09:21 wuyuan2011woaini 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 经过了之前教程的过渡,本次我们来讲解一个相当重要的变换——SIFT尺度不变特征变换,之所以称其为尺度不变,是因为其不受图片放缩以及旋转的影响。在前两个教程中,我们看到了一些像Harris这样的拐角检测器。它们是旋转不变的,这意味着即使图像旋转了,我们也可以找到相同的角。很明显,因为转角在旋转的图像中也仍然是转角。但是缩放呢?如果缩放图像,则拐角可能不是角。例如,检查下面的简单图像。在同一窗口中放大 阅读全文
posted @ 2021-12-08 09:21 wuyuan2011woaini 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 我们在上次简述了OpenCV的特征基础原理,本次我们将步入实战部分,开始进行特征的初阶检测。原理在上一个教程中,我们知道了角点是图像中向任意方向发生改变时,都引起图像强烈变动的区域。Chris Harris 和 Mike Stephens 在他们1988年的论文 A Combined Corner and Edge Detector 中,做了早期的尝试,尝试找出这些角点。因此现在这个算法被称为哈里 阅读全文
posted @ 2021-12-08 09:19 wuyuan2011woaini 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 上个教程结束,标志着OpenCV的图像处理部分已经结束,从本次教程开始,我们开始讨论图像的特征问题,这是一个庞大的体系,它决定了后面目标识别的基础,本次我们先来理解图像的特征问题。我们大多数都会玩拼图游戏。会得到很多小图片,我们需要正确地将它们组装起来才能形成一个大的真实图像。问题是,这是如何做到的?如何将相同的理论投射到电脑程序中,让电脑可以玩拼图游戏?如果电脑可以玩拼图游戏,为什么我们不能给计 阅读全文
posted @ 2021-12-08 09:17 wuyuan2011woaini 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 常情况下,我们需要图像进行前景后景进行分离,有的时候也许我们仅仅是需要前景。本次教程我们将介绍GrabCut算法进行交互式前景提取。GrabCut是一种基于图切割的图像分割方法。GrabCut算法是基于Graph Cut算法的改进。基于要被分割对象的指定边界框开始,使用高斯混合模型估计被分割对象和背景的颜色分布(注意,这里将图像分为被分割对象和背景两部分)。简而言之,就是只需确认前景和背景输入,该 阅读全文
posted @ 2021-12-08 09:16 wuyuan2011woaini 阅读(526) 评论(0) 推荐(0) 编辑
摘要: 可以看到,最终结果显示完美分割。 阅读全文
posted @ 2021-12-08 09:14 wuyuan2011woaini 阅读(804) 评论(0) 推荐(0) 编辑
摘要: 结果让人感到乱七八糟的,现在我先采用中值滤波,继而采用高斯滤波,我们来看代码: 可以看到,效果良好,霍夫变换通常情况下受图片的噪声信息干扰非常大,所以通常情况下我们需要对图像进行预处理操作。 阅读全文
posted @ 2021-12-08 09:12 wuyuan2011woaini 阅读(466) 评论(0) 推荐(0) 编辑
摘要: 可以看到,这个直线检测是比之前的要好很多的,我们将在下一次中介绍霍夫圆变换,用途更为广泛。 阅读全文
posted @ 2021-12-08 09:10 wuyuan2011woaini 阅读(578) 评论(0) 推荐(0) 编辑
摘要: 我们在之前讨论OpenCV的轮廓以及直方图时已经接触过类似的匹配,事实上,它们原理基本上差不多,都是用一幅模板图像和原图进行匹配,从而找到原图中相应的地方,作为OpenCV中的一种最基本的目标识别的方法,模板匹配有其一定的作用,今天我们来具体的进行讨论。模板匹配是一种用于在较大图像中搜索和查找模板图像位置的方法。为此,OpenCV带有一个函数cv.matchTemplate()。它只是将模板图像滑 阅读全文
posted @ 2021-12-08 09:05 wuyuan2011woaini 阅读(860) 评论(0) 推荐(0) 编辑
摘要: 傅里叶变换我们生活在时间的世界中,早上7:00起来吃早饭,8:00去挤地铁,9:00开始上班。。。以时间为参照就是时域分析。但是在频域中一切都是静止的!可能有些人无法理解,我建议大家看看这个文章,写的真是相当好,推荐!https://zhuanlan.zhihu.com/p/19763358傅里叶变换经常被用来分析不同滤波器的频率特性。我们可以使用 2D 离散傅里叶变换 (DFT) 分析图像的频域 阅读全文
posted @ 2021-12-08 09:04 wuyuan2011woaini 阅读(398) 评论(0) 推荐(0) 编辑
摘要: OpenCV-Python系列之直方图反投影本次教程我们将介绍OpenCV直方图部分的最后一个知识点——直方图反投影。反向投影可以用来做图像分割,寻找感兴趣区间,类似于我们前面讲过的ROI区域分割。它会输出与输入图像大小相同的图像,每一个像素值代表了输入图像上对应点属于目标对象的概率,简言之,输出图像中像素值越高的点越可能代表想要查找的目标。直方图投影经常与camshift(追踪算法)算法一起使用... 阅读全文
posted @ 2021-12-07 16:41 wuyuan2011woaini 阅读(149) 评论(0) 推荐(0) 编辑
摘要: ] 阅读全文
posted @ 2021-12-07 16:40 wuyuan2011woaini 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 我们再来看看彩色图像的均值化,彩色图像的直方图均衡化和灰度图像略有不同,需要将彩色图像先用split()方法,将三个通道拆分,然后分别进行均衡化.最后使用merge()方法将均衡化之后的三个通道进行合并.操作如下: 阅读全文
posted @ 2021-12-07 16:38 wuyuan2011woaini 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2021-12-07 16:34 wuyuan2011woaini 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 本次教程我们仍将讨论OpenCV的轮廓的知识——轮廓的层次结构,也就是轮廓的父子关系。在之前的教程中,我们已经研究了一些与OpenCV所提供的轮廓有关的函数。但是当我们用cv.findContours()函数找到图像的轮廓时,我们已经传入了一个参数,轮廓检索模式(Contour Retrieval Mod)。我们通常传入cv.RETR_LIST或cv. RETR_TREE,它运行的很好。但它到底是 阅读全文
posted @ 2021-12-07 16:31 wuyuan2011woaini 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 截至到本次教程,我们已经基本掌握了OpenCV常用的一些功能,实际上已经可以处理很多问题了,故从本教程开始,示例代码将编写为一个固定函数,以便调用,另外将不再给出完整代码,比如导入库将不再另行贴出,一些基本的代码也不再贴出,只贴出核心部分,我会将核心部分整理为一个方便调用的函数。我们在前面讨论了轮廓的特征以及属性,今天我们将综合之前学的内容讨论轮廓的高级功能。凸缺陷对象上的任何凹陷都被称为凸缺陷, 阅读全文
posted @ 2021-12-07 15:53 wuyuan2011woaini 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 之前我们讨论了轮廓的各种特征,OpenCV中关于图像的轮廓特征还是非常之多的。今天将讨论轮廓的一些简单的属性。长宽比它是对象边界矩形的宽度与高度的比,我们在之前的教程中已经介绍了获取图像轮廓的x,y,w,h,它们由函数:x,y,w,h = cv.boundingRect(cnt)得到,当然,我们在这里谈论的是图像的边界矩形,并非是最小边界矩形。现在来计算长宽比,公式:代码:import cv2 i 阅读全文
posted @ 2021-12-07 15:49 wuyuan2011woaini 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 在之前的教程中,我们谈到了轮廓的一些基本特征,包括有图像的矩、轮廓区域的面积、轮廓的周长、轮廓的外接图形等等。今天我们仍然讨论几种轮廓的特征,它们将很具有实战意义,我们将从综合方面讲述。轮廓近似通常在某些特定场合,我们并不需要太过精确的轮廓信息,而只需要大概的信息,这个时候我们就需要对轮廓进行近似处理,实际上也称之为多边形拟合。我们接下来将会做一个综合性实验,从而完善对轮廓近似的实战学习。先来看相 阅读全文
posted @ 2021-12-07 15:45 wuyuan2011woaini 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 本次我们主要讨论轮廓的外界图形,事实上它们都是非常有用的,下次我们将讨论轮廓特征的一些高阶方法。 阅读全文
posted @ 2021-12-07 15:39 wuyuan2011woaini 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 在上一个教程中,我们讲到了轮廓的查找以及绘制,但是只掌握这些还是远远不够的,我们经常需要一些更加复杂的操作,本次教程我们将谈谈关于轮廓的特征。图像的矩图像识别的一个核心问题是图像的特征提取,简单描述即为用一组简单的数据(数据描述量)来描述整个图像,这组数据月简单越有代表性越好。良好的特征不受光线、噪点、几何形变的干扰,图像识别技术的发展中,不断有新的描述图像特征提出,而图像不变矩就是其中一个。从图... 阅读全文
posted @ 2021-12-07 15:33 wuyuan2011woaini 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 我们还可以改变参数: 下面的输出栏会打印出来轮廓的个数,改变参数再次实验一下: 本次教程对于轮廓进行了一些基本的介绍,下次我们将介绍一些关于轮廓的其他内容。 阅读全文
posted @ 2021-12-07 15:29 wuyuan2011woaini 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 图像金字塔实际上是有着很大的用途的,包括图像融合,但这些我们将在后面的项目实战中介绍到。 阅读全文
posted @ 2021-12-07 15:27 wuyuan2011woaini 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 上一个教程中我们谈到的拉普拉斯算子本质上属于图像的边缘检测,但是我们同时也看到,拉普拉斯算子有一定的局限性,对于复杂图像的边缘检测有些力不从心,本次我们将介绍一个在OpenCV中有着决定性地位的边缘检测——Canny算法。我们在前面已经了解过,边缘检测算法通常有四个步骤:(1)滤波:边缘检测算法主要是基于图像强度的一阶和二阶导数,但导数的计算对噪声很敏感,因此必须使用滤波器来改善与噪声有关的边缘检 阅读全文
posted @ 2021-12-07 15:24 wuyuan2011woaini 阅读(771) 评论(0) 推荐(0) 编辑
摘要: 可以看到,对于较为复杂的图像,拉普拉斯算子的效果也并不是很好,由于二阶微分一定的局限性,目前的边缘检测还不够完美,我们需要一种综合的算法,而这将在下一个教程中介绍到。 阅读全文
posted @ 2021-12-07 15:22 wuyuan2011woaini 阅读(794) 评论(0) 推荐(0) 编辑
摘要: 我们再上个教程中留了一个小彩蛋——形态学的梯度问题,通常情况下,它被用于提取图像的轮廓,今天我们来了解图像边缘的另一种方法,它将比形态学梯度更有效,适用范围也更广。Sobel算子前面的例子,已经接触到了图像卷积运算。最终要的卷积运算之一是用于计算图像的导数(或近似导数)。为什么图像中导数的计算很重要,看下面边缘检测的例子:很容易观察到上面图像中像素灰度值变化没有规律。一种比较好的描述这种变化的方法 阅读全文
posted @ 2021-12-07 15:17 wuyuan2011woaini 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 事实情况很糟糕,这样的阈值化根本无法让我们进行下一步的操作,我们看原图发现右下角的字体与背景的亮度都有些高,所以会出现这种情况,现在想让字体与背景分离出来,我们可以用顶帽操作对前景进行明亮化: 阅读全文
posted @ 2021-12-07 14:52 wuyuan2011woaini 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 可以看到,图像的毛刺没有被去除,现在我们需要将原图进行阈值化翻转,也就是黑白颠倒,这样才方便进行形态学的处理,我们在前面阈值部分讲过,这里就不再讲述了,直接看代码: 这就说明操作过度了,所以对于形态学处理卷积核的适当选取是非常重要的,现在我们对处理之后的图像进行还原: 阅读全文
posted @ 2021-12-07 14:43 wuyuan2011woaini 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 我们在前两次教程中概述了OpenCV对于图像的滤波,通常对于一个实战项目而言,滤波之后的下一步操作就是图像的形态学处理了,从本次教程开始,我们正式步入了OpenCV图像形态学处理的部分。形态学(morphology)一词通常表示生物学的一个分支,该分支主要研究动植物的形态和结构。而我们图像处理中指的形态学,往往表示的是数学形态学。下面一起来了解数学形态学的概念。数学形态学是一门建立在格论和拓扑学基... 阅读全文
posted @ 2021-12-07 14:34 wuyuan2011woaini 阅读(857) 评论(0) 推荐(0) 编辑
摘要: 我们在上个教程中谈到了线性滤波,相比较而言,线性滤波中的高斯滤波最为受欢迎,但是我们也遗留了一个问题,线性滤波对于椒盐噪声的过滤并不是很好,由此我们本次将谈到OpenCV中的非线性滤波。之前我们说的线性滤波,即两个信号之和的响应和他们各自响应之和相等。换句话说,每个像素的输出值是一些输入像素的加权和,线性滤波器易于构造,并且易于从频率响应角度来进行分析。其实在很多情况下,使用邻域像素的非线性滤波也 阅读全文
posted @ 2021-12-07 14:27 wuyuan2011woaini 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 本次教程将介绍几种OpenCV常用的滤波器,将介绍它们详细的原理,图像滤波对于OpenCV图像处理来说是至关重要的一环,它在整个OpenCV中的分量是举足轻重的,我们必须完完全全的掌握它。图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性。 消除图像中的噪声成分叫作图像的平滑化或滤波操作。 阅读全文
posted @ 2021-12-07 14:13 wuyuan2011woaini 阅读(352) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 16 下一页