![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenCV
负壹
这个作者很懒,什么都没留下…
展开
-
OpenCV中稠密光流算法总结
一、什么是光流 之前有一篇博客对光流做出了概念性的说明,可以参考:光流法—光流场估计概念二、光流的基本算法 之前写了一篇博客介绍几个入门级的光流算法原理和推导,可以参考:经典光流计算方法(HS光流法、Lucas-Kanada方法、Pyramidal LK方法)三、OpenCV中光流的调用preImg是前一帧图像 nxtImg是后一帧图像 pre2nxt是检测出的光流场3.1Farneback算法calcOpticalFlowFarneback(p...原创 2020-12-18 19:55:37 · 3374 阅读 · 3 评论 -
Qt+OpenCV发布可执行程序(打包DLL文件)
一、目的 OpenCV是最常用的开源视觉库,Qt是当前最常用的GUI开发框架,用他们做出的软件如果要在其他终端运行就需要提前打包,将依赖的环境连同程序一起打包成可执行文件,这里是使用添加DLL文件的方式,做出绿色版可执行文件,通过U盘直接将生成程序拷到其他电脑上可以直接使用。二、解决方法2.1 生成exe文件 实际上只需要运行程序(Debug或者Realse模式),就会在相应程序的目录中出现exe文件,比如我要生成的文件为 Detection.exe ...原创 2020-12-12 16:17:16 · 2396 阅读 · 0 评论 -
经典光流计算方法(HS光流法、Lucas-Kanada方法、Pyramidal LK方法)
预备知识:梯度法 最早的基于梯度的光流计算方法是于1980年发表的。这个算法的基本原理如下所述:假定(x,y,t)(x,y,t)(x,y,t)是时刻ttt在图像位置(x,y)(x,y)(x,y)的灰度值。u(x,y)u(x,y)u(x,y)和v(x,y)v(x,y)v(x,y)是光流在位置(x,y)(x,y)(x,y)的xxx和yyy方向的分量。如果我们假设在时刻t+δtt+\delta tt+δt,在位置(x+δx,y+δy)(x+\delta x,y+\delta y)(x+δx,y+δy)的灰度值原创 2020-11-08 13:06:27 · 13197 阅读 · 4 评论 -
光流法—光流场估计概念
目录1. 图像的产生2. 光流的概念3. 光流场和运动场之间的关系1. 图像的产生在讨论光流之前,首先需要了解什么是图像以及图像的产生过程。如下图所示,光信号经过眼睛的视觉细胞感知后,通过视觉神经和视神经中枢传递给大脑的相应分区,对其刺激形成视觉。可以说,图像是人类的视觉基础是自然景物的客观反映,是指客观事物经过光的反射和投射在大脑中形成的印象或认识。图像是图和像的完美结合,“图”反映了物体的客观存在“像”反映了人的视觉系统对图的印象或认识。图像是一种信息载体,是客观的一种表示方法,广义原创 2020-11-08 10:30:49 · 4828 阅读 · 2 评论 -
OpenCV4中Stitch的应用
网上很多都是OpenCV3中调用的方式,其中Stitcher::createDefault方法以及没有了,需要用指针调用create()方法,具体看代码:int main(){ cv::Mat image1 = cv::imread("p1.jpg", 0); cv::Mat image2 = cv::imread("p2.jpg", 0); if (!image1.data || !image2.data) { perror("读取错误"); .原创 2020-11-03 12:07:14 · 5264 阅读 · 2 评论 -
Ubuntu16.04 + Qt 5.9 +opencv 3.4(OpenCV_Contrib)轻松配置
一、安装Qt从官网(http://download.qt.io/archive/qt/)下载所需版本的.run文件,然后放置到某个文件夹里边(文件夹位置随意),然后在文件夹里右键打开终端输入:sudo ./qt-opensource-linux-x64-5.8.0.run就开始了Qt的安装,安装过程可参考链接https://blog.csdn.net/wuweifeng_2017...原创 2019-12-11 12:32:27 · 793 阅读 · 0 评论 -
OpenCV如何正确使用stereoRectify函数
函数介绍 用于双目相机的立体校正环节中,这里只谈谈这个函数怎么使用,参数具体指哪些函数参数 随便去网上一搜或者看官方手册就能得到参数信息,但是!!相对关系非常容易出错!! 这里详细解释一下这些参数究竟怎么用void stereoRectify(InputArray cameraMatrix1, InputArray distC...原创 2020-04-26 21:21:58 · 13746 阅读 · 20 评论 -
OpenCV的viz库学习(三)
学习目标这次学习中将学会下面两部分:使用WidgetAccessor和VTK创建自己的窗口部件。 在可视化窗口中显示部件。代码#ifndef USE_VTK#include <iostream>int main(){ std::cout << "This sample requires direct compilation with VTK....原创 2020-02-14 22:55:20 · 409 阅读 · 0 评论 -
OpenCV的viz库学习(二)
学习目标这次学习中将学会下面三部分:如何使用makeTransformToGlobal计算位姿 如何使用makeCameraPose和Viz3d :: setViewerPose 如何通过轴和视锥显示可视化相机位置代码#include <opencv2/viz.hpp>#include <iostream>#include <fstream&g...原创 2020-02-14 20:43:21 · 2175 阅读 · 1 评论 -
OpenCV的viz库学习(一)
学习目标这次学习中将学会下边三部分:添加一些不见到可视化窗口 使用Affine3设置部件的姿势 部件沿轴旋转与平移代码#include <opencv2/viz.hpp>#include <opencv2/calib3d.hpp>#include <iostream>using namespace cv;using namespace...原创 2020-02-14 20:15:41 · 917 阅读 · 0 评论 -
OpenCV 应用RANSAC于特征匹配
代码比较详细,发在博客做一个学习记录class RobustMatcher {private: // 特征点检测器对象的指针 cv::Ptr<cv::FeatureDetector> detector; // 特征描述子提取器对象的指针 cv::Ptr<cv::DescriptorExtractor> descriptor; ...原创 2020-01-29 22:30:37 · 2447 阅读 · 0 评论 -
OpenCV用FAST、SURF、SIFT、BRISK、ORB等进行特征点提取与匹配
特征检测属于 opencv_contrib 库,在编译 OpenCV 时包含了附加模块才能使用,具体如何编译这里就不再作说明了一、创建检测器首先读取要建立提取特征的图像与存放特征点的数组cv::Mat image = cv::imread("hy.jpg", 1);std::vector<cv::KeyPoint>keypoints;使用特征检测方...原创 2020-01-28 16:17:51 · 2365 阅读 · 0 评论 -
OpenCV用MSER 算法提取特征区域
计算图像 MSER 的基础类是 cv::MSER,继承自 cv::Feature2D 类,cv::MSER 类的实例可以通过create 方法创建。我们在初始化时指定被检测区域的最小和最大尺寸,以便限制被检测特征的数量,调用方式如下:cv::Ptr<cv::MSER> ptrMSER=cv::MSER::create(5, // 局部检测时使用的增量值 ...原创 2020-01-27 22:27:53 · 3208 阅读 · 2 评论 -
OpenCV对图像遍历的高效方法
一、指针遍历 首先介绍几个Mat类型的属性,rows是Mat类型的行数,cols是列数,channels()是通道数,那么对于图像的每一行,都有cols*channels()个像素点,所以我们可以对所有行进行遍历,然后对于特定一行,遍历所有像素点,代码如下:int nl= image.rows; // 行数// 每行的元素数量int nc= image.cols * i...原创 2020-01-26 21:58:09 · 2049 阅读 · 0 评论