海康机器人和海康威视不是通用的平台!需要不同的SDK
一、连接海康机器人的工业相机
1、环境搭建:
不想再安装庞大的MVS,先下载Linux runtime包 机器视觉工业相机SDK V3.2.0版本Runtime组件包(Linux).zip:
然后解压出来
接着执行下面命令安装Lib:
sudo dpkg -i MvCamCtrlSDK_Runtime-3.2.0_armhf_20210915.deb
第一次安装会让设置一个基础路径,我设置的是 : /opt/MVS
可能是我不懂啊,安装后找不到include文件夹,无奈,还是得下载MVS,
下载后,找到对应的文件,将MVS-2.1.0_armhf_20201228/MVS/路径下的include文件夹拷贝到/opt/MVS下面,另外,把Samples、doc文件夹都拷贝出来,用于辅助开发。
2、QT设置
.pro文件中添加包含和库路径:
/opt/MVS/include
LIBS+= -L/opt/MVS/lib/armhf/ -lMVGigEVisionSDK \
-lMvCameraControl \
-lMVRender\
-lFormatConversion\
-lMediaProcess
根据自己的接口添加即可,我现在用的GigE,也可以添加USB。
程序中直接包含头文件即可:
#include "MvCameraControl.h"
二、连接海康网络相机
下载的地址不一样,海康威视的网络相机地址:
需要注册登陆。
选择好对应的版本即可,树莓派4B是对应linux32Bit的版本。
下载的sdk中有incCn和liib两个文件,将他们拷贝到QT工程目录,然后添加路径即可。
另外,还需要将lib的路径添加到环境变量中:
qt库文件添加到环境变量linux,QT程序中使用so动态库,如何设置LD_LIBRARY_PATH环境变量..._codingdie的博客-CSDN博客
三、一些致命问题及解决方案
海康网络摄像仪的SDK是在X86平台上编译的,不支持ARM构架,无法使用其提供的SDK进行流获取,看样子只能用rtsp协议搞了。尝试使用QT+opencv来做吧,参考下面两个博客:
使用AMR9开发板(zedboard)基于opencv读取并处理网络监控相机rtsp视频流_photonfly的博客-CSDN博客