CV
文章平均质量分 61
Zuo丶
热爱生活,享受BUG
展开
-
Ubuntu下OpenCV2和OpenCV3共存的方法
由于OpenCV3在OpenCV2的基础上改动比较大,且向下支持不够好,所以,很多老工程需要用OpenCV2,而新工程又仅支持OpenCV3。如果两者同时安装也不冲突,本质上也就是一些三方库,放在/usr/local/lib下面,但是如果使用FIND_PACKAGE(OpenCV REQUIRED)的时候,其本质是去/usr/local/share下面寻找cmake文件,而两个版本的cmake原创 2017-08-15 11:56:04 · 4797 阅读 · 0 评论 -
深度图转点云(Xtion/Kinect/OB等)
今天分享一个将深度图转点云的方法。 所谓的深度图一般指从深度相机中读取到的带有深度信息的一帧数据,一般为16bit的png/pgm格式。深度图不适合直观的去察看,点云的效果会更强,所以,一般我们都是将深度图转成点云再察看。 其实,像Xtion/Kinect等深度相机可以直接输出点云,当然,深度图的获取也不仅是以上几种设备,例如双目稠密重建算法也可以。我这里用到的是华硕的Xtion...原创 2017-09-20 08:45:30 · 16321 阅读 · 15 评论 -
Kd-Tree算法原理简析
本文讲解旨在讲解Kd-Tree(K-demension tree)的一些粗浅的原理,以及其在计算机视觉的一些应用,既是总结了自己,也是分享给大家,希望有所帮助。 Kd-Tree是从BST(Binary search tree)发展而来,是一种高维索引树形数据结构,常用于大规模高维数据密集的查找比对的使用场景中,主要是最近邻查找(Nearest Neighbor)以及近似最近邻查找(App...原创 2017-08-22 23:31:15 · 27369 阅读 · 10 评论 -
如何为自己的双目系统选取相机?
目前来说,一般使用等焦的两个同型号摄像头组成双目,不等焦的双目应用场景以及使用方式暂时未知。 双目系统,我们一般指用左右两个摄像头来模拟人眼的一套系统,一般用来测距,避障,导航等领域。那么在展开双目栏目之前,我们先来说说如何设计自己的双目系统。原创 2017-12-18 20:59:33 · 5524 阅读 · 0 评论 -
相机标定(Camera calibration)原理、步骤
相机标定(Camera calibration)原理、步骤author@jason_ql(lql0716) http://blog.csdn.net/lql0716在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得转载 2017-12-11 19:16:06 · 4004 阅读 · 0 评论 -
鱼眼镜头的标定及矫正
本文主要目的是为分享来自苏黎世大学Davide Scaramuzza的OCamCalib全视角相机模型标定矫正算法。作者主页 因为是被墙了,所以我分享出来以供参考。先上结果图:可以看出,效果是相当不错的,所以这也是我强烈分享给大家的原因之一。环境 1. MATLAB2015R标定鱼眼镜头 2. Ubuntu14.04 + OpenCV2.4.11根据标定结果对鱼眼镜头矫正资源 1. Matla原创 2017-09-14 19:52:45 · 20881 阅读 · 114 评论 -
欧拉角和旋转矩阵相互转换
欧拉角和旋转矩阵可同样表示刚体在三维空间的旋转,下面分享这两者互相转换的方法和核心代码欧拉角转旋转矩阵 欧拉角通过将刚体绕过原点的轴(i,j,k)旋转θ,分解成三步,如下图(蓝色是起始坐标系,而红色的是旋转之后的坐标系) 如果将每一个角度用旋转矩阵表示如下: 所以,容易得到,欧拉角转旋转矩阵如下: 旋转矩阵转欧拉角 将旋转矩阵表示如下: 则可以如下表示欧拉...原创 2017-10-12 21:02:23 · 31036 阅读 · 18 评论 -
SLAM基础技术点之基于计算机视觉求解相机姿态变化的方法汇总
求解相机的姿态变化有许多的方法,从视觉的角度出发是很重要的一种,这里我总结了目前主流的基于CV的求解相机姿态变化的方法。基于视觉的方法,一般思路为从两个姿态的图像上选取匹配点,根据数据的不同,对应用不同的方法计算两两匹配点的R|T,也即外参,而这个R|T也就是相机两个姿态的变换关系。这里的的方法大体分为这么三类,2d到2d的匹配点、2d到3d的匹配点、3d到3d的匹配点。二维到二维的匹配 Hom原创 2017-09-01 15:26:56 · 6546 阅读 · 6 评论 -
在VS中OpenCV用imread读取不到图片
今天在Visual Studio2013中配置好了OpenCV2.4.11,然后用imread读取图片试试效果,发现读取不到图片,症状是,编译运行都没出错,但是读到的图片就是空的。最后查找了半天的原因,发现是工程使用的是Debug模式,但是添加的OpenCV依赖库是用的Release版本的。具体如下: 如上图,我的工程师使用的Debug模式 所以属性 -原创 2017-09-27 19:01:25 · 8612 阅读 · 4 评论 -
win10搭建Visual Studio2013+OpenCV2.4.11+CMake3.9.2环境
[-]一工具准备二使用cmake生成opencv源代码工程的解决方案三使用VS编译源代码四相关配置通常情况下,我们需要使用opencv的库函数时,只需将opencv的环境变量配置好就可以了,本人也在前面的文章中进行过介绍,博客链接为http://blog.csdn.net/a2112233445566/article/details/38540389。但是如果我们想要查转载 2017-09-15 14:54:57 · 1754 阅读 · 0 评论 -
基于深度摄像头的障碍物检测(realsense+opencv)
一个基于深度摄像头的障碍物检测代码的核心思路是首先通过二值化,将一米之外的安全距离置零不考虑,然后通过开运算去除掉一些噪点(这个后来发现不一定有必要),在求出所有障碍物的凸包,这个时候要计算面积,当面积小于一定的阈值的时候不予考虑,最终输出障碍物的凸包坐标。//find_obstacle函数是获取深度图障碍物的函数,返回值是每个障碍物凸包的坐标,参数一depth是realsense转载 2017-06-08 10:04:30 · 12113 阅读 · 10 评论 -
OpenCV中读取YAML文件方法
在CV处理中,一般要用到一个甚至多个相机参数,所谓的相机参数,也就是指相机外参、内参、畸变参数等,它们一般以矩阵的形式存在,如果都写在代码里面,一来显得臃肿拖沓,二来也不方便修改参数,OpenCV提供了YAML文件扩展配置的功能,也就是FileStorage类,下面用一段代码展示它的基本用法。下面这个YAML文件中按顺序存储了四个相机的内参和畸变参数:%YAML:1.0calibrateTime:原创 2017-09-07 20:14:19 · 7452 阅读 · 3 评论 -
将二进制深度图转换成OpenCV的Mat格式
日常在使用深度相机(Xtion之类)时,有时没有OpenCV的环境,就会把数据保存成16位的二进制dat文件,但是之后我们的处理一般都是在OpenCV里面的,这时就需要将二进制深度图转换成Mat格式,下面这段例子就实现了这个功能。#include <iostream>#include <string>#include <fstream>#include <opencv2/opencv.hpp>原创 2017-08-29 17:59:41 · 4629 阅读 · 0 评论 -
Kalman滤波——初阶入门
概要 kalman滤波在机器人控制、数字图像等领域应用非常广泛的一种方法,很多人对其名字不能理解,因为kalman滤波在大多数时候表现出来都是将多个数据进行融合,为什么不叫kalman融合呢?如果你有这个疑问,那就说明你对kalman滤波理解不够,任何的数据融合都是为了将多种途径的数据中的噪声滤波,以达到尽可能接近真实值的目的,从这个角度理解,其融合只是表象,滤除了信号中的噪声才是本质。...原创 2018-05-30 23:39:06 · 11233 阅读 · 9 评论