【CeleX5事件相机使用系列】第一个c++程序

对照官方手册翻阅了提供的源代码,总体感受代码非常工整,风格也非常统一,命名通俗易懂,甚至代码间没有两行以上的空行看着真的舒服。

基本了解了CeleX5的API之后,开始自己写一个完整的小程序,熟悉基本配置。

1. 头文件

共需要4个头文件:celex5.h, celex5datamanager.h, celex5processeddata.h, 以及 celextypes.h
需要将前三个文件放到一个文件夹下,而celextypes.h放到文件夹之外。因为在celex5.h头文件中采用以下代码读取了celextypes.h文件

#include "../celextypes.h"

自己的代码中使用时只需要包含celex5.h即可。

2. 链接库

如果直接使用官方提供的链接库会出现问题,因为官方提供的libCeleX.so文件依赖的是opencv330,在CMake进行link时会报错:在这里插入图片描述解决办法就是自己重新编译libCeleX.so。
进入官方提供文件的 Sources下能够发现生成libCeleX.so的Makefile文件。因为用CMakeLists多不太懂Makefile,但看文件内部并没有指定OpenCV的版本而是直接寻找的库,所以直接make编译即可。编译完成后当前目录下生成了新的libCeleX.so。使用这个库便是依赖的当前系统的opencv版本。

3. CMakeLists编译

写一个简单的CMakeLists.txt即可编译通过

cmake_minimum_required(VERSION 2.8.3)
project(celexEx)
set(CMAKE_CXX_STANDARD 11)
find_package(OpenCV REQUIRED)
include_directories(include)
link_directories(/home/larrydong/Desktop/celexEx/libs)
add_executable(celexEx main.cpp)
target_link_libraries(celexEx ${OpenCV_LIBS} CeleX)

4. 配置文件

FPN文件
由于运行时需要载入FPN文件消除Fix Pattern Noise,则需要在运行时指定之前由GUI程序中生成的 FPN_xxx.txt的文件路径。

cfg_mp/cfg_mp_wire文件
在运行程序时出现报错:“Can’t load: Fialed to open file/xxx/cfg_mp”
后来发现需要将cfg_mp和cfg_mp_wire两个文件放到可执行文件运行时的目录,即build路径。之后可成功启动。
在这里插入图片描述

5. 遇到的问题

1. 启动程序时需要有sudo权限
2. cfg文件的问题
当不存在两个cfg文件时如果启动了程序,会生成一个"CeleX5_Commands_MIPI.xml"配置文件,但此时这个文件是空的。之后拷入两个cfg后运行,会提示报错:

Error document empty. /xxx/CeleX5_Commands_MIPI.xml

把这个文件删掉再重新运行就好。推测是程序启动时只检测了是否存在xml文件,若不存在则创建,而此时没有cfg所以创建了一个空的,而之后使用时没有重新生成从而用了空文件。

其它

由于官方SDK文件包含了完整的windows和linux的安装包,以及GUI的各种库文件,导致文件非常大有几百M,下载很不方便。我择出了源代码和demo部分,并配了自己校准的FPN文件,上传到了github。主要是为了自己使用方便,但万一能帮到别人呢。https://github.com/LarryDong/CeleX5_source


微信公众号:【事件相机】,交流事件相机的相关科研与应用。欢迎大家关注
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值