
OpenCV
荆黎明
这个作者很懒,什么都没留下…
展开
-
cv::Mat::release (this=0x55555641e368) at /usr/include/opencv2/core/mat.inl.hpp:708
原创 2021-09-04 16:10:20 · 531 阅读 · 0 评论 -
计算机视觉攻略 笔记15 (检测图像中的平面目标)
检测图像中的平面目标示例程序/*------------------------------------------------------------------------------------------*\This file contains material supporting chapter 10 of the book:OpenCV3 Computer Vision Application Programming CookbookThird Editionby Robert L原创 2020-08-24 18:02:41 · 581 阅读 · 0 评论 -
计算机视觉攻略 笔记14 (计算两幅图像之间的单应矩阵)
没有伞的孩子要学会奔跑计算两幅图像之间的单应矩阵单应矩阵( Homography) H,它描述了两个平面之间的映射关系。若场景中的特征点都落在同一平面上(比如墙、地面等),则可以通过单应性来进行运动估计。这种情况在无人机携带的俯视相机或扫地机携带的顶视相机中比较常见。...原创 2020-08-24 09:32:42 · 1377 阅读 · 0 评论 -
计算机视觉攻略 笔记13 (用RANSAC(随机抽样一致性)算法匹配图像)
用RANSAC(随机抽样一致性)算法匹配图像本节的主要问题:如何使用极线约束,使图像特征匹配更加可靠。要遵循的原则很简单:在匹配两幅图像的特征点时,只接受位于对极线上的匹配项。若要判断是否满足这个条件,必须先知道基础矩阵,但计算基础矩阵又需要优质的匹配项。这看起来像是“先有鸡还是先有蛋”的问题。本节将提出一种解决方案,可以同时计算基础矩阵和一批优质的匹配项。#if !defined MATCHER#define MATCHER#include <iostream>#include原创 2020-08-22 10:36:59 · 1048 阅读 · 0 评论 -
计算机视觉攻略 笔记12 (计算图形对的基础矩阵)
计算图形对的基础矩阵本节将探讨同一场景的两幅图像之间的投影关系。可以移动相机,从两个视角拍摄两幅照片;也可以使用两个相机,分别对同一个场景拍摄照片。如果这两个相机被刚性基线分割,我们就称之为立体视觉。如果两幅图像之间有一定数量的已知匹配点,就可以利用方程组来计算图像对的基础矩阵。这样的匹配项至少要有 7 对。示例程序#include <iostream>#include <vector>#include <opencv2/core/core.hpp>#i原创 2020-08-19 17:59:46 · 470 阅读 · 0 评论 -
计算机视觉攻略 笔记11 (用二值描述子匹配关键点)
用二值描述子匹配关键点为了减少内存使用、降低计算量,人们引入了将一组比特位(0 和 1)组合成二值描述子的概念。示例程序#include <iostream>#include <algorithm>#include <vector>#include <opencv2/core/core.hpp>#include </home/jlm/3rdparty/opencv/opencv_contrib/modules/xfeatures2d/inc原创 2020-08-19 09:34:37 · 325 阅读 · 0 评论 -
计算机视觉攻略 笔记10 (描述并匹配局部强度值模式)
描述并匹配局部轻度值模式本节的主要内容是使用特征描述子来描述兴趣点的邻域。特征描述子通常是一个 N 维的向量,在光照变化和拍摄角度发生微小扭曲时,它描述特征点的方式不会发生变化。通常可以用简单的差值矩阵来比较描述子,例如用欧几里得距离。综上所述,特征描述子是一种非常强大的工具,能进行目标的匹配。示例程序#include <iostream>#include <algorithm>#include <vector>#include <opencv2/原创 2020-08-19 09:05:26 · 343 阅读 · 0 评论 -
计算机视觉攻略 笔记9 (局部模板匹配)
局部模板匹配通过特征点匹配,可以将一幅图像的点集和另一幅图像(或一批图像)的点集关联起来。如果两个点集对应着现实世界中的同一个场景元素,它们就应该是匹配的。仅凭单个像素就判断两个关键点的相似度显然是不够的,因此要在匹配过程中考虑每个关键点周围的图像块。如果两幅图像块对应着同一个场景元素,那么它们的像素值应该会比较相似。最常见的图像块是边长为奇数的正方形,关键点的位置就是正方形的中心。可通过比较块内像素的强度值来衡量两个正方形图像块的相似度。常见的方案是采用简单的差的平方和(Sum of Square原创 2020-08-17 11:11:47 · 498 阅读 · 0 评论 -
计算机视觉攻略 笔记8 (Oriented FAST and Rotated BRIEF ,定向 FAST 和旋转 BRIEF,ORB)
Oriented FAST and Rotated BRIEF ,定向 FAST 和旋转 BRIEF (ORB)ORB特征检测算法ORB 代表定向 FAST 和旋转 BRIEF 。这个缩写的第一层意思表示关键点检测,第二层意思表示 ORB 算法提供的描述子。ORB 首先创建一个图像金字塔。它由一系列图层组成,每个图层都是用固定的缩放因子对前一个图层下采样得到的(典型情况是用 8 个尺度,缩放因子为 1.2 ;这是创建cv::ORB 检测器的默认参数)。在具有关键点评分的位置接受 N 个强度最大的关原创 2020-08-17 09:15:05 · 1296 阅读 · 0 评论 -
计算机视觉攻略 笔记7 (尺度不变特征的检测)&(多尺度FAST特征检测)
尺度不变特征的检测SURF特征(加速稳健特征Speeded Up Robust Feature)参考博文surf算法原理示例程序#include <iostream>#include <vector>#include <opencv2/core/core.hpp>#include </home/jlm/3rdparty/opencv/opencv_contrib/modules/xfeatures2d/include/opencv2/xfeature原创 2020-08-16 15:58:44 · 392 阅读 · 0 评论 -
计算机视觉攻略 6 (FAST 快速检测特征)
参考博文lambda表达式nth_elementFAST特征检测原理FAST 特征点提取代码//// Created by jlm on 2020/8/11.//#include <iostream>#include <vector>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/features2d/原创 2020-08-12 10:48:42 · 473 阅读 · 0 评论 -
计算机视觉攻略 笔记5 (检测图像中的角点)
检测图像中的角点原创 2020-08-10 15:55:14 · 209 阅读 · 0 评论 -
计算机视觉攻略 图像滤波笔记4 (用定向滤波器检测边缘)
用定向滤波器检测边缘放大图像中的高频成分,再用高通滤波器进行边缘检测Sobel滤波器Sobel滤波器,只对垂直和水平方向的图像频率器作用(具体方向取决于滤波器选用的内核),所以被认为是一种定向滤波器。void Sobel(InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize = 3, double scale = 1, double delta = 0, int borderType = BORDER_DEFAU原创 2020-07-27 11:42:07 · 718 阅读 · 0 评论 -
计算机视觉攻略 图像滤波笔记3 (中值滤波器)
中值滤波器(非线性)中值滤波器对消除椒盐噪声非常有效。中值滤波器把当前像素和它的邻域组成一个集合,然后计算出这个集合的中间值,以此作为当前像素的值(集合中数值经过排序,中间位置的数值就是中间值)。当前像素被中间值代替。这正是中值滤波器在消除椒盐噪声时如此高效的原因。事实上,如果在某个像素邻域中有一个异常的黑色或白色像素,该像素将无法作为中间值(它是最大值或最小值),因此肯定会被领域的值替换掉。中值滤波器函数 (#include <opencv2/imgproc/imgproc.hpp>)原创 2020-07-27 10:04:43 · 511 阅读 · 0 评论 -
计算机视觉攻略 图像滤波笔记2 (用滤波器进行缩减像素采样)
用滤波器进行缩减像素采样需要调整图像精度(重新采样)的情况屡见不鲜,降低图像精度的过程称为缩减像素采样,提升图像精度的过程称为提升像素采样。为避免混叠现象的发生,在缩减图像之前必须进行低通滤波。低通滤波的作用是消除在缩减后的图像中无法表示的高频部分。这一现象称为奈奎斯特-香农定理,它表明如果把图像缩小一半,那么其可见的频率带宽也将减少一半。OpenCV中利用该原理的函数void pyrDown(InputArray src, OutputArray dst, const Size_<int&原创 2020-07-26 20:06:48 · 870 阅读 · 0 评论 -
计算机视觉攻略 图像滤波笔记1(低通滤波器)
知识点1OpenCV库分为多个模块:opencv_core模块包含库的核心功能,opencv_imgproc模块包含主要的图像处理函数,opencv_highgui模块提供了读写图像和视频的函数以及一些用户交互函数。#include “opencv2/core/core.hpp”包含库的核心功能#include “opencv2/flann/miniflann.hpp”最邻近搜索匹配函数#include “opencv2/imgproc/imgproc.hpp”图像处理函数#include原创 2020-07-26 18:06:46 · 612 阅读 · 0 评论 -
访问的像素 OpenCV
访问像素使用迭代器访问像素迭代器是一种类,专门用于遍历集合的每个元素,并能隐藏遍历过程的具体细节。信息隐藏原则的应用,使扫描集合的过程变得更加容易和安全。彩色图像的迭代器cv::MatIterator_<cv::Vec3b> it;cv::Mat_<cv::Vec3b>::iterator it;迭代器初始化cv::Mat_<cv::Vec3b>...原创 2019-11-20 18:22:29 · 166 阅读 · 0 评论