
OpenCv
文章平均质量分 78
codedoctor
正在学习计算机相关
展开
-
【AR技术点】(三)完整的AR效果
开始工作了,留给自己写博客和看书的时间也变少了。最近半年更新的比较少,但是这个系列还是需要有个完结,不过不想写的太多,因为说的在前面都已经说过了。这个AR实现在一年前就实现了,但是一直没有写博客来说一下。这个项目,中间耗时近一年,虽然并不是大部分时间都在做AR实现,但是还是耗费了许多的功夫,最后也终于实现了大致的功能和预期,达到了实时的AR效果。我的毕业论文也是描述了AR过程的实现和优化方法。...原创 2020-01-12 22:04:33 · 2760 阅读 · 5 评论 -
【AR技术点】(二)如何快速跟踪特征图像
最近在准备考研,所以博客很久没有更新了,最近怎么说呢,也还行吧,就是很久没有好好的打过代码了。 每天就是背背单词做做高数,好像一下子又回到了学生时代,还挺怀念的。 好了,话不多说,直接讲图像追踪 首先可以看看我的上一篇博客(AR技术点(一)),了解一下AR的基本常识 复杂的我就不多说了,我就浅显地讲一下AR中的图像标定和跟踪方式的优化和设计PS:由于手边没有配置opencv环境,所以这...原创 2018-05-25 11:51:13 · 7783 阅读 · 1 评论 -
光流金字塔calcOpticalFlowPyrLK进行特征点跟踪
光流描述的是图像上每个像素点的灰度的位置(速度)变化情况,光流的研究是利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的“运动”。研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场。 光流法的前提假设: - (1)相邻帧之间的亮度恒定; - (2)相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比较“微小”; - (3)保持空间一致性;即,原创 2018-01-26 18:43:45 · 17520 阅读 · 1 评论 -
用SURF算法和其描述子实现视频的特征图像跟踪和标定
其实最初我是想采用SIFT的算子和特征点识别来进行特征图像的跟踪标定的,但是经过测试后发现SIFT的检测时间实在是太长了,根本不适合作为视频的特征识别的算法,所以虽然其识别准确率是最高的,但是还是只能进行舍弃而且SURF虽然准确率没有SIFT高,但其也保留了基本的尺度不变性和旋转不变型,用作特征图像的标定其实也算不错,不过这样的方法也有很大的问题,就是每一帧都必须对全局图像进行一个特征点的描述原创 2018-01-12 17:01:19 · 1700 阅读 · 2 评论 -
SIFT算法的特征点筛选和DMatch、Keypoint描述
SIFT算法描述SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points)及其有关scale 和 orientation 的描述子得到特征并进行图像特征点匹配 这个算法具有比较良好的尺度不变性和旋转不变形KeyPointKeyPoint类的成员原创 2018-01-08 00:29:25 · 14109 阅读 · 7 评论 -
goodFeaturesToTrack关键点检测
环境:opencv 2.3.1函数 goodFeaturesToTrack,函数原型:void goodFeaturesToTrack( InputArray image, OutputArray corners, int maxCorners, double qualityLevel, double minDi原创 2018-01-05 19:42:30 · 1432 阅读 · 0 评论 -
【AR技术点】(一)如何通过捕捉特征图像来建立起三维空间
在AR的技术中,最主要的技术点主要有三个:1. 捕获特征图像2. 跟踪特征图像的移动3. 计算捕获的特征图像相对于原特征图像的偏移向量为什么说这三个是最重要的呢 原因就是AR技术最关键的就是能够高效的捕捉你给予的特征图像,并在此之上将二维的视频图像转换成三维的空间,然后在此之上展示你想要展示的3D模型。捕获特征图像说到特征匹配,就得先说一下什么是特征点,现在几乎所有的特征图像捕捉算法都是基于原创 2017-11-22 20:58:24 · 10203 阅读 · 1 评论 -
OpenCv基础(五):opencv 3.x 摄像头画面获取和输出
直接贴代码吧,只是一个小的测试,以下为代码:#include <opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include <iostream> using namespace std;using namespace cv;int main(){ VideoCapture camera(0);//原创 2017-07-08 15:04:29 · 871 阅读 · 0 评论 -
OpenCv基础(四):Trackbar(轨迹条)的创建和使用
createTrackbar这个函数,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上。 函数原型如下:int createTrackbar(conststring& trackbarname, conststring& winname, int* value, int count, TrackbarCallback onChange=0,void* userdata=0); 下面看原创 2017-07-07 23:01:21 · 1176 阅读 · 0 评论 -
OpenCv基础(一)附:vs2017 配置 opencv 3.2.0
由于最近实验室更新了电脑,原来的笔记本的环境要重新迁移到新的计算机上来,所以重新配置了一次环境,一想索性配个最新的环境,VS2017 搭配 opencv3.2.0 配置步骤 1.下载并安装opencv3.2.0 和 vs2017 opencv 3.2.0 下载网址:https://sourceforge.net/projects/opencvlibrary/files/op原创 2017-07-07 16:26:06 · 1124 阅读 · 0 评论 -
【AR】AR库的准备工作和基本流程
最近准备开始做一个比较复杂的项目——写一个自己的AR库,准备工作已经做了有几周了,AR的大概流程已经梳理了几遍。下面先简单说明一下AR是什么: AR是Augmented Reality的缩写,中文翻译为现实增强(扩增实境)。它是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。最早在1990年提出。目的 写这个博客最主要的原因就原创 2017-06-06 21:41:53 · 2562 阅读 · 3 评论 -
OpenCv基础(三):图像的混合
原理以下解释基于Richard Szeliski所著 Computer Vision: Algorithms and Applications 线性混合操作 也是一种典型的二元(两个输入)的 像素操作 :g(x) = (1 - alpha)*f_0(x) + alpha *f_1(x)通过在范围 0 –> 1 内改变 alpha ,这个操作可以用来对两幅图像或两段视频产生画面叠加 (cross-原创 2017-05-19 11:20:25 · 482 阅读 · 0 评论 -
OpenCv基础(二):图像的亮度和对比度属性的调节
图像处理一般来说,图像处理算子是带有一幅或多幅输入图像、产生一幅输出图像的函数。 图像变换可分为以下两种:点算子(像素变换) 邻域(基于区域的)算子像素变换在这一类图像处理变换中,仅仅根据输入像素值(有时可加上某些全局信息或参数)计算相应的输出像素值。 这类算子包括 亮度和对比度调整 ,以及颜色校正和变换。亮度和对比度调整两种常用的点过程(即点算子),是用常数对点进行 乘法 和 加法 运算原创 2017-05-19 10:58:14 · 726 阅读 · 0 评论 -
OpenCv基础(一):噪声的添加和过滤
这是图像处理的第一章,简单地说一下OpenCv的基础功能图像的读取 图像的显示 访问图像的像素值这一节,我将会介绍一下各种噪声的类型,并且添加两三种常见的噪声将图像读入到Mat后,有三种方式访问Mat中的数据:通过指针 使用迭代器调用at相信大家已经对这些基础中的基础了解的很不错了,所以我就直接开始介绍主题,噪声 (以下的介绍为其他博客找到的)图像噪声...原创 2017-05-18 20:44:24 · 9831 阅读 · 1 评论 -
基于C++与Opencv制作的简单马里奥游戏
本游戏是今年夏天暑假的一项选拔的大作业,记得当时用了差不多整整十天的时间,每天编程时间都在十个小时左右。由于基础的不足,经历了很多的修改和重做。中间的不同版本记得一共有4个,第一个是完全的一整个主函数和一堆功能函数的设计,现在想起来还是有点好笑,当时对C++不太了解,也不太熟悉C++的面向对象的设计,还是在c的基础上思考问题。也是很尴尬,但幸好及时悬崖勒马,花了一天学完了C++的类和一些基本操作,才原创 2016-11-14 21:49:15 · 10740 阅读 · 11 评论