- 博客(35)
- 资源 (2)
- 收藏
- 关注
原创 Win10下借助CMake编译OpenMVS
笔者在编译OpenMVS的过程十分曲折。刚开始借助CMake编译,能够把与库生成相关的工程编译出来,但是与可执行文件相关的工程会报错;后来参考官方教程借助VCPKG编译,发现VCPKG并没有想中强大、好用,最终也是遇到了各种问题没有编译成功。但是,笔者在解决问题的过程发现了问题的根源:boost。此外,网上的编译教程也可能存在问题,下面直接给出在笔者电脑能够编译成功的过程。
2024-09-11 15:02:08 783
原创 OpenCV中的模块:三维重建-SFM(2)
接上一篇文章,本篇将介绍SFM模块在windows平台上的编译。与Ubuntu下的过程类似,主要过程也是依赖库的下载、编译及安装,不同点是:与Ubuntu直接安装不同,windows下我们将对库的依赖关系更加清晰。
2024-04-03 17:56:39 1289
原创 OpenCV中的模块:三维重建-SFM(1)
在三维重建中,运动中恢复结构(SFM)可以用来重建目标的稀疏点云并为后续的稠密重建提供相对精度更高的种子点。笔者在三维重建的相关工作中除了采用结构光(线激光和条纹光等)外,还使用过OpenMVG + C/PMVS和COLMAP等。在浏览OpenCV contrib模块时发现OpenCV也可实现SFM,基于兴趣这里也编译学习了一下。同样,笔者会在Ubuntu下和windows下分别编译及测试
2024-04-01 19:57:35 783 1
原创 OpenCV中的模块:三维显示-VIZ
曾经基于PCL 做过不少点云相关的开发,其中借助VTK进行点云显示。后来基于OpenCV进行三维重建,遇到了点云显示的问题。当时采取的方法是将点云保存下来,然后借助CloudCompare等查看效果。如果能够将VIZ编译进来,预计会提升开发速度。本文章将简要介绍其中Ubuntu和windows下的编译方式。
2024-03-27 20:07:52 748
原创 Ubuntu下使用vscode进行C/C++开发:进阶篇
在vscode上进行C/C++开发的进阶需求: 1)编写及调试源码时,可进行断点调试、可跨文件及文件夹进行函数调用。 2)可生成库及自动提取对应的头文件和库文件。 3) 可基于当前工程资源一键点击验证所提取的库文件的正确性。 4) 使用该库时,可结合find_package实现方便的调用。
2024-03-25 20:07:33 570
原创 Ubuntu下使用vscode进行C/C++开发:基础篇
本章记录了可进行断点调试、可跨文件调用函数、以及直接点击运行的VS Code配置方法,并在后面区分了各“运行”方式之间的差异及其对应配置方法。
2024-03-22 18:44:09 716
原创 C++ 如何实现在A库中声明,B库中定义,C库中调用
采用类的静态成员的方式实现该变量的跨库调用。具体而言:在接口库中定义一个类,该类包括一个静态成员变量和修改静态成员的一个成员(虚)函数;在软件库中对该类进行派生,并在调用算法层前调用成员函数,对成员变量进行赋值;在算法层中采用 类::变量 的形式调用。在linux平台可以正常使用,但是在windows会报LNK2001错误。在接口库内声明一个变量,在软件库对该变量定义,最后在算法库使用该变量。
2023-11-01 12:31:48 549
原创 open3D cmake+win10+vs2019编译
1)第三方库下载失败问题。1、可能是与本地的编译器存在差异,在使用open3D git上的winows版本时,存在地址访问冲突和std::bad_alloc等问题。最终在排查时,发现在报MSB8066错误之前,会出现如下图所示的提示,因此该问题是下载DirectXD-Headers失败引起的。下载DirectX-Headers,并拷贝到build文件加下的uvatlas/src/ext_directxheaders夹下,编译成功。无法绕开1中的问题,在本地重新编译open3D,所遇到的主要问题是。
2023-07-05 17:43:42 721
原创 ceres编译:debug卡死或者失败,release成功
经过查询发现出现此类问题是编译时试图链接不同版本的依赖库。因此,预计debug之所以编译困难可能是链接到了错误的库。编译ceres的过程中发现编译debug版本时,不是报为编译成功的错,就是编译到最后卡死。但是编译release没有任何问题。再重复cmake编译过程即可完成编译。并且是不止一个工程出现此类问题。
2023-06-11 23:37:07 377
原创 Windows下,CMake编译OpenMVG
Windows下,CMake编译OpenMVG,解决编译成动态库时的 LNK2005、LNK1169 错误。
2023-03-18 17:57:45 1094
原创 Win10下Cmake编译CUDA版的OpenCV+OpenCV Contrib
Win10下Camke编译CUDA版的OpenCV+OpenCV Contrib
2023-03-11 22:42:28 590
原创 C3254,C2838,C1075等问题的解决之一
调试过程中出现了下述两个问题: C3254 “”: 类包含显式重写“”,但并不从包含函数声明的接口派生。 C2838 “”: 成员声明中的限定名称非法。 C1075 “{”: 未找到匹配令牌。搜到的解决方法,大致都是派生类的问题。但是:1)检测代码发现完全无问题。2)笔者这里并不存在派生类,而是存在static成员函数。 鉴于搜到的方法无法解决问题,这里就用最笨的方法--逐步排除法。首先,将static定义到外部时,就报上述上侧2个问题...
2021-05-24 14:29:59 3460 2
原创 C4996 ‘cv::estimateRigidTransform’ 被声明为已否决
ProjectProperties>ConfigurationProperties>C/C++>General>SDLchecks关掉
2020-06-09 11:40:36 1776
原创 VS包含目录无任何问题,debug下正常,release报错,且直接路径添加头文件、或将头文件拷到项目均无用
笔者遇到的是低级但是又不容易发现的错误。在配置 libthrift,需要依赖boost,libevent以及OpenSSL。配置之后debug下正常,release下报错且搜索各种方法依然无解。后来发现,在属性配置时和我平常做的都不一样:直接右键项目,在“属性”内配置的。问题就出现了之后,尝试各种方法之后,自己排查不同,才发现属性配置是的不同。按照平常的操作,在“属性管理器”--...
2020-03-20 13:19:30 843
原创 thrift + VS2015 + win10配置简介
仅按笔者操作步骤进行介绍:一、下载thrift,分别下载thrift的zip文件及对应版本的exe文件。注意:两者都不可缺,后面都要用到。配置windows下VS的thrift,并没有版本 要求,仅需要根据自身需要下载64位或者32位即可。 网址:http://thrift.apache.org/download二、解压zip文件,利用VS2015打开...\thr...
2020-03-14 23:19:25 539
原创 C2079 “pcl::KdTreeFLANN...param_k_”使用未定义的 struct“flann::SearchParams”
项目需要用到OpenCV和PCL,在分别单独添加现有属性时并不会报错,两个属性添加到统一项目时出现报上述错误。查找了各种解决方案:比如:包含目录、库目录,代码包含include"···.hpp"等等解决方案,均没有得到解决。后来发现属性加载要有顺序:这里使用kdtree时,调用的是PCL的库,把pcl属性(.props文件)移除,再重新添加,使其在OpenCV属性文件之前就解决了问题。如果...
2019-12-17 22:25:17 2128 3
原创 LNK2019 无法解析的外部符号 "int __cdecl orderDef "
这里遇到此类问题大概是因为读写TXT 文档时使用了过多的of << "...";操作。逐行调试时发现把所有of << "...";注释掉能够运行,重点是:把注释掉的部分重新加入直接点击运行就不再报错,并能正常运行。注意:能运行后若重新生成就又会报相同错误,不过重复上述步骤就又能重新运行了。搞不懂这些......
2019-11-21 15:32:56 441
原创 读入文件夹下所有不同类型图像
需要依次读入文件夹中的不同类型图像。可以借助 struct _finddata_t 结构体。这里提供关于该结构体的一个解释:https://blog.csdn.net/wangqingchuan92/article/details/77979669以及一个例程:http://www.pianshen.com/article/9394315388/...
2019-10-11 10:06:59 299
原创 Vector 的操作
一、内存的释放(1)利用空变量替换:vector <类型>().swap(要释放内存的vector);(2)使用shrink_to_fit()函数:v.clear() + v.shrink_to_fit()二、内存的缩放 vector和string等容器用起来方便,但是需要尽量避免重复内存分配,否则会影响效率。常常需要直接指定,或者使用reserve()函数来指定...
2019-09-11 18:09:27 260
原创 VS2015 “其他窗口” 无 “属性管理器”
选择“工具”(Tools)->“自定义”(Customize) 在弹出的窗口中选择“命令”(Commands Tab) 及其下的“菜单栏”(Menu Bar) 在“菜单栏”右侧内容栏中下拉, 选择“视图| 其他窗口”(View | Other Windows) 点击“添加命令”(Add Command...)并在类别中选择“视图”(View ) 找到并点击属性管理器(Pro...
2019-06-20 15:31:45 5434 1
转载 (转载)C++ ofstream和ifstream详细用法
https://www.cnblogs.com/batman425/p/3179520.html
2018-11-19 21:07:10 213
原创 C++ 根据一个(法)向量旋转前后的夹角,求旋转矩阵(3D)
关于如何求解两个向量间旋转矩阵的理论很多,例如:https://blog.csdn.net/zhazhiqiang/article/details/52441170 https://www.cnblogs.com/meteoric_cry/p/7987548.html等这里不再赘述,直接上代码。#include <iostream>#includ...
2018-11-14 15:57:00 2672
原创 acos 等出现结果:-1.#IND00,实操解决。求取两个向量夹角时所遇到的问题
当出现如题的结果时,主要是因为越界导致的。首先,C++中acos的取值范围是[0,M_PI],也就对应cos的[-1,1]。因此,当acos(alpha)中的alpha不在[-1,1]中时,运行结果就会是:-1.#IND00。这里是在求取向量夹角时所遇到的问题。公式如下所示:|a|=√[x1^2+y1^2]|b|=√[x2^2+y2^2]a*b=(x1,y1)(x2,y2)=x1...
2018-11-13 13:00:30 1604 1
原创 IntelliSense: 无法打开源文件 "···.h" 或者 error C1083: 无法打开包括文件: “···.h”
在配置PCL库时出现了此类问题,经过实操确定问题出在包含目录上。按照帖子配置也许并不可靠,比如笔者所用到的帖子就缺少了好几个include,并且有几个路径过短。这里直接上图,说明问题。笔者利用一下包含目录,配置成功vs2013,也用相似路径配置成功了VS2015. ...
2018-11-08 22:13:38 4445 1
原创 无法打开文件“···.lib“。实操解决!
对于一个初学者来说,遇到此类问题基本无解。经过大量搜索相关博客,会发现相关博客要么不足,要么冗余。更坑的是操作完之后,完全解决不了自己的问题。 当遇到此类问题时,很多帖子都是“编译boost库”来解决。主要利用bootstrap.bat生成 b2.exe及bjam.exe文件来完成编译。其实,你遇到的问题也许远远没有这么复杂,或者利用这样的方法本身也解决不了问题。因...
2018-10-31 23:36:18 6333 3
原创 利用RanSac找到点云中所有的平面
如题,这例直接上代码。具体可以看代码中的注释。void get_plane(PointCloud<PointXYZ>::Ptr cloud, vector<vector<float>> &Coffis, vector <PointIndices> &clusters,int threshold){ while (cloud-...
2018-10-25 10:03:53 3942 3
原创 明明能够运行,忽然报错:error LNK1104: 无法打开文件“***.exe” 。并且再也无法重新生成。
如题目的情况,无论是直接“重新生成”,还是“清理解决方案”后“重新生成”,都会报同样的错误。其实并不是打不开exe,进入相应目录根本没有生成。 其实,已经存在解决方案了: (1)、关闭安全软件重新生成。风险较大。 (2)、360 —>木马查杀—>(左下角)恢复区。然后找到相...
2018-10-10 19:44:35 1430 1
原创 ply、obj 格式转pcd 均匀采样
ply以及obj格式点云比较常见,一般存储格式如下所示。这里,有1536个顶点,3050 个面。 其中,end_header 后是各点的坐标(索引是0-1535)。接着是组成Mesh(即三角形)的具体点的索引:3表示3个顶点,后面三个数字对应相应顶点的索引。plyformat ascii 1.0comment VCGLIB generatedelement vertex ...
2018-10-07 23:02:00 2507 8
原创 error C2079: “pcl::KdTreeFLANN<PointT>::param_radius_”使用未定义的 struct“flann::SearchParams”
PCL版本为18.0我的问题出在了包含目录设置上。具体解决方案是在 属性->C++目录->包含目录 中。之前添加的包含目录是:D:\Program Files (x86)\PCLroot\WIN64\3rdParty\FLANN\include\flann实际应该去掉\flann,把包含目录改为:D:\Program Files (x86)\PCLroot\WIN64\3r...
2018-09-29 15:52:12 3052
原创 从CAD模型获取多视点点云 (STL转PLY, renderViewTesselatedSphere函数)
根据CAD模拟获取多视点点云,参考:https://blog.csdn.net/irobot2016/article/details/56489574?locationNum=9&fps=1的博客,对其进行了理解,注释写代码里。笔者的目的是找到特定角度的视点点云,但是该方法似乎并不合适。renderViewTesselatedSphere函数可以获得多个角度的点云,至于角度,貌...
2018-09-10 21:37:50 7141 12
原创 【2】MATLAB中strel('disk',r)的C实现
strel 是MATLAB中常用的类型,即是structuring element,用来构建结构元素。opencv中与其相似的函数是getStructuringElement()这个函数。strel 能构建的结构元素更多,但与getStructuringElement()对应的且能直接实现也就只有‘square’/'rectangle'矩形了吧!为了方便调试,我们可能需要通过改变半径轻松的得到圆形结构元素。算是皇天不负有心人吧奋斗最终得出了通式,具体怎么推出来就不解释了,下面是构造任意半径圆形结构的C代
2017-03-25 17:58:57 5001
原创 【1】MATLAB isfield的C移植实现
isfield移植为c++,牵涉到对struct结构体成员的操作,这里用到了比较简单的__if_exists,__if_not_exists完成移植,程序相对比较简单易懂...
2017-03-14 11:10:42 590
thrift-0.13.0.zip
2020-03-14
Basler+Guide_for_Windows.zip
2019-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人