docker容器内部访问海康相机,不用DockerFile

官方给的手册是用DockerFile创建一个镜像,没有说怎么用已有镜像访问相机。

容器内部访问海康相机

暂时试过一次,不知道有没有其他方法--后面发现改环境变量也可以。

根据已有镜像创建容器(镜像是拉取的nvidia/cuda:11.0.3-cudnn8-devel-ubuntu20.04后又加了一堆自己的环境重新打包的镜像)

docker run -it -e LD_PRELOAD=/opt/MVS/lib/64/libMvCameraControl.so  --device /dev/bus/usb/ -v /dev/bus/usb/:/dev/bus/usb/ 5dfa399a3006(镜像id) /bin/bash

//--device 支持与其它外部设备的连接,同时避免程序间数据传输的时间损失和性能损失

-e LD_PRELOAD=/opt/MVS/lib/64/libMvCameraControl.so环境变量,添加海康相机的动态库到容器中,但是容器里没有,需要下面步骤

在容器里创建路径/opt/MVS/lib/64/

打开另一个终端,将海康相机相关的库拷贝到指定位置

按照官方手册,将海康的库/opt/MVS/lib/64/和源码/opt/MVS/Samples/64/Python/下的py文件...拷贝到一个文件夹中/opt/MVS/Samples/64/Python/MvImportAll,源码内部引用的路径改成相对路径把文件夹拷贝到容器里

docker cp -L /opt/MVS/Samples/64/Python/MvImportAll(本机路径)  (容器id):/opt/MVS/lib/64/(容器内路径)

进入容器

docker exec -it  (容器id) /bin/bash

验证相机能否正常访问

cd /opt/MVS/lib/64

python3 GrabImage.py

如下图:

**改环境变量

直接改容器内部的环境变量,代码内的路径就不用改了,也不用创建新的容器。

vim ~/.bashrc

添加下面几行到.bashrc文件中保存

export MVCAM_SDK_PATH=/opt/MVS

export MVCAM_COMMON_RUNENV=/opt/MVS/lib

export LD_LIBRARY_PATH=/opt/IDMVS/lib/linux64{LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

export LD_LIBRARY_PATH=/opt/MVS/lib/64:/opt/MVS/lib/32:$LD_LIBRARY_PATH

conda activate paddle#这句可以进入命令行后自动进入paddle环境

最后再更新一下 source  ~/.bashrc

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值