centos7中用docker部署java项目调用mvs海康相机拍照踩坑
一、海康机器人官网下载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包


配置pom.xml 将外部包一同打包进去

将 /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中进行配置

拍照成功


浙公网安备 33010602011771号