- 博客(61)
- 收藏
- 关注
原创 视觉理论学习(RANSAC与重建算法)
KinectFusionkinectfusion3D重建基本算法https://blog.csdn.net/xiaohu50/article/details/51592503https://blog.csdn.net/viewcode/article/details/8426846TSDF截断符号距离场(truncatedsigned distance function)表达三维场景,算...
2019-03-15 20:49:45
1217
1
原创 彩色直方图均衡*OpenCV*Qt
代码参考自《OpenCV图像处理编程实例》main.cpp#include <QCoreApplication>#include<opencv2/opencv.hpp> #include <iostream>using namespace cv; //下面的所有cv相关类型不用加上前缀了using namespace std;int ma
2019-03-14 16:51:22
931
原创 灰度变换_增强图像暗部细节(直方图均衡化,对数变换,Gamma变换)
直方图均衡化定义直方图均衡化(Histogram Equalization) 又称直方图平坦化,实质上是对图像进行非线性拉伸,重新分配图像象元值,使一定灰度范围内象元值的数量大致相等。作用增强图像的细节部分原理直方图均衡化就是对图像进行非线性拉伸,使得变换后的图像直方图分布均匀。图像的灰度分布集中在较窄的范围内,这就导致了图像的细节不够清晰。为什么不清晰呢,因为灰度分布较窄时,那么,...
2019-03-14 15:44:27
7540
原创 KinectV2保存图片序列(B键开始,E键结束保存)
实现功能KinectV2保存图片序列, 仅仅控制开始结束, 例如, 按键B(Begin)开始保存, 按键E(End)结束保存. 保存路径为当前工作路径,在此为~/catkin_ws/写在前面首先,简单理解运行Kinect2显示图像时的代码rosrun kinect2_viewer kinect2_viewer意义为,运行kinect2_viewer包中的kinect2_viewer节点...
2019-03-12 07:56:31
2175
1
原创 运行RGBD SLAM V2(KinectV2+ROS Indigo+Ubuntu14.04)
实时场景前期工作参考:https://www.cnblogs.com/yuanlibin/p/8549416.html1.相关软件和库(例如:ROS、PCL、OpenCV、G2O)的安装以及catkin工作空间的创建:参考上边链接教程的第1~5步2.RGBD SLAM V2编译安装:参考上边链接教程的第6步3.配置实时V2的运行文件:#终端1cd ~/rgbdslam_catkin_...
2019-02-26 09:36:59
868
原创 BUG(跑SLAM14-ch12)
error1: no matching function for call to ‘cv::ORB::create()’Ptr< Feature2D > detector = ORB::create();^// Ptr< Feature2D > detector = ORB::create();此为原代码 Ptr<Feature2D&a
2019-02-24 21:17:55
743
转载 解决Ubuntu双显示器屏幕边缘鼠标粘滞问题
笔记本在ubuntu下使用了扩展屏幕,使得两个显示屏可以协同工作,比一个屏幕工作起来方便多啦,一个可以写文章,一个可以当参考,可以边看别写,十分惬意。但是有一个问题,**每次鼠标在两个屏幕直接移动的时候,总是被屏幕边缘粘住,不让移到另一个屏幕上,除非以很快的速度移动才能把鼠标从一个屏幕移动到另一个屏幕上。**这个问题困扰了我很久,今天才发现原来解决起来非常简单,现在记录一下。在桌面点击屏幕右上角...
2019-02-23 15:08:43
4793
原创 BUG(跑slam14-ch6-g2o)
安装g2o依赖项:sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.2 libcholmod-dev//根据14讲书,注:最后一个依赖项需要table键来填充名称https://www.cnblogs.com/ChrisCoder/p/7222430.ht...
2019-02-23 09:39:19
284
转载 Ubuntu死机时重启
使用“魔法键”:Alt+SysRq + r,e,i,s,u,b(确实很好背,就是单词 busier (英语"更忙"的意思)的倒写)。具体做法应该是:伸出你的左手,同时按住+键,别松开右手先按一下,左手别松开,等1秒右手按一下R,左手别松开,等1秒右手按一下 E,左手别松开。右手按一下 E,左手别松开。// 这时包括桌面在内,所有程序都会终止,你会看到一个黑乎乎的屏幕,...
2019-01-23 22:05:21
2300
原创 g2o_viewer 运行 Segmentation fault
在运行g2o_viewer ***.g2o时,报错Segmentation fault (core dumped)写在前面当时搜索到了两种解决方案,方案一比较主流,我的Qt版本是5.2.1之前装系统时也有了Qt 4所以感觉方案一应该是正解就先使用了方案一;之后在解决问题的途径中又发现自己也符合方案二中的问题,且方案一走完后依旧报错,所以又使用了方案二,这样之后,问题解决,g2o_viewer...
2019-01-23 20:35:41
1262
原创 error: undefined reference to ***
一般原因1. 没有指定对应的库(.o/.a/.so)使用了库中定义的实体,但没有指定库(-lXXX)或者没有指定库路径(-LYYY),会导致该错误。Linux下文件的类型是不依赖于其后缀名的,但一般来讲:.o,是目标文件,相当于windows中的.obj文件.so 为共享库,是shared object,用于动态连接的,和dll差不多.a为静态库,是好多个.o合在一起,用于静态连接2...
2019-01-22 10:04:37
7078
原创 error: 'XXXX' was not declared in this scope
# 对于变量和函数,如果未定义都会出现这个错误。一般有如下几种可能:1.忘记定义写代码的时候疏忽了,导致一些变量直接使用但没有定义。只要对应定义相应的函数或变量即可。2.拼写错误写代码的时候,敲错了字符,比如sum敲成了Sum, average敲成averge等。对应修改即可。3.作用域不正确在超出变量和函数的作用域部分使用了该变量或函数。需要通过定义位置,或增加声明的手段,加大变量...
2019-01-22 09:59:19
194375
8
原创 “一起做RGB_D SLAM”学习笔记(67)
---------原作笔记,感谢高博https://www.cnblogs.com/gaoxiang12/tag/一起做RGB-D SLAM/part6 VS part5slamBase部分:基本相同,除了part6的slamBase.h中FRAME帧结构中添加一句int frameID;*.cpp:part5实际上已经基于匹配和计算距离做了初步的位姿优化,part6主要的部分只是添加了g...
2019-01-21 21:53:43
528
1
原创 将PCD文件转化为PLY格式输出(QT+PCL)
环境ubuntu 14.04Qt 5.2.1PCL 1.7剩下的话不多说,直接放代码pcd2ply.proQT += coreQT -= guiTARGET = pcd2plyCONFIG += consoleCONFIG -= app_bundleTEMPLATE = appSOURCES += main.cppINCLUDE...
2019-01-19 17:28:48
2260
原创 MeshLab学习笔记
写在前面这两天老师提了一个需求,让测量点云图上两点间的距离,因为学习不深入,本来以为会特别复杂,不过一步一步竟然很快给试出来了,超开心的~大体思路:pcd–>ply–>用MeshLab打开,测量备注:*.pcd格式:点云数据格式*.ply格式:Stanford大学开发的一套三维mesh模型数据格式,该格式主要用以储存立体扫描结果的三维数值,透过多边形片面的集合描述三维物体。...
2019-01-19 17:12:44
10568
1
原创 对g2o的理解和学习(基于slamEng.cpp)
https://www.cnblogs.com/gaoxiang12/p/5244828.html最后总结一下做图优化的流程。1.选择你想要的图里的节点与边的类型,确定它们的参数化形式;2.往图里加入实际的节点和边;3.选择初值,开始迭代;4.每一步迭代中,计算对应于当前估计值的雅可比矩阵和海塞矩阵;5求解稀疏线性方程HkΔx=−bk,得到梯度方向;6.继续用GN或LM进行迭代。如果...
2019-01-15 22:11:33
1977
转载 census变换理解
算法原理Census变换是使用像素邻域内的局部灰度差异将像素灰度转换为比特串,思路非常简单,通过将邻域窗口(窗口大小为n×m,n和m都为奇数)内的像素灰度值与窗口中心像素的灰度值进行比较,将比较得到的布尔值映射到一个比特串中,最后用比特串的值作为中心像素的Census变换值Cs,如下图所示:具体而言,对于欲求取视差的左右视图,要比较两个视图中两点的相似度,可将此两点的census值逐位进行异...
2019-01-12 10:31:47
5078
转载 Bundle Adjustment--即最小化重投影误差(高翔slam第七讲)
https://www.cnblogs.com/Jessica-jie/p/7739775.html
2019-01-08 00:37:22
4133
原创 KinectV2启动操作
采集Kinect2的图像cd ~/catkin_ws/*确认配置环境source devel/setup.bash //如果在用户配置文件中gedit ~/.bashrc中改变了其内容,则运行前需要再运行该句配置一遍,否则执行下句时会出现BUG运行roslaunchroslaunch kinect2_bridge kinect2_bridge.launch打开一个新终端,显示图像ro...
2018-12-24 20:29:46
1230
原创 标定_基本知识储备
一些常识为什么坐标变换的顺序必须是: 缩放->旋转->平移?缩放变换不改变坐标轴的走向,也不改变原点的位置,所以两个坐标系仍然重合。旋转变换改变坐标轴的走向,但不改变原点的位置,所以两个坐标系坐标轴不再处于相同走向。平移变换不改变坐标轴走向,但改变原点位置,两个坐标系原点不再重合。参考:https://blog.csdn.net/zsq306650083/article/de...
2018-12-24 20:27:16
359
原创 KinectV2的一些参数
1.硬件组成&参数彩色摄像机:19201080;30 or 15 FPS;多种图像格式可选(例如:RGBA–.png;YUV–MPEG压缩)2.红外投影机:主动投射近红外光谱,生成可被红外摄像机读取的激光散斑;512424;30 FPS;每像素16bit3.深度(红外)摄像机:测量范围:0.5 ~ 4.5 m;每像素16bit(该数据表示从深度摄像机到该物体的距离,单位:mm)*...
2018-12-24 11:44:38
5220
原创 KinectV2标定
KinectV2的一些参数1.硬件组成&参数彩色摄像机:19201080;30 or 15 FPS;多种图像格式可选(例如:RGBA–.png;YUV–MPEG压缩)2.红外投影机:主动投射近红外光谱,生成可被红外摄像机读取的激光散斑;512424;30 FPS;每像素16bit3.深度(红外)摄像机:测量范围:0.5 ~ 4.5 m;每像素16bit(该数据表示从深度摄像机到该...
2018-12-24 11:43:29
8648
15
原创 相机&图像_基本知识储备
相机相关帧率:30FPS,「每秒顯示帧数」Frame per Second分辨率:图像分辨率则是单位英寸中所包含的像素点数-单位:dpi(点每英寸)、**lpi(线每英寸)**和ppi(像素每英寸)。但只有lpi是描述光学分辨率的尺度的Quarter High Definition=qHD 960x540High Definition=HD 1280x720Full High Def...
2018-12-24 09:16:32
576
转载 CmakeLists.txt书写规范
文章目录开头部分-指定输出路径中间部分-指定工程依赖结尾部分-指定输出文件 CMakeLists.txt链接库文件的方式区分link_directories, link_libraries , target_link_librariesCMakeLists.txt文件链接有两种方式转自:https://blog.csdn.net/CSDNhuaong/article/details/...
2018-12-21 09:31:44
725
原创 KDevelop使用经验
KDevelop中不显示行号:1.上方菜单栏“编辑器”->查看->Show Line Numbers2.设置->配置编辑器->Appearance->borders->Show Line NumbersKdevelop多行注释快捷键注释:按Ctrl + d取消:CTRL + SHIFT + d...
2018-12-20 08:44:33
2127
1
原创 使用vim编辑器
vim [filename] //按i进入插入编辑模式,Esc键退出编辑模式:w //保存:wq或:x //保存并退出编辑器: w ! sudo tee % //当编辑的文件在根目录下时//tee 用于读取输入文件,同时保存;%表示当前编辑文件)//或直接在进入编辑模式前vim前面加sudo,则可以按正常方式保存,不存在此问题...
2018-12-20 08:30:50
159
原创 Linux终端使用技巧(图像文件)
批量重命名有一批名称格式相同文件需要重命名成另一种格式,使用:rename “s/<文件名中原字符>/<想要替换成的字符>/” <通配文件名规则>// 例如:将“image_0_small.png”批量修改为“image_0_large.png”rename &
2018-12-20 08:12:42
543
原创 BUG(跑slam14-ch7-2d3d时)
Q1:pose_estimation_3d2d.cpp:165:46:error: no matching function for call to‘g2o::BlockSolver<g2o::BlockSolverTraits<6,3>>::BlockSolver(g2o::BlockSolver<g2o::BlockSolverTraits<6, 3&
2018-12-11 12:30:50
628
原创 CMakeLists.txt编写参考
声明要求的 cmake 最低版本cmake_minimum_required( VERSION 2.8 )声明一个 cmake 工程,括号中为名称project( HelloSLAM )设置编译模式,Release较快;Debug可进行断点调试set( CMAKE_BUILD_TYPE “Debug” )设置C++11标准set( CMAKE_CXX_FLAGS “-O3” )/...
2018-12-10 09:54:15
234
原创 软件版本总结
Ubuntu 14.04查看软件安装ubuntu中使用sudo apt-get install 安装之后的软件,怎么看安装在哪里1)dpkg -L softwarename2)apt-file list softwarename查看软件版本:aptitude show xxx举个例子cmake –versionqmake -version//查看QT版本,或qmake -vpk...
2018-12-10 09:06:40
467
原创 看懂Github并获取资源
如何搜索资源关键词之间用<空格>隔开GitHub的高级搜索功能:https://github.com/search/advanced看懂Github:watch->Watching:表示你以后会关注这个项目的所有动态,这个项目以后只要发生变动,如被别人提交了 pullrequest、被别人发起了issue等等情况,你都会在自己的个人通知中心,收到一
2018-12-07 10:47:04
1148
原创 Qt使LineEdit获得手动输入的内容_setValidator()
在主函数MainWindow::MainWindow(QWidget *parent)中//使 LineEdit 获得手动输入的内容,setValidator()在lineEdit有,textEdit无//只有QDoubleValidator和QIntValidator两种形式ui->lineEdit_self->setValidator(new QDoubleValidator...
2018-12-06 22:31:00
7839
原创 Mat转化为数组_arg()
cv::Mat类型不能直接当数组用,需要经过一步转化,如下://Mat转化为数组double* row1 = rvec.ptr<double>(0);//获取第一行首地址,其中ptr为Mat自带的指针,rvec为Mat型double R[3] = { 0 };for(int i=0;i<3;i++){R[i]=row1[i];//第一行的第i个数赋给R[i]}//...
2018-12-06 13:37:09
2152
原创 Qt控件_QTextEdit
setText()中只能填写QString类型//函数头应首先包括#include &lt;QString&gt;//转换为字符串形式在QTextEdit中显示,通过arg()函数QString str_match;str_match= QString("%1").arg(matches.size());ui-&gt;match_ORB-&gt;setText( str_match
2018-12-06 11:01:27
5203
转载 Qt快捷键
转载:https://blog.csdn.net/imxiangzi/article/details/48863855F1查看帮助F2 跳转到函数定义(和Ctrl+鼠标左键一样的效果)Shift+F2 声明和定义之间切换F4头文件和源文件之间切换Ctrl+I自动对齐Ctrl+/注释行,取消注释行Ctrl+B编译工程Ctrl+R运行工程F5开始调试Shift+F5停止调试F9设...
2018-12-06 10:42:29
402
原创 OpenCV*Qt显示输出图片_QLable
cv::Mat格式要留心,通常需要转化才能用反思:对于要完成的某一事件的一段代码,先单独运行,搞清楚那段代码能得到什么结果,再去整合,这样更能够抓住核心问题少出bug参考:https://blog.csdn.net/qq_27901091/article/details/75171378//加载两幅图片void MainWindow::on_download_clicked(){ ...
2018-12-06 10:38:33
852
原创 C++*Qt给程序执行计时_clock()
//在声明中加入计时器#include &amp;amp;lt;ctime&amp;amp;gt;//设定时间节点clock_t time_kp = clock(); //clock_t和clock()均来自#include &amp;amp;lt;ctime&amp;amp;gt;//计算form前面的时间节点to当前时间的间隔cout &amp;amp;lt;&amp;am
2018-12-06 10:09:09
4747
原创 Qt中将输出内容保存到文本_QFile
将textEdit中的内容输入到build文件夹下的&quot;test.txt&quot;文档void MainWindow::on_btn_save_clicked(){ QFile myfile(&quot;test.txt&quot;);//创建一个输出文件的文档 if (myfile.open(QFile::WriteOnly|QFile::Truncate))//注意WriteOnly是往文本中写入的时
2018-12-06 10:00:45
18022
1
原创 Gamma校正*OpenCV*Qt
实现功能通过指定Gamma值来校正图像的亮度偏差,应用于拓展暗调部分的细节.该控制台程序尝试了了Gamma=2.2和Gamma=0.4两种情况,程序及输出结果如下参考:https://blog.csdn.net/lxy201700/article/details/24929013test_gamma.proQT += coreQT -= guiTARGET...
2018-12-06 08:48:27
1428
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人