- 博客(63)
- 资源 (12)
- 问答 (2)
- 收藏
- 关注
原创 CMake中的一些概念
在计算target的链接依赖的时候,每个依赖的名字要么是target,要么是磁盘上的文件名。在使用双冒号"::"之前,如果target没有找到匹配的名字,这个名字被认为是指向磁盘上的一个文件,这会导致出现令人迷惑的message(如果是target的name出现了书写错误的话)。就旧版本CMake中,会搜索target,然后是磁盘中的文件甚至搜索包含双冒号的项。CMake2.18.2及更低版本中,允许在target_link_libraries()命令中使用含双冒号的target或者文件。
2023-04-18 17:18:02
875
原创 CMake命令笔记
比如要在代码中有进行宏判断的地方你需要通过宏执行响应代码那么在CMakelists中就要使用add_definitions命令,这和在代码中使用是一样的效果如果要添加多个宏,在这个命令中用空格隔开。
2023-04-18 16:50:10
639
原创 [cmake命令笔记]CMake添加C++预定义宏add_definitions
那么在CMakelists中就要使用add_definitions命令,这和在代码中使用。如果要添加多个宏,在这个命令中用空格隔开。比如要在代码中有进行宏判断的地方。你需要通过宏执行响应代码。
2023-04-16 23:43:50
1451
原创 图像的4邻接、8邻接和m邻接
m邻接:如果两个像素4邻接,或者只存在斜对角邻接(注意虽然有4邻域的共同像素,但这些像素值不存在于V集合中)。这三种类型的邻接不是互斥的。
2023-04-14 10:49:07
335
原创 为什么基础矩阵F的自由度是7
首先,对极几何中,基础矩阵的维度是3×3,也就是有9个元素。基础矩阵是一种射影变换矩阵,将一个齐次坐标变换到另一个齐次坐标。式子的左边,a和a’都是齐次坐标,因此是等价的,式子的右边hb和h’b’表达的意义也是等价的,即使是h’b,得出的齐次坐标也是同一个点。因此,射影变换h只有8个自由度,其中的。,由于受到这个式子的约束,知道其中7个元素,就可以求得剩下1个的元素,因此说,自由度为7。即基础矩阵F的自由度为7.基础矩阵是对极几何中,将左图中的一个点的像素坐标,映射到右图中对应极线坐标的矩阵。
2023-04-02 16:18:26
923
原创 Sophus初始化SE3d,旋转矩阵不正交
点进去看是Sophus中有一个isOrthogoal的检查,没有通过Sophus的精度检查。解决方法是先将旋转矩阵转变成四元数,然后归一化,再转成旋转矩阵,这样能够保证旋转矩阵的精度,虽然有点多此一举…SLAM过程中的数值精度也非常重要,毕竟矩阵连乘,一点点数值误差会造成大量偏移。最近使用Sophus库中的SE3d类,初始化报错,报错说R is not orthogonal,传入的旋转矩阵不正交。这段代码中,旋转矩阵相乘后的输出是一个精度不高的单位矩阵(就是对角线元素是1,然后其他元素是极小量。
2023-03-13 22:03:56
1327
3
原创 C++使用标准库方便地读入csv逗号分隔格式的数据
编写程序过程中常常会碰到读入文件中的数据的操作,这里使用标准库方便地读取CSV格式的数据文件。思路就是读取文件的每一行为一个string,然后将string中的逗号替换为空格,再将string转换为字符流类型,然后使用输入运算符读取。
2023-02-20 14:46:21
546
原创 OpenCV的C++版本中初始化cv::Mat的方法总结以及直接初始化小矩阵的方法(Mat使用总结)
简单小矩阵直接赋值初始化,将小矩阵赋值到大矩阵某个区域,访问多通道矩阵某个元素某个通道,将多个点组成一个矩阵。
2023-02-16 11:30:53
4502
原创 OpenCV函数及类理解记录
这种方法找到的描述子一般还需要查看第一个最近邻和第二个最近邻的距离比例,如果相差很大则认为是好的匹配。第三个参数是保存匹配点之间距离的一个类。第四个参数是返回k最近邻个数。第一个参数是查询集合。第二个参数是训练集合。
2022-11-25 10:34:27
2265
原创 编译大疆Mobile SDK时can not resolve runOnUiThread
LookAtMissionView.java:59行和334行。编译大疆Mobile-SDK的时候碰到这个问题,
2022-08-28 12:46:03
665
原创 VisualStudio的CMake项目中如何设置调试环境以找到调试时所需要的dll文件
有时一些项目运行时需要查找dll文件,比如使用了OpenCV作为第三方库的项目,运行时需要查找opencv_world450d.dll等文件,如果不在VS这个IDE中进行设置,最基础的方法就是将opencv_world450d.dll拷贝到执行文件所在目录,但是这种方法总是觉得不够优雅,为什么不让IDE自己查找这个dll文件呢?在VS自建项目中可以在项目-属性里面设置调试环境,但是VS中的自建项目貌似没有这个入口。这时在launch.vs.json文件中配置PATH变量就行了。如何打开launch.v
2022-07-12 21:58:55
2404
1
原创 【cmake变量笔记】
CMAKE_CURRENT_LIST_DIR存储着当前处理的lists文件所在的目录CMAKE_CUDA_COMPILER
2022-07-12 11:01:45
487
原创 [cmake命令笔记]get_filename_component
cmake文档地址这个命令用于获取一个全文件名(这里感觉可以理解为绝对路径)的某个特定组分,比如目录、文件名、文件扩展名(取最长的,a.b.c的文件扩展名是.b.c)、文件名不带扩展名(a.b.c取a)、最后一个扩展名(a.b.c取.c)、文件名不带路径及最后一个扩展名等等。...
2022-07-12 09:43:46
778
原创 编译和使用basalt时出现的报错
github/basalt/thirdparty/Pangolin/src/image/image_io_lz4.cpp:42:12: error: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 3 bytes from a string of the same length [-Werror=stringop-truncation]cc1plus: all warni
2022-06-01 16:56:48
986
原创 ModuleNotFoundError: No module named ‘rospy‘,pip也找不到安装包
运行某个开源python脚本报错ERROR: Could not find a version that satisfies the requirement rospy直接用pip install rospy也找不到合适的安装包我使用的是豆瓣源,其实是源里面没有这个包,需要使用其他的pip源,按照下面的命令pip install --extra-index-url https://rospypi.github.io/simple/ rosbag安装就可以,其他如cv_bridge也一样,如果碰到网
2022-06-01 10:40:15
2505
3
原创 [cmake命令笔记]target_compile_options
编译basalt时碰到这个命令,basalt使用的第三方库pangolin老是报错:CMake Error at thirdparty/CMakeLists.txt:67 (target_compile_options): Cannot specify compile options for target "pangolin" which is not built by this project.CMake Error at thirdparty/CMakeLists.txt:118 (ge
2022-05-25 16:46:48
4206
1
原创 [cmake命令笔记]find_path
在编译basalt时,cmake提示需要3.4.0版本的Eigen,而且在find_package中添加了exact参数,所以还不能改。然而我系统中使用apt安装的eigen是3.3.7版本的。因此下载安装了3.4.0版本的Eigen,但是cmake还是找不到这个版本的Eigen。查看basalt的编译文件发现他是使用FindEigen3.cmake文件查找Eigen库的,即在CMakelists.txt中用find_package()找到库,然后findpackage使用module模式进行查找,见C
2022-05-25 14:55:42
918
4
原创 编译opencv4+contrib时下载xfeatures, wechat_cv等第三方库模型文件时下载网络出错的解决方法
我已经下载好了相应的文件,将我上传的压缩包解压到opencv目录下的.cache目录中就可以了,目录架构像下面这样就可以了/opencv/.cache/xfeatures2d
2022-05-14 22:30:58
2987
原创 ERROR: flag ‘flagfile‘ was defined more than once
出现在编译视觉slam十四讲ch6中问题出在我既用apt安装了gflags和glog,也用源码编译安装了glog,删除源码编译安装的就行sudo rm -rf /usr/local/include/glog/sudo rm -rf /usr/local/lib/libglog*sudo rm -rf /usr/local/include/gflags/sudo rm -rf /usr/local/lib/libgflags-*貌似是这样,库的名字不知道打错没有。...
2022-05-14 18:27:20
3468
原创 将遥感数据集中的超大图像标注切分成指定尺寸保存成COCO数据集-目标检测
待改进:原始大图数据集不是COCO标注格式的,待更改成COCO标注原始数据集大图切割种类名和id的获取是直接赋值的,后续改成COCO标注格式时需要从数据集获取思想:使用滑动窗口切分大图,同时滑动时重叠一定数值,根据滑窗图像patch中目标包围框占原始包围框的比例选择保留标注与否。方法:对每一张大图生成实例图像标签和语义图像标签用于确定滑窗patch中的目标是否保留标注,如果占比太小,比如patch中只包含某个实例bbox的几个十几个像素,占比0.01,就不予保留。# author scu cj
2022-04-20 23:36:51
3598
3
原创 BIOS和UEFI的区别,系统安装引导以及MBR和GPT磁盘分区
前言安装系统是计算机专业的日经操作,然而就算你是身经百战,也可能会遇到各种各样棘手的问题,对系统的启动流程也是似懂非懂(俺也一样),每次碰到问题都会花去大量的时间去查询解决方案,最后很多时候都免不了进PE,清硬盘,再重装。也没有看到一个系统、全面讲解这方面知识的博客或者书籍,从网上各个地方搜集的资料都太零散,不成系统,因此这里开一篇博文记录和分析平时系统安装的心得经验和里面的计算机基础知识,并保存一些很有价值的博文资料链接,文中或许有很多理解错误或者不当之处,请读者批评指正,或者读者对安装系统过程中的什么
2022-04-18 09:08:11
5341
原创 Python将目录下文件名自然排序并记录到txt文件以及目录间文件拷贝
import osimport natsortfrom natsort import natsortedimport shutil# 1.记录某个目录下的文件名image_root = "/media/jaychen/cj/iSAID_896_384/val/images"txtfilepath = "/media/jaychen/cj/iSAID_896_384/val/imagesname.txt"for root, dirs, files in os.walk(image_root)
2022-03-30 10:58:58
2679
1
原创 PolarMask is not in the models registry
这个问题出现在我将PolarMask的模型和配置文件拷贝到新安装的mmdetection中训练时发生的。首先说主要原因,是因为PYTHONPATH环境变量中没有mmdetection下的build的某个子子目录(仔细看安装时的提示就解决了)解决方法:卸载mmdetection(或者也可以不卸载?我没试)https://blog.csdn.net/jiraiya_wl/article/details/111404703在~/.bashrc中写(路径改成你自己的)export PYTHONPA
2022-02-15 10:15:09
1314
1
原创 Excel中使用VBA间隔抽取某列到另一列
Sub d() Dim i As Long Dim r As Long i = 2 r = 2 Do While r <= Sheet2.Rows.Count 'Range("K1").EntireColumn.Cells(i, 1).Value = Range("F2").EntireColumn.Cells(r, 1).Value Range("L1").EntireColumn.Cells(i, 1).V
2021-12-27 19:12:09
1374
原创 国产Linux发行版Deepin使用记
从2014年接触到Deepin,断断续续使用了这么久,见证了Deepin一步一步完善,总体来说,是一个不错的Linux版本,但是系统远远没有达到Windows的流畅程度,这里写下一些使用注意事项。安装时要将opt单独挂挂载一个比较大的分区,因为应用商店下载的应用大多安装在/opt下,单独放在一个比较大的分区,以免后面程序安装多了之后根分区满了卡顿,就像现在我碰到的情况,卡得不行。2.N卡笔记本去B站查看闭源驱动安装教程,然后下载一个切换插件,不然桌面也会很卡...
2021-12-21 17:21:26
215
原创 如何在CMake项目中引入OpenCV
一、OpenCV下载opencv下载地址opencv_contrib下载地址注意opencv以及opencv_contrib的版本最好对应二、OpenCV编译安装2.1 cmake编译安装下载下来后,进入源码目录(即CMakeLists.txt的同级目录)新建build目录mkdir build运行cmake命令,注意针对OpenCV的编译,该命令有许多选项,这里仅给出我自己常用的sudo cmake -D CMAKE_INSTALL_PREFIX=/media/jaych
2021-07-06 19:24:52
27250
原创 直方图均衡化算法,超级简单的Python源码
import cv2# 读入数据img_path = "f:/temp/car.jpg"img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE)# 生成灰度直方统计图graystatic = [0 for i in range(256)]width,height = np.shape(img)for i in range(width): for j in range(height): graystatic[img[i,j]
2020-10-12 22:36:08
727
原创 判断C++中一个变量存在的位置(.rodata段 .bss段 .data段还是栈中)
注意:这个图是C++方式编译的C++11标准下的C++代码语言下生效。(因为以前有的C语言的标准是const变量不用初始化,然后放在.bss段或者.rodata段)。Llinux下可以用readelf命令查看编译的到的.o文件(可重定位对象文件)查看各段的大小来推测各个变量的存储位置。...
2020-08-07 14:13:54
1053
原创 让MATLAB2018b支持VS2019的mex配置
MATLAB2018自带的配置文件无法查找到VS2019(MATLAB2018先发布,当然找不到VS2019),但是我们可以通过修改配置文件的方式让其能够支持VS2019(貌似MATLAB2016及以上的版本都可以)。下载下面的文件,放到S:\MATLAB\R2018b\bin\win64\mexopts中(根据自己的安装位置修改)VS2019支持配置文件按下win+r,输入regedit打开注册表编辑器,找到\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Micr
2020-06-02 10:39:17
7404
18
原创 jupyter notebook修改配置文件设置启动目录无效
修改配置文件后,点击jupyter notebook快捷方式发现修改无效,因为快捷方式中已经给定了启动目录的参数%user%,对开始菜单中的jupyter图标右键,打开文件位置,然后对jupyter notebook图标右键属性,删除其目标选项中的参数(就是两个%%及其中间的内容)。重启jupyter notebook,ok!...
2020-05-31 09:49:44
1298
原创 Numpy的广播机制(附实例)
一、什么是Numpy的广播机制numpy的广播机制是在不同shape的ndarray数组进行运算时,将其补足成相同shape再进行运算的机制比如我们常常需要对一个数据矩阵的每个维度进行零均值化处理,就需要该维度的所有数据减去该维度的均值,代码如下import numpy as np# 模拟一个5*5大小的样本矩阵,每一行是一个样本的特征向量DATA = np.random.permuta.........
2020-05-06 22:23:00
2363
6
原创 代码运行优化及用C++标准库进行程序运算时间统计
前言这篇博客是用来记录在牛客网上的一道编程题时遇到的问题,就是这道题: 求数组中的逆序对,这道题需要统计一个数组中的逆序对的数量,比如[2, 1],逆序对就是(2, 1),数量为1,[3, 2, 1]逆序对就是(3, 1),(2, 1),(3, 2),数量为3 。这道题的解法用到了归并排序的思想,基本思想就是分治的思想。将数组分成前后两段,先统计前段内的逆序数对,再统计后段内的逆序数对,再将排序...
2020-04-02 10:50:32
372
原创 K近邻算法及MATLAB实现其MNIST手写数字分类
算法思想这是一个分类算法,这个算法的基础非常简单容易理解,首先你需要若干个已经分类标记好的数据(假设n个已分类样本),然后就可以对新输入的一个数据进行分类判别。判别流程是在n个已分类样本中找到距离新数据最近的K个样本(所以叫K近邻嘛)。然后统计K个样本的分类(就是找出K个样本的标签分类最多的是什么分类),然后新样本就是这个分类。数据准备使用MNIST数据集进行手写数字分类。MNIST数据集...
2020-04-02 09:52:18
2440
6
原创 遇到数学公式中不认识的符号怎么办
一、对于常用的符号和字母,可以看下面这个汇总的,我直接把连接内容截过来了。这里面都是英文的,类似希腊字母,积分微分符号等读法。https://zhuanlan.zhihu.com/p/51044707二、如果遇到一些特殊字体,都认不出来是什么字母如果是标准的印刷体,就先截图,去这个网站搜一下http://www.qiuziti.com/搜出是什么字体,然后用这个网站确认一下。h...
2020-02-18 11:22:22
3057
2
MNIST_csvformat.rar
2020-04-02
Windows程序设计第5版
2018-08-18
请问C++11的多线程如何在类的成员函数里调用另一个成员函数在新线程里执行
2017-07-13
请问ICMP_ECHO是系统预定义的吗,包含在哪个头文件里呢?
2016-04-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人