centos7中用docker部署java项目调用mvs海康相机拍照踩坑

发布时间 2023-08-11 10:37:22作者: 也许没资格

一、海康机器人官网下载MVS V2.1.2 (Linux)

二、解压后将tar.gz包传入centos7中

三、解压并安装MVS

 安装

 四、执行MVS,并查看环境变量是否正确

安装后会新增/opt/MVS目录,进入/opt/MVS/bin目录执行./MVS

 执行完成后查看是否已经自动添加环境变量,执行vi /etc/profile,会自动配置好环境变量

 五、执行MVS例子查看是否能够调用相机拍照 ,目录 /opt/MVS/Samples/64/Java 为示例

 进入SaveImage 执行./run_SaveImage.sh 如果能够执行则证明环境变量配置没有问题

 六、java程序调用海康相机程序

先把 /opt/MVS/Samples/64/Java 目录下的 MvCameraControlWrapper.jar包放到java程序中,pom中配置引用jar包

 将 /opt/MVS/Samples/64/Java/SaveImage/SaveImage.java 拷贝到程序中,改写一下拍照方法

 七、写一个接口将方法暴露出来,方便测试

八、docker环境部署

 出现 no MvCameraControlWrapper in java.library.path 问题是由于java运行中需要配置环境引用的jar包,docker-compose也需要配置路径的映射

 dockerfile中配置应用的lib包目录,该目录下就有libMvCameraControlWrapper.so库

 docker-compose配置路径的映射

 九、调用相机没有出错,但是没有找到相机  

No devices found! 原因分析:是由于docker的网络模式导致的,默认为桥接模式,相机跟宿主机在同一个局域网,但是由于桥接模式导致无法找到相机
docker的四种网络端口映射,详见 https://blog.csdn.net/qq_62344659/article/details/131823212

 解决思路:使用直接用host宿主机网络,docker-compose中进行配置

 拍照成功