C++编程
文章平均质量分 73
wishchin
CV算法工程师:从事室内场景感知方面工作,完成算法实验和软件开发。
展开
-
Cartographer向PoseGrapher里面添加用于控制分支的状态参数
这样在读取的时候,通过Ros版本的lua文件包含的trajectory_builder.lua 文件,则可以加载 is_in_slam_mode = true 控制参数。在开启定位模式的时候,关闭掉一些优化选项,但是我们约定在 isInSlam模式的时候,需要开启相应的更多的优化。通过配置文件trajectory_builder.lua写入配置参数。Ros端使用的配置 revo_lds_wish.lua。可以通过这个逻辑链,使用配置参数控制全局优化的状态。打开C++工程头文件。C++内部的逻辑控制。原创 2023-06-16 09:42:03 · 1207 阅读 · 0 评论 -
Cartographer向proto::TrajectoryBuilderOptions里面添加参数
在Ros端的cartographer_ros/cartographer_ros/trajectory_options.h。make之后生成trajectory_builder_options.pb.cc 一些列文件,编译安装到linux系统中。参数传递却没有传递过去,因为在 时候传递的是 trajectory_builder_options 这个成员。添加 bool is_in_slam_mode = 5;设定 bool is_in_slam_mode =参数添加是通过C++端添加的。原创 2023-06-16 09:19:59 · 1452 阅读 · 0 评论 -
移动语义(move semantic)和完美转发(perfect forward)
完整原文链接:https://codinfox.github.io/dev/2014/06/03/move-semantic-perfect-forward/移动语义(move semantic)通过移动语义,我们可以在没有必要的时候避免复制。那么在接下来,我们就重点来谈一谈移动构造函数(move constructor)。相信到这里你已经意识到了,移动构造函数的出现就是为了解决复制构造函数的这个弊病。所以,其实移动构造函数应该和复制构造函数实现差不多的功能。那么,它也应该是一种构造函数的重载(好废转载 2020-08-22 14:31:01 · 409 阅读 · 0 评论 -
caffe:无法读取文件cuda8.0.props
在使用VS2015导入老版本的caffe程序时候,导入一个solution的多个工程,其中一个project不能导入,出现:无法读取文件 cuda8.0.props错误,问题:新的win10 系统安装的CUDA是10.1版本,应该安装cuda8.0版本;解决:安装cuda8.0,可以和cuda10并存,安装时候不要安装驱动程序....原创 2020-08-02 21:00:59 · 362 阅读 · 0 评论 -
Cmake:linux中cmake添加动态库
参考:https://blog.csdn.net/zhuiyunzhugang/article/details/88142908在COLMAP_ADD_EXECUTABLE选项下面添加target_link_libraries(exe libname)比如:COLMAP_ADD_EXECUTABLE(colmap_exe colmap.cc)target_link_librari...原创 2020-04-28 10:10:49 · 1029 阅读 · 0 评论 -
C++:数据流和缓冲区
使用缓冲区是C++编程的一种有效方式,本文做了简单介绍转载 2013-10-22 18:56:32 · 3913 阅读 · 0 评论 -
boost::mutex::scoped_lock
在三维重建过程中,世界地图 Map &world作为唯一 访问/更新 对象,可以使用boost::mutex::scoped_lock 。使用boost进行线程管理简单使用boost::mutex 。mutex对象本身并不知道它代表什么,它仅仅是被多个消费者线程使用的资源访问的锁定解锁标志。原创 2016-09-14 13:28:00 · 20068 阅读 · 0 评论 -
QT显示框架嵌入Vs控制台工程
一、一些准备工作: 1.安装Qt for VS 的插件; 安装Qt for VS 的插件 安装Qt 4.8.06 2.进行一些设置: 找到菜单项: Qt——> Qt Option——> 选取版本 ——> ——>在工程选项中添加必须的包含文件和lib文件然后原创 2015-12-03 16:46:21 · 2028 阅读 · 0 评论 -
nvcc fatal : Unsupported gpu architecture 'compute_11'
使用VS编译OpenCV编译源代码时候,对Cmake生成的工程文件编译,会出现 nvcc fatal : Unsupported gpu architecture 'compute_11' 问题。原因是CUDA7.5不支持较为古老的显卡版本,因此1.1,2.0,2.1,之类的显卡选项是多余的。原创 2017-03-20 16:44:31 · 7638 阅读 · 0 评论 -
0xc000007b:vs2012+Opencv2.4.4出现"0xc000007b"问题
在64位系统中,VS2010+opencv2.4.4下编程出现一个问题,我简单的读取图片就出现“应用程序无法正常启动0xc000007b”的问题:如图:把运行环境改成 debug x64 ,原本是debug win32的.原创 2013-08-09 09:59:05 · 3449 阅读 · 0 评论 -
VS编译时使用/去除NuGet管理库
之前一直使用NuGet来管理一些第三方的库,但是每次check in代码时候为了保证编译通过,都需要把对应的packages check in。同样,在相应的设置界面关闭即可。若只是想使用本地的一些软件包,而不是网络版本,打开工程的package.config文件,删除掉特定的行即可。转载 2017-09-25 10:46:46 · 6872 阅读 · 0 评论 -
Windows下使用Caffe-Resnet
编译历程参考:CNN:Windows下编译使用Caffe和Caffe2 caffe的VS版本源代码直接保留了sample里面的shell命令,当然这些shell命令在Windows平台下是不能运行的,需要稍微修改一下,转换为CMD可以理解的脚本代码。原创 2017-09-24 16:14:27 · 1317 阅读 · 0 评论 -
Windows各种计时器
(一):OnTimer类 2.在消息映射MessageMaps中添加消息Message:WM_TIMER。 3.程序代码中将自动添加函数OnTimer(UINT nIDEvent),在该函数内编写代码实现计时器功能。函数代码一般写在switch...case中,nIDEve原创 2013-10-24 00:48:41 · 2167 阅读 · 0 评论 -
使用Boost_MPI进行并行编程
使用非常流行的 Boost 库进行并发编程非常有意思。Boost 有几个用于并发编程领域的库:Interprocess (IPC) 库用于实现共享内存、内存映射的 I/O 和消息队列;Thread 库用于实现可移植的多线程;Message Passing Interface (MPI) 库用于分布式计算中的消息传递;Asio 库用于使用套接字和其他低层功能实现可移植的连网功能。本文介绍 IPC 和 MPI 库以及它们提供的一些功能。转载 2013-09-14 12:56:52 · 4093 阅读 · 0 评论 -
vs2012编译boost_1_54_0
在原文上进行了修改,我的环境是VS2012 ,在编译注意事项:Boost 请慎用!微软太坑爹...且直接使用GitHub上的exe文件也可以,特定版本的只能自己编译了....汗!!!原文地址:http://blog.csdn.net/liukang0618/article/details/9149881转载 2013-09-01 22:40:27 · 1505 阅读 · 0 评论 -
C++的Matlab接口
与 原文 过程有些不同,根据具体环境自行配置即可!转自于:http://blog.csdn.net/left_la/article/details/82066451.C/C++->常规->附加包含目录 添加:MATLAB\R2010b\extern\include转载 2013-09-05 20:37:48 · 1343 阅读 · 0 评论 -
将自己的类封装为lib的方法
此文解释已经相当详细,地址:http://blog.csdn.net/missingu1314/article/details/9421085 不过为了防止以后博主删除,还是copy一遍....、详细解释了Dll生成的方法以及从dll里面引出lib文件....转载 2013-09-11 16:05:38 · 991 阅读 · 0 评论 -
vs2012下 error4996
fopen”改写为 fopen_s;或者关掉warning!转载 2013-09-13 14:57:38 · 1138 阅读 · 0 评论 -
boost::function和boost:bind取代虚函数
这是一篇比较情绪化的blog,中心思想是“继承就像一条贼船,上去就下不来了”,而借助boost::function和boost::bind,大多数情况下,你都不用上贼船。boost::function和boost::bind已经纳入了std::tr1,这或许是C++0x最值得期待的功能,它将彻底改变C++库的设计方式,以及应用程序的编写方式。Scott Meyers的Effective C++ 3rd ed.第35条款提到了以boost::function和boost:bind取代虚函数的做法,这里谈谈转载 2013-09-27 12:31:21 · 756 阅读 · 0 评论 -
Boost字符串处理
boost::format类提供了类似C语言里'printf'功能的格式化输出能力,当然功能更强大。转载 2013-09-27 12:25:53 · 984 阅读 · 0 评论 -
Boost::filesystem的使用笔记
Boost::filesystem 使用小笔记path对象就是一个跨平台的路径对象。有许多方法访问路径的各个部分,也用它的iterator迭代路径中的各个部分; path构造目录结构的时候使用“/”运算符,非常直观。 比如path p1;转载 2013-09-22 16:15:02 · 11148 阅读 · 0 评论 -
main函数解析
每一C 程序都必须有一个main()函数,作为整个程序的入口,可以根据自己的爱好把它放在程序的任何地方。转载 2013-09-22 13:53:11 · 808 阅读 · 0 评论 -
max 宏定义取消:error C2589: error C2059: 语法错误 : “::”
使用PCL和windows过程中,maxmin问题是一个大问题转载 2013-10-18 16:39:19 · 2916 阅读 · 0 评论 -
Android: AndroidStudio使用OpenCV-Java
参考文链:https://blog.csdn.net/qq_36992688/article/details/79214273使用OpenCV-Java和使用OpenCV Native有所不同,使用Java版本的使用opencv的Java接口,为Java语言;使用native,为在nativeLib里面使用C++语言开发工程,参数传递通过JNI接口;1. 引入模块在项目工程中,Andr...转载 2019-05-31 14:28:00 · 478 阅读 · 0 评论 -
JAVA:Java二维数组处理-Bit型转Bitmap
详细介绍Java数组,文链:http://c.biancheng.net/view/916.html虽然使用Java数组效率很低...代码段:import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.RectF; //转换bit到bitmap ...原创 2019-05-30 10:51:58 · 989 阅读 · 0 评论 -
一些试题:C++面试题.万能Key
0.编写strcpychar* strcpy(char* dst, const char* src){ assert(dst!=null && src!=null); char* adr == dst; while((*dst++ != *src++)!='\0'){}; return adr;//返回地址,可以进一步使用}...转载 2019-04-09 11:55:17 · 383 阅读 · 0 评论 -
OpenCV:判定曲线为弧线的简单方法
借鉴了一个前同事的一个代码段(良心代码),功能为判定曲线为弧线,并且给出拟合度;代码段: //寻找所有canny 弧 int findArcsOfAllCanny( cv::Mat &inMatCanny, std::vector<std::vector<std::pair< cv::Point, float> > > &ci...原创 2018-10-27 17:14:39 · 15445 阅读 · 12 评论 -
GPC:使用GPC计算intersection容易出现的问题
在使用GPC计算多边形的交的时候,出现问题 //1.2. 另一种方法,判断新的多边形是否和老多边形相交 Poly cross = (PolyDefault) Clip.intersection( filed, polyNig ); 若filed 为两个分离的多边形,则出现计算问题: catch (Exception exception) { ...原创 2018-05-22 15:22:24 · 1258 阅读 · 0 评论 -
C++11:using 的各种作用
C++11中using关键字的主要作用是:为一个模板库定义一个别名。转载 2018-04-09 17:57:23 · 13473 阅读 · 0 评论 -
c++中的类型转换--reinterpret_cast
原文链接: 浅析c++中的类型转换--reinterpret_cast 转换reinterpret_cast作用为: 允许将任何指针转换为任何其他指针类型。 也允许将任何整数类型转换为任何指针类型以及反向转换。看着上面的描述就有种放浪形骸的赶脚。更会让人不寒而栗,太随意!语法还是老样子: reinterpret_cast < type-id > ( expression )滥用 re...转载 2018-03-22 15:06:24 · 1717 阅读 · 0 评论 -
Caffe RPN :error C2220: warning treated as error - no 'object' file generated
在 caffe里面添加rpn_layer.cpp之后,总是出现 error C2220: warning treated as error - no 'object' file generated 这种错误。 后面跟着: warning 4819 存在不支持的非Unicode字符集 寻找几种方法: 删除掉所有无效字符; 找到紧跟erro...原创 2018-03-08 11:45:38 · 1606 阅读 · 0 评论 -
Vs2010无法打开文件“Kernel32.lib”、无法打开“libcpmt.lib”"msvcprt.lib"
1.对于无法打开“Kernel”问题,即使复制lib文件到目录,仍然会出现最后的错误; 原因:WindowsSdk 安装失败! 方法:重装 microsoft SDK6.0 ,再在VS中添加包含目录;2.无法打开“libcpmt.lib”"msvcprt.lib"解决方法: 在VC的库包含目录里面,库目录 lib 添加:$(LibraryPath)3.硬原创 2015-04-02 17:42:25 · 6518 阅读 · 1 评论 -
使用replace pioneer批量修改文件名
shell的正则表达式还是很难记忆的,也没有沉静的心情看文档,于是使用了replace pioneer。1. 启动replace pioneer,Tools—>batch runner ,在 set out file name 填入#{198701,16}.jpg; 结果为 文件以198701开始,以16起跳,以此加16命名文件。2.在 set o原创 2015-04-13 18:07:15 · 2268 阅读 · 0 评论 -
C++ Rand()各种实现
参考链接:http://www.cplusplus.com/reference/cstdlib/rand/使用实例: v1 = rand() % 100; // v1 in the range 0 to 99 v2 = rand() % 100 + 1; // v2 in the range 1 to 100 v3 = rand(原创 2015-08-21 14:24:48 · 983 阅读 · 0 评论 -
C++多个文本读取问题
同时使用两个 ifstream和 freopen 第二个就会失去效用,不知道错在了哪里!1. 使用freopen打开:bool CPicToolsDlg::readTxt2Seq( std::string TxtName, std::vector &Seq ){ std::string TestTxt(TxtName); // freopen(TestTxt.c_str()原创 2015-09-11 14:21:47 · 966 阅读 · 0 评论 -
C++多行文本读取
使用的多行读取的代码如下://读取文本浮点数到多个模式 序列bool CPicToolsDlg::readTxt2SeqMulti( std::string TxtName, std::vector > &Seq ){ //三元组,使用三元组逐个写入 float ViewValue,ViewValue2,ViewValue3; Seq.resize(0); std::str原创 2015-09-16 18:46:11 · 2170 阅读 · 0 评论 -
使用std::cout不能输出显示
在测试一行函数时,出现std::cout不能输出的情况,找不到原因。 只好从main函数第一行,开始测试,直到发现一个函数o_Initer.ekf_filter(filter, x_k_k,p_k_k, sigma_a, sigma_alpha, sigma_image_noise, o_Initer.gSVOC ); 函数体包含了:原创 2015-11-08 13:25:44 · 10918 阅读 · 0 评论 -
代码迁移错误总结
(1):32位操作系统里将32工程编译成64位出错原文链接:http://www.myexception.cn/vc-mfc/316661.html错误提示:error C2440: “static_cast”: 无法从“void (__cdecl CMy163regDlg::* )(UINT)”转换为“void (__cdecl CWnd::* )(UINT_PTR)” 从基类原创 2013-10-25 16:24:31 · 2037 阅读 · 0 评论 -
STL:Numberic_limit()
(1):与MFC的兼容性MFC程序过程中使用STL一些类编译出错,开始我认为是我写错了,放到Console Application里一切正常。比如:void CMyDialog::OnBnClickedButton1(){ double min=std::numeric_limits::max(); void *p=:perator new(count);转载 2013-11-26 10:27:45 · 1451 阅读 · 0 评论 -
STL:使用string、vector、complex和limits
(有少量修改!)使用到了STL的算法库:#include#include //属于STL库 模板库 写库的人为了和标准C和C++库区分开 所有的模板库的文件都没有后缀 一般如 #include 模板库中 #include Tips:在GCC下,除了要用#include 外,还要加一句 unsing namespace std;才能直接使用vecto转载 2013-11-26 10:36:29 · 1155 阅读 · 0 评论