# 相机采集 **Repository Path**: tootDebug/CameraCollege ## Basic Information - **Project Name**: 相机采集 - **Description**: 支持大恒相机的图像采集系统 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2022-10-17 - **Last Updated**: 2025-06-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 相机采集 支持大恒相机开发的图像采集系统 ## 软件架构 - 单机相机采集控制工具(支持连接到服务端) - 服务端控制程序 - 客户端无GUI控制程序 - 旧CCS文件升级工具 - 旧CCS文件解压工具 ## 安装方法 系统会自动判别所用CPU架构,目前支持的有x86_64,arm64 对于*客户端无GUI程序*而言,配置文件路径为`/etc/CameraCollege/config`,需要正确设置配置文件才能启动 ### Linux 所需依赖库 - [oatpp](https://github.com/oatpp/oatpp) - [oatpp-websocket](https://github.com/oatpp/oatpp-websocket) - [lz4](https://github.com/lz4/lz4) - [wxWidget](https://github.com/wxWidgets/wxWidgets) - [fmt](https://github.com/fmtlib/fmt) > 如果需要启动GUI程序,由于xcb在某些情况下会导致窗口卡死,需确保使用wayland运行程序 请确保编译器支持C++20标准,对于GCC而言,版本应该为11以上 ``` git clone https://gitee.com/tootDebug/CameraCollege.git cd CameraCollege mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make ``` ### Docker docker目前仅支持部署`客户端无GUI的控制程序` **容器构建** ``` git clone https://gitee.com/tootDebug/CameraCollege.git mkdir dockerBuild && cd dockerBuild docker build -t camera_client_arm -f../CameraCollege/Dockerfile --no-cache . ``` **启动容器** 这是一个示例,在启动容器前,需要建立一个配置文件"config",并将其挂载到容器目录中 容器目录挂载点有三个: `/etc/CameraCollege` 配置文件目录 `/Record` 存储录像存档 `/dev/bus/usb` 用于映射USB设备 ``` docker run --name camera_demo --privileged=true --restart=always -v /home/pi/camera_demo/config:/etc/CameraCollege -v /home/pi/camera_demo/record:/Record -v /dev/bus/usb:/dev/bus/usb camera_client_arm ``` ### Windows Windows目前仅支持服务端控制程序部署 构建前先设置如下环境变量: - `WXWIN` wxWidget的安装路径 - `OATPP` oat++的安装路径 - `OATPP_WEBSOCKET` oat++ websocket组件的安装路径 Visual studio项目路径为`tool\RemoteControl\MSVC_Project` 打开visual studio工程后直接生成即可 ## 配置文件(无GUI的控制程序) 配置文件存储路径为`/etc/CameraCollege/config` 程序每次启动都会去读取这份文件,如果找不到就会退出 文件格式为: - 存档路径 - 服务器IP - 服务器端口 - 设备名称 每个值中间不应该有空格,尽可能遵守C++的变量命名规则 这是一个示例 ``` /Record 195.168.1.166 7600 camera_1 ``` ## 使用方法 ### 无GUI客户端+服务端程序 1. 首先确保正确编写了配置文件,并存放到指定路径 2. 首先启动无GUI客户端,对于docker而言为`docker start/run [相关参数]` 3. 启动服务端程序,客户端会自动登陆 ![控制端UI](Screenshot_20221124_163232.png) ### GUI客户端 ![GUI客户端](Screenshot_20221124_163045.png) ### 操作建议 1. 先调整好相机参数然后使用远程服务 2. 采用GUI客户端先进行单机试运行,一切正常后再使用远程功能 3. GUI程序在linux下不要运行在xwindows中,请使用wayland,除非能保证XCB版本为最新 ## 硬件说明 ![主板与电源连接](%E8%AF%B4%E6%98%8E-%E4%B8%BB%E6%9D%BF%E4%B8%8E%E7%94%B5%E6%BA%90%E8%BF%9E%E6%8E%A5.jpg) ![主板与相机连接](%E8%AF%B4%E6%98%8E-%E7%9B%B8%E6%9C%BA%E4%B8%8E%E7%9B%B8%E6%9C%BA.jpg)