- 博客(54)
- 资源 (2)
- 收藏
- 关注
原创 矩阵、变换和空间的关系
https://blog.csdn.net/my_lord_/article/details/90611911https://www.zhihu.com/question/263660493
2020-07-13 19:57:45 2598 1
原创 求取vector中前n个最大值 c++
求取vector中前n个最大值如果只是需要取出数组中一些最大或最小的元素,可以利用nth_element函数快速定位第k个元素,该函数也支持直接写比较函数,对其他元素并没有排序, 将第n元素放到它该放的位置上,左边元素都大于等于它,右边元素都小于等于它。nth_element的空间复杂度为O(1),在数据量大的时候时间复杂度为O(n),数据少的情况最坏为O(n^2),因为函数原理是随机访问,......
2019-12-17 16:37:55 5635 1
原创 【C++】undefined reference to找不到符号问题--可能原因之catkin_make
undefined reference to编译错误解决
2024-08-29 09:57:38 153
原创 警告当当成错误 may be used uninitialized in this function [-Werror=maybe-uninitialized]
如果是ubuntu20版本,或者gcc版本太高,可能有些警告会当成错误导致编译出错:error: ‘’ may be used uninitialized in this function [-Werror=maybe-uninitialized]cc1plus: some warnings being treated as errors确认gcc版本gcc -vgcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)...
2022-04-09 10:49:51 10418
原创 catkin_make 编译包无效(没反应)
- catkin_make 编译指定的功能包失效?可能是如下原因:这时需要编译全部功能包,catkin_make -DCATKIN_WHITELIST_PACKAGES=""或者在双引号内加入你需要编译的包catkin_make -DCATKIN_WHITELIST_PACKAGES="package_name1;package_name2"注意不是src下的文件夹名字,而是文件夹下package.xml里面的包的名字,或者CMaklists.txt的项目的名字。不然会找不到,导致不会编译。
2021-11-10 20:20:43 4436
原创 linux下Ubuntu交叉编译boost源码编译
源码下载,选择需要的版本下载压缩包然后解压。https://boostorg.jfrog.io/ui/native/main/release/1.解压后执行脚本./bootstrap.sh2.修改生成的project-config.jam文件修改为如下,注意空格和自己交叉编辑文件目录{ using gcc : : /home/linux-x86/aarch64/toolchain-sunxi-glibc/toolchain/bin/aarch64-openwrt-linux-gnu-gc
2021-09-24 20:34:18 1483
原创 QObject::killTimer: Timers cannot be stopped from another thread
多线程中如果不慎重使用时间相关函数类如cv::waitkey(), QTimer()等,如果没有管理好线程关系,容易导致时间混乱,报错可能是如下。QObject::killTimer: Timers cannot be stopped from another threadQObject::startTimer: Timers cannot be started from another thread解决办法:使用不同的,或者注释掉,或者其他...
2021-09-16 15:11:58 1905
原创 编译 ORB-SLAM2/3的ROS工程造成(You should double-check your ROS_PACKAGE_PATH...)
编译build_ros.sh时候报错如下Traceback (most recent call last):File “/opt/ros/kinetic/share/ros/core/rosbuild/bin/check_same_directories.py”, line 48, in raise ExceptionExceptionCMake Error at /opt/ros/kinetic/share/ros/core/rosbuild/private.cmake:102 (message
2021-07-09 15:26:33 1344 1
原创 ubuntu16下 vscode配置ros和opencv路径
如果发现包含的头文件ros/ros.h提示找不到,即需要配置c_cpp_properties.json文件,方法如下,先安装ros插件,搜索ros,安装第一个即可按住Fn+F1,输入C/C++,选择C/C++编辑配置(JSON),会在左边菜单中产生一个.vscode文件,文件下包含c_cpp_properties.json,单击c_cpp_properties.json文件,或者快捷键ctrl+shift+P: 也可以找到c_cpp_properties.json,初始界面如下
2021-07-01 19:59:57 700
原创 Realsense-Ros安装配置
#已建好工作空间cd catkin_ws/src/git clone https://gitee.com/IntelRealSense/realsense-ros.gitgit clone https://github.com/pal-robotics/ddynamic_reconfigure.gitcd ~/catkin_ws && catkin_make#未建立工作空间mkdir -p ~/catkin_ws/srccatkin_init_workspacecd …ca
2021-06-25 17:25:04 596
原创 ERROR: Rosdep experienced an error: Unable to handle package.xml format version ‘3‘
errrorcatkin_make 命令时候,报错如下:ERROR: Rosdep experienced an error: Unable to handle package.xml format version '3', please update catkin_pkg (e.g. on Ubuntu/Debian use: sudo apt-get update && sudo apt-get install --only-upgrade python-catkin-pkg)尝
2021-06-25 16:46:06 1546 3
原创 rviz 的Fixed Frame No transform from [base_link] to frame [map] [closed]
情况一:可能你的世界坐标系设置不对,Fixed Frame是用于表示“世界”参考系的参考系。通常是“/map”,或“/base_link",修改这看是否正常,情况二:一般是你设置了多终端通信,即你是现在运行的rosmaster不在本地,即你在其他终端运行了roscore,如果是请更改~/.bashrc文件的export ROS_MASTER_URI为本地地址,即sudo vi ~/.bashrcexport ROS_MASTER_URI=http://localhost:11311然后so
2021-06-24 19:55:04 4480 2
原创 Cmake 时候出现 libpthread.so.0: error adding symbols: DSO missing from command line
libpthread.so.0: error adding symbols: DSO missing from command line出现该问题的原因:pthread不是linux下的默认的库,也就是在链接的时候,无法找到phread库中线程函数的入口地址,于是链接会失败。解决方法如下在cmakelist.txt文档中添加下面两行find_package(Threads)target_link_libraries( … ${CMAKE_THREAD_LIBS_INIT})或者用link_li
2021-05-12 12:48:45 2624
原创 线性代数及其应用(英文第四版)下载
PDF原文下载地址:https://anandinstitute.org/pdf/linearapplication.pdf
2021-03-25 16:49:16 1540
原创 IMU陀螺仪和加速度计的时间同步理解
IMU陀螺仪和加速度计时的间同步目前大多数基于VI的SLAM算法如ROVIO、MSCKF、OKVIS、VINS-MONO等融合IMU数据都假设陀螺仪和加速度计以固定速率“同步”(或LERED),这只是使整体数学和簿记更简单。此外,上述大多数(如果不是全部)最先进的算法都假设imu相机延迟随时间变化是恒定的。即使是最流行的机器人相机imu校准工具箱Kalibr也认为。它不希望在状态向量中估计一个可变的时延,这只会增加算法的复杂度。“复制”方法为每个传入的陀螺仪或加速度信息创建一个统一的消息。因.
2020-10-29 14:27:52 2755
原创 Linux(Ubuntu 16.04)中安装OpenCV + OpenCV_Contrib (国内快速下载安装)
首先,准备一下开发环境:Ubuntu 16.04 64位cmakeantjdkgitpython选择一个存放安装文件的目录打开终端, 接下来,从gitee中down下OPenCV + OpenCV_Contrib库(建议使用国内托管库gitee下载):git clone https://gitee.com/mirrors/opencv_contrib.gitcd opencvgit clone https://gitee.com/mirrors/opencv_contrib.git
2020-10-19 18:41:14 1842
原创 opencv保存视频VideoWriter类及参数
OpenCV只支持保存.avi格式的视频,而且不能添加音频。VideoWriter(const string& filename, int fourcc, double fps,Size frameSize, bool isColor=true);参数说明:1、filename 保存输出视屏文件名;2、fourcc 四个字符用来表示压缩帧的codec,最常用的是CV_FOURCC(‘M’,‘J’,‘P’,‘G’) = motion-jpeg codec;3、fps保存视屏文件帧率;4
2020-09-23 15:30:16 1826
原创 ORB_SLAM3源码压缩包国内下载及编译
下载 ORB_SLAM3是一个能够使用单目,立体,RGB-D相机,兼容针孔以及鱼眼相机模型进行视觉、视觉+惯导和多地图的SLAM方案。基于ORB-SLAM和ORBSLAM Visual-Inertial构建,支持抑制轨迹精度发散的短期,中期和长期的数据关联。ORB-SLAM3在次基础上,更进一步,支持历史地图的复用。从而,真正达到一个全局的slam系统:建立一个地图实现精确的定位。 下载链接包含的内容为2020年7月中旬开源的官方源码,压缩包大小约为515M,解压后为802M,给翻墙不方便
2020-09-21 16:41:55 1612
原创 基于种子点的区域生长的灰度图像分割-pyhton实现
基于种子点区域生长的图像分割。本代码实现了灰度图像的区域增长算法。算法通过点击图像中的一个点作为输入,对像素的8连通域进行相对像素值强度差计算,并返回分割结果。from PIL import Imagefrom pylab import *def region_growth(): print("循环增长,直到len(region_points) = 0") count = 0 x = [-1, 0, 1, -1, 1, -1, 0, 1] y = [-1, -.
2020-08-27 14:20:50 1701
原创 对文本文件读取和写入操作C++实现
读取txt文件读取一个TXT文件中的每一行到一个向量中,代码如下bool readTxtfile(string strPath, vector<vector<float>>& TxtData){ ifstream txtfile(strPath); if (!txtfile.is_open()) return 0; string str; while (getline(txtfile, str)) { istringstream input(str);
2020-08-17 14:35:36 2934
原创 ORB-SLAM3论文翻译
引言 当视觉帧跟踪丢失以后,orbslam3会重新记录一个新的地图,如果再次进入之前的地图区域,会与之前的地图合并。相关工作系统概览相机模型 以往的ORB-SLAM算法假定为针孔像机模型,现在希望通过提取与摄像机模型相关的所有属性和投影函数来解耦相机模型和slam算法,从而使得系统可以使用任何摄像机模型。 在ORB-SLAM3中,除了针孔模型外,还提供了鱼眼模型。重定位 ORB-SLAM通过设置基于EPNP算法的透视n点求解器来解决重新定位问题,本文采用最大似然的PNP算
2020-08-06 09:56:48 5412
原创 TOF测距和MSME激光雷达
测距方式三角测距法 三角法的优点是原理简单、成本低廉,只需要普通的激光发射器和线阵 CCD 探测器即可实现测距。在近距离下探测精度较高,比如在双目视觉、结构光测距上使用。缺点是在远距离探测时,探测误差会呈几何量级增长导致探测效果较差。另外,在阳光直射的情况下,反射光斑通常会淹没在太阳光中也会导致失效,PTOF测距法 由于光的飞行速度极快,因此需要一个非常精细的时钟电路(要求皮秒(ps)级),以及脉宽极窄的激光发射电路(要求是 ns 级),因此开发难度和门槛较高,但能达到百米级别
2020-06-18 09:39:23 3436
原创 异常点剔除使用Ransac算法C++实现
简介使用ransac算法可以很好的处理异常:包括一维数据剔除异常值,二维数据点剔除离群点拟合出一条直线,三维空间点剔除异常点拟合出一个平面,下面介绍通过Ransac算法拟合直线将一维数据进行划分为2类,实现点拟合和异常值剔除功能,并且可视化到图像上。步骤随机选择两点由这两个点确定一条线LLL;根据阈值ddd确定与直线LLL的几何距离小于阈值的数据点集S(L)S(L)S(L),并称它为直线LLL的一致点集,若点数不足则重新进行步骤1;重复若干次随机选择两点,得到直线L1,L2,L3…,LnL1,
2020-06-12 17:29:23 7534 1
原创 图片相相似度计算(Hash、SSIM、compareHist)
感知哈希算法(Perceptual hash algorithm)那这种技术的原理是什么呢?根据Neal Krawetz博士的解释,原理非常简单易懂。我们可以用一个快速算法,就达到基本的效果。这里的关键技术叫做感知哈希算法(Perceptual hash algorithm),它的作用是对每张图片生成一个"指纹"(fingerprint)字符串,然后比较不同图片的指纹。结果越接近,就说明图片越相似。下面是一个最简单的实现:第一步,缩小尺寸。将图片缩小到8x8的尺寸,总共64个像素。这一步的作用是去除图片
2020-05-27 14:08:31 10042
原创 conda环境管理以及和pip关系
conda如果你需要的包要求不同版本的Python,你无需切换到不同的环境,因为conda同样是一个环境管理器。仅需要几条命令,你可以创建一个完全独立的环境来运行不同的Python版本,同时继续在你常规的环境中使用你常用的Python版本。pippip(Pip install Packages)只适用于Python语言。Python 2.7.9及后续版本:默认安装命令为pipPython 3.4及后续版本:默认安装命令为pip3关系pip允许在任何环境中安装python包,而conda允许
2020-05-25 20:20:11 2746
原创 图像格式分类
按图片的质量是否损失:有损压缩指在压缩文件大小的过程中,损失了一部分图片的信息,也即降低了图片的质量,并且这种损失是不可逆的,我们不可能从有一个有损压缩过的图片中恢复出全来的图片。常见的有损压缩手段,是按照一定的算法将临近的像素点进行合并。无损压缩只在压缩文件大小的过程中,图片的质量没有任何损耗。我们任何时候都可以从无损压缩过的图片中恢复出原来的信息。按计算机在表示颜色索引色而颜色索引模式中,数据代表的是一个索引,要得到真正的颜色,还必须去查索引表。RGBA颜色(直接色)RGB
2020-05-17 16:43:43 600
原创 数据容器--列表,字典,集合,元组
Python中主要有4个存储数据的容器分别是1,列表–list[]python中的列表用中括号[]定义,数组是一种特殊的列表,数组只能装数字,而列表可以用来装不同的数据元素。如下是一些基本操作>>>list1 = [12] >>>list * 3 # 重复操作符*可以用于列表中[12,12,12]>...
2020-05-17 16:31:19 420
原创 Makefile找不到动态库 Makefile lib.so: cannot open shared object file: No such file or directory
转载自http://www.manongjc.com/article/34590.html如果动态库不在同一级目录下,则需要将以上文件的目录加载到动态库搜索路径中,设置的方式有以下几种:一. 将动态库路径加入到LD_LIBRARY_PATH环境变量1.在终端输入:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/XXX:/XXX/XXX.so 只...
2020-04-24 11:04:56 2317
原创 相机内参标定和畸变校正以及张氏标定法
世界坐标系是一个假想的坐标系,用作一般参考,可根据需要自由定义。在我们的双目相对位姿测量系统中,世界坐标系一般定义与左相机的摄像机坐标系重合,这样的话左相机的R为单位矩阵,T为零向量双目视觉中一般将世界坐标系原点定在左相机或者右相机或者二者X轴方向的中点相机标定对于N张无畸变的图像来说,共有4个内参+6N个外参来标定,每张棋盘图上有4个有效的角点,可以提供8个约束,则需要8N>=4+...
2020-04-21 11:44:33 3158
原创 理解雅可比矩阵和海森矩阵
目录对二维度图像来说海森矩阵表达对二维度图像来说二阶导数表示的导数的变化规律,如果函数是一条曲线,且曲线存在二阶导数,那么二阶导数表示的是曲线的曲率,曲率越大,曲线越是弯曲。以此类推,多维空间中的一个点的二阶导数就表示该点梯度下降的快慢。以二维图像为例,一阶导数是图像灰度变化即灰度梯度,二阶导数就是灰度梯度变化程度。在二维图像中,海森矩阵是二维正定矩阵,有两个特征值和对应的两个特征向量。两个...
2020-04-05 12:31:22 5496
原创 相似性度量的方法分类
相似性度量的方法分类一、变换域:DTW、ERP都是不设置阈值,直接计算其欧氏距离。EDR、LCSS都是设置一个绝对阈值,满足阈值变成0或者1。CATS:设置一个阈值,不满足阈值取0,满足阈值缩放到[0,1]区间中。Frechet:不设置阈值,直接计算其欧氏距离。Hausdorff:根据两条线段计算三种距离并加权取和。二、处理不匹配点的方式DTW、Frechet:重复使用某些点ER...
2020-03-27 14:25:43 2768 1
原创 Ubuntu 安装opencv及opencv_contrib模块
安装opencv与opencv_contrib模块版本可不需要一致$ cd opencv-3.1.0 # 进入解压后的opencv-3.1.0文件夹$ mkdir build # 创建build文件夹$ cd build # 进入build文件夹$ cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTA...
2020-03-16 14:52:09 1485 2
原创 虚拟机调用摄像头设备显示 select timeout
1,可能是虚拟机兼容性问题,编辑Vmware虚拟机的硬件设备,选者usb3.0或者usb2.0即可2,可能是摄像头分辨率相关的问题注释设置分辨率相关代码即可
2020-03-05 17:03:03 1588 1
原创 OpenCV 彩色图像的直方图均衡化(YCbCr)
OpenCV代码,用于彩色图像的直方图均衡化在YCbCr颜色空间。#include<iostream>#include "opencv2/imgcodecs.hpp"#include<opencv2/highgui/highgui.hpp>#include<opencv2/imgproc/imgproc.hpp>using namespace std...
2020-01-03 16:50:52 1206
原创 几种学习率衰减策略
学习率调整学习率是神经网络优化时的重要超参数。在梯度下降方法中,学习率α的取值非常关键,如果过大就不会收敛,如果过小则收敛速度太慢。常用的学习率调整方法包括学习率衰减率、学习率预热、周期学习率以及一些自适应地调整学习率的方法,比如AdaGrad、RMSprop、AdaDelta等。自适应学习率方法可以针对每个参数设置不同的学习率。周期性学习率调整为了使得梯度下降方法能够逃离局部最小值或鞍点,...
2019-12-04 14:19:36 5816
boostdesc_bgm.i.zip
2020-10-20
基于小波变换的数字水印算法研究
2016-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人