OpenCV学习教程
重读OpenCV3.x教程,对目前用到的相关知识,仔细研究, 目前用不到而没有时间深入的知识点记录留做备份,等之后慢慢来研究。
爱发呆de白菜头
从事视觉SLAM,研究基于单目, 单目+IMU,RGB-D的SLAM算法, 有时侧重三维重建(地图, 渲染,分割,识别等), 有时侧重定位(VO,VIO等)。
展开
-
RGB颜色空间对应的不同颜色列表
下面的图标对应的颜色是RGB排列顺序, 而在OpenCV中使用时要注意调整顺序,即为BGR!转载 2019-10-15 14:37:32 · 1527 阅读 · 0 评论 -
OpenCV第十四讲: Fast特征点与ORB特征点原理详解
一般特征说的意思是关键点+描述子;一. Fast特征点检测原理: FAST是一种角点, 主要检测局部像素灰度变换明显的地方。核心思想: 如果一个像素与邻域的像素差别较大,那么它更可能是角点。优势: 由于只需要比较像素的亮度大小,所以速度十分快捷。检测过程1.在图像中选取一点像素p,假设它的亮度为Ip;2.设置一个亮度阈值T;3.以像素p为中心,选取半径为3的圆上的上16个像...原创 2019-09-03 11:30:54 · 3088 阅读 · 0 评论 -
OpenCV第十三讲:SURF特征点的检测与匹配详解
Dog算子,SIFT特征点, Fast角点 ,ORB特征点 有时间慢慢再来解析1. SURF的优势SURF主要有以下几点优势SURF是尺度不变特征变换算法(SIFT)的加速版,一般来说它比SIFT要快好几倍,且在多幅图像下具有更好的稳定性;SURF采用了harr特征+积分图像的概念,大大加快了程序的运行时间。SURF可以应用于计算机视觉的物体识别以及3D重构...原创 2019-08-30 14:31:57 · 8656 阅读 · 3 评论 -
OpenCV第十二讲:角点检测与亚像素精度
1. Harris角点检测角点检测被定义两条边的交点, 在实际应用中,大多数所谓的角点检测方法检测的是拥有特定特征的图像点, 而不仅仅是角点。角点: 如果某一点在任意方向的一个微小变动都会引起灰度很大的变化,那么将其称之为角点。角点的性质一阶导数(即灰度的梯度)的局部最大所对应的像素点;两条及两条以上边缘的交点;图像中梯度值和梯度方向的变化速率都很高的点;角点处的一阶导数最...原创 2019-08-30 14:26:03 · 2911 阅读 · 1 评论 -
OpenCV 第十一讲: 重映射、仿射变换、直方图均衡化
OpenCV 第十一讲: 重映射、仿射变换、直方图均衡化1. 重映射重映射, 就是把一幅图像中某位置的像素放置到另一个图片中指定位置的过程。简单来说,就是分别对原图像的每一个像素进行平移、旋转等操, 如:$h(x, y)=(1 . c o l s-x, y)$ ## h() 为图像映射函数OpenCV中的函数-- remap() void remap( InputArra...原创 2019-08-30 14:23:14 · 244 阅读 · 0 评论 -
OpenCV第十讲:图像几何形状识别之霍夫变换
霍夫变换是从图像中识别几何形状的基本方法之一, 主要检测直线或圆。1.霍夫变换概述霍夫变换是图像处理中一种特征提取技术, 该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换的结果;目前霍夫变换扩展到任意形状物体的识别, 多为圆和椭圆;霍夫变换就是利用两个坐标空间的变换将在一个空间具有相同形状的曲线/直线映射到另一个坐标空间的一个点上形成峰值, 从...原创 2019-08-30 14:21:51 · 1972 阅读 · 0 评论 -
OpenCV第九讲:图像变换之边缘检测(Laplacian +Scharr 算子)
1. Laplacian 算子Laplacian 算子(拉普拉斯), 是n维欧几里德空间中的一个二阶微分算子,定义为梯度的散度(参考:一阶为梯度,二阶为散度)。拉普拉斯算子的定义:Laplace(f)=∂2f∂x2+∂2f∂y2(f)=\frac{\partial^{2} f}{\partial x^{2}}+\frac{\partial^{2} f}{\partial y^{2}}(f)=...原创 2019-08-27 21:18:16 · 376 阅读 · 0 评论 -
OpenCV第八讲:图像变换之边缘检测(Canny+Sobel算子)
边缘检测的一般步骤: 滤波 去除噪声–> 增强 增强梯度显著变换的点 --> 检测 阈值化检测剔除不是边缘的点最优边缘的三个主要评价标准:低错误率:标识出尽可能多的实际边缘,同时尽可能减少噪声产生的误差。高定位性:标识出的边缘要与图像中的实际边缘尽可能接近。最小响应 :图像中的边缘只能标识一次,并且噪声不应标识为边缘1. Canny 算子变分法, 一种寻...原创 2019-08-25 10:24:32 · 637 阅读 · 0 评论 -
OpenCV第七讲:阈值的作用
阈值可以被视作最简单的图像分割方法。利用阈值进行分割的方法是基于图像中物体和背景之间的灰度差异来实现的。1. 阈值化操作固定阈值操作Threshold() 函数自适应阈值操作adaptiveThreshold()函数源代码分析 /*******************************************************************...原创 2019-08-24 21:35:15 · 1526 阅读 · 0 评论 -
OpenCV第六讲: 漫水填充、图像金字塔
OpenCV第六讲: 漫水填充、图像金字塔1. 漫水填充对连续的像素区域进行处理。是一种用特定的颜色填充连通区域,通过设置可联通像素的上下限以及连通方式来达到不同的填充效果的方法。经常被用来标记或分离图像的一部分;可以用来从输入图像中获取掩码区域,掩码会加速处理过程。2. 源代码剖析OpenCV函数实现 – floodFill漫水填充操作的结果总是某个连续的...原创 2019-08-23 18:06:03 · 343 阅读 · 0 评论 -
OpenCV第五讲: 形态学滤波
形态学的基本运算包括:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰度腐蚀和膨胀等1. 腐蚀、膨胀形态学操作就是基于形状的一系列图像处理操作,本文中的膨胀是对图像的高亮部分进行膨胀,腐蚀是对原图中的高亮部分被腐蚀。从数学角度来讲,这两种操作就是将图像与核进行卷积。膨胀就是求局部最大值操作,将图像与核卷积,即计...原创 2019-08-20 11:20:25 · 568 阅读 · 0 评论 -
OpenCV第四讲: 非线性滤波
上一两节讲的是线性滤波,即每个像素的输出值是一些输入像素的加权和,线性滤波器易于构造,并且易于从频率响应角度来进行分析。然而, 在很多情况下,使用邻域的非线性滤波会得到更好的效果,比如噪声是散粒噪声而不是高斯噪声, 用高斯滤波器对图像进行模糊时不会去除噪声,它们只是转换了更为柔软但仍然可见的散粒。( --> 中值滤波 show Time)1. 中值滤波它是一种典型的非线性滤...原创 2019-08-20 11:16:23 · 474 阅读 · 0 评论 -
OpenCV第三讲: 方框滤波、均值滤波、高斯滤波
在上一讲中谈到了图像滤波的原理和一些常见的方法,在本讲中将从代码实现的角度讨论三种常见的线性滤波器。1. 方框滤波方框滤波(box Filter) —> boxblur boxblur函数的作用是使用方框滤波器来模糊一张图片.2. 均值滤波均值滤波,归一化后的方框滤波 —> blur 最简单的一种滤波操作,输出图像的每一个像素是"核"窗口内输入图像对应...原创 2019-08-17 10:26:25 · 672 阅读 · 0 评论 -
OpenCV第二讲:图像滤波及几何变换
图像滤波, 是指尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作, 其处理效果的好换将直接影响到后续图像处理和分析的有效性和可靠性。1. 前言图像滤波的目的第一个:抽出对象的特征作为图像识别的特征模式;第二个:消除图像数字化时混入的噪声;图像滤波的要求第一条: 不能损坏图像的轮廓及边缘等重要信息;第二条: 使图像清晰、视觉效果较好;...原创 2019-08-16 10:58:15 · 401 阅读 · 0 评论 -
OpenCV第一讲: 常规函数和类的使用 -- HighGui Core模块
在使用OpenCV函数时,若无法明确函数属于哪个头文件,可直接包含"opencv2/opencv.hpp"头文件1. 常规类点的表示 – Point类 Point pt; # 点有x,y 坐标 pt.x = 2; pt.y = 3;颜色的表示 – Scalar类 Scalar 表示具有4个元素的数组, 但一般RGB是三个元素,只写三个就行,第四个不用则不需要写出; ...原创 2019-08-12 17:29:18 · 216 阅读 · 0 评论