机器视觉
文章平均质量分 69
cocoaqin
这个作者很懒,什么都没留下…
展开
-
kinect深度图与彩图匹配
kinect深度图与彩图匹配理论部分参数说明p_rgb,p_ir分别为彩图、深度图的像素坐标P_rgb,P_ir分别为彩色摄像头、深度摄像头对应的相机坐标系下的三维点坐标矩阵P=[X,Y,Z]’X_rgb,Y_rgb,Z_rgb表示彩色摄像头下三维点坐标值,以此类推深度摄像头K_rgb,K_ir分别为彩图、深度图的内参矩阵R_rgb,T_rgb为彩图的外参矩阵,同理可以得到深度图的外参矩阵原创 2017-08-20 13:29:47 · 8310 阅读 · 5 评论 -
ubuntu16.04安装opencv3.4.1教程
最近opencv3.4.1发布了,想换个新的试试鲜,于是把配置的过程通过博文的方式记录下来,方便查阅。 本教程原为3.3.0,但经过博主亲测,3.4.0、3.4.1皆适用1.去官网下载opencv,在本教程中选用的时opencv3.4.1,其他版本的配置方法异曲同工。 下载链接http://opencv.org/releases.html,选择sources版本 2.解压下...原创 2017-10-05 22:11:49 · 146105 阅读 · 141 评论 -
solvepnp三维位姿估算
一、前言关于PNP问题就是指通过世界中的N个特征点与图像成像中的N个像点,计算出其投影关系,从而获得相机或物体位姿的问题。opencv提供的solvepnp函数就是用来解决pnp问题。利用该函数可以实现测算相机/物体的空间姿态,也可以用来空间定位。二、solvepnp函数解析solvepnp函数原型bool solvePnP(InputArray原创 2017-08-22 20:17:20 · 26843 阅读 · 10 评论 -
PnP 单目相机位姿估计(一):初识PnP问题
简介理解更多IDE:visual studio 2013 使用库:Eigen opencv2.4.9 文档版本:1.0简介 PnP问题是求解3D-2D点对运动的方法。他描述了当知道n个三维空间点坐标及其二维投影位置时,如何估计相机的位姿。我们可以想象,在一幅图像中,最少只要知道三个点的空间坐标即3D坐标,就可以用于估计相机的运动以及相机的姿态。 而特征点的空间坐标原创 2017-09-04 20:06:53 · 49066 阅读 · 6 评论 -
PnP 单目相机位姿估计(二):solvePnP利用二维码求解相机世界坐标
前言原理简介输入参数准备1 objectPoints特征点世界坐标2 imagePoints特征点在摄像头下的像素点坐标3cameraMatrixdistCoeffs内参矩阵和畸变矩阵相机世界坐标的求解1求世界坐标中的点在相机坐标系下的坐标2求相机在世界坐标中的坐标3效果求解相机在世界坐标系下的坐标点4求解代码1.前言 很多时候,当我们利用单目相机获取图像时,往往只能获取图像中原创 2017-09-05 10:40:15 · 52478 阅读 · 49 评论 -
PnP 单目相机位姿估计(三):二维码角点检测
解PnP问题时,用二维码的好处二维码由黑白两色组成,容易通过对图像阈值处理而发现二维码具有方向性(只要设计的不为中心对称),可以更好的辅助求解位姿二维码具有可识别性,即可解析二维码内部黑白块的排列顺序,从而确定该二维码是否为我们所要用的二维码二维码识别的流程 该流程以该二维码为例阈值处理,二值化操作去掉二维码周围一圈,即保存为5*5的信息计算5*5图像内的海明距离,和程序所设定要查找原创 2017-09-07 09:36:26 · 15296 阅读 · 10 评论 -
cmake编译opencv报错
错误 CMakeFiles/opencv_example.dir/example.cpp.o:在函数‘main’中: example.cpp:(.text+0x12c):对‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定义的引用 example.cpp:(.text+0x21d):对‘cv::imshow(cv::String原创 2017-10-25 20:50:05 · 11697 阅读 · 3 评论 -
Leap Motion C++ 开发笔记(二) 打开摄像头
代码部分主要使用了SDK中的frame.images()获取图像遗憾的是,获取的图像仅为8位摘自官方文档的说明: If a 32-bit-per-component texture format is not available on your target platform, you can use a separate texture for the x and y lookup value原创 2017-09-02 20:29:04 · 1899 阅读 · 0 评论 -
ubuntu16.04下opencv3.3 GPU(CUDA)加速
虽然网上已经有一部分在ubuntu下配置opencv gpu加速的教程,但是随着opencv迭代到3.3.0,发现之前的教程或多或少都已经不管用了,也存在许多坑,这次配置的时基于最新的opencv3.3.0,写下这篇博文记录下配置的经过。1.准备1.安装好ubuntu16.04 2.安装配置好opencv3.3.0 配置教程 3.安装好cuda8.0 4.安装QT creator(可选)2原创 2017-10-28 15:40:19 · 13350 阅读 · 7 评论 -
Leap Motion C++开发笔记(一)下载安装及环境配置
leap motion的开发笔记。下载安装下载地址,该安装包无法自定义安装,默认路径为系统盘\Program Files (x86)点击exe安装完成之后,可以看到右下角状态栏里出现leap motion的小图标,绿色表示连接成功tip如果出现绿色闪烁,可尝试着右键-观察器,查看有无图像生成。安装完成之后,也可以尝试原创 2017-09-02 10:36:34 · 2392 阅读 · 2 评论 -
解决虚拟机下Ubuntu cheese黑屏问题
出现问题的情况: 1.在linux下可以打开摄像头,但是程序运行一小会儿,程序就卡死 2.在windows可以正常使用,而在虚拟机下的ubuntu不能打开/打开经常卡死 3.cheese黑屏,但是系统可以检测到摄像头 4.程序提示select time out,超时等提醒 注意,这些错误不一定是一开始就会发生,即也有可能是在你已经使用一段时间后发生,具体原因不明(虚拟机设置重置了?)环原创 2017-09-05 19:39:32 · 7519 阅读 · 6 评论 -
Leap Motion C++开发笔记(三)获取深度值及距离估算
一、写在前面 由于Leap Motion只能获取8U的图像,所以无法取得到像Kinect那样精度较高的深度值。 Leap Motion SDK中之所以能做到如此高精度的空间定位,是通过其两个红外摄像头的双目定位来实现的,也敬请期待未来推出的双目的学习笔记~ 由于只能获得8位深度图,故通过该深度信息获得的距离有较大偏差,仅可用来粗略的定位 二、代码部分IDE:visual st原创 2017-09-04 10:16:18 · 3466 阅读 · 4 评论 -
获取深度图任意指定点的深度值
在立体视觉开发的时候,我们常常需要观察摄像头所获取图像的深度值规律,以便进一步提取特征 而在我们提取深度值的时候,往往更希望能够快速准确的获取指定点的深度值本程序基于Kinect2所获取的深度图,其余深度相机获取的深度图可通用程序原理通过设置一个onmouse时间,当触发点击事件后,可以获取到点击点所在图像的长宽位置,再根据该位置提取深度值程序#in...原创 2018-03-26 09:16:44 · 14926 阅读 · 7 评论