不同工业相机的sdk不同,可以到相应的官网下载,我使用的是大华相机和海康相机

1.ubuntu系统大华工业相机环境配置

2.ubuntu系统海康威视工业相机环境配置

一、大华相机

下载SDK:
官方下载地址:http://download.huaraytech.com/pub/sdk/
推荐下载的是2.2.5的Linux的x86的版本

点击下载


安装:
将下载的压缩包用指令unzip 压缩,.run文件增加可执行权限,然后运行即可打开软件。

解压:unzip MVware
更改文件权限:chmod 777 MVware... (这里是添加可执行权限)

使用root权限进行安装:sudo su
执行某个可执行程序,开始安装:sudo ./[name]
打开软件:找到软件的 .sh文件,从终端进入(运行run.sh)

安装默认位置:/opt/DahuaTech/MVviewer

去/opt/DahuaTech/MVviewer看看安装好了没有

注意:你安装的驱动是大华的还是华睿的,看/opt目录下的名称,DahuaTech是大华,HuarayTech是华睿的

要记得把大华的动态库复制到/usr/lib目录,执行下面命令

lib库配置

cd /opt/DahuaTech/MVviewer/
sudo chmod 777 lib/*
sudo cp  lib/* /usr/lib/
sudo cp  lib/* /lib/
cd /usr/lib 
sudo ldconfig
cd /lib/
sudo ldconfig

echo 'export LD_LIBRARY_PATH=/opt/DahuaTech/MVviewer/lib:$LD_LIBRARY_PATH' >> ~/.bashrc

测试:

打开大华的软件:

/opt/DahuaTech/MVviewer/bin/run.sh


成功打开MVviewer

在这里插入图片描述

在QT中使用大华相机
新建一个QT工程

导入OpenCV的头文件和库:
.pro文件中输入下列opencv路径

INCLUDEPATH +=/usr/local/include/ \
              /usr/local/include/opencv4/ \
              /usr/local/include/opencv4/opencv2
LIBS +=/usr/local/lib/lib*


添加大华头文件和动态库:

刚才下载好的SDK在这个位置: 文件夹—其他位置—计算机  /opt/DahuaTech/MVviewer

将大华目录下的头文件 include 和动态库 lib 复制到qt工程文件夹下

在这里插入图片描述

 将这两个文件导入QT工程中:

在这里插入图片描述
在这里插入图片描述

在.pro文件中配置大华的环境

输入下列代码

INCLUDEPATH +=./include \

LIBS += -L/opt/DahuaTech/MVviewer/lib/ -lMVSDK
LIBS += -L/opt/DahuaTech/MVviewer/lib/ -lImageConvert
LIBS += -L/opt/DahuaTech/MVviewer/lib/ -lVideoRender
LIBS += -L/opt/DahuaTech/MVviewer/lib/GenICam/bin/Linux64_x64/ -lGCBase_gcc421_v3_0 -lGenApi_gcc421_v3_0 -lLog_gcc421_v3_0
LIBS += -L/opt/DahuaTech/MVviewer/lib/GenICam/bin/Linux64_x64/ -llog4cpp_gcc421_v3_0 -lNodeMapData_gcc421_v3_0 -lXmlParser_gcc421_v3_0
LIBS += -L/opt/DahuaTech/MVviewer/lib/GenICam/bin/Linux64_x64/ -lMathParser_gcc421_v3_0


LIBS+=-L/opt/DahuaTech/MVviewer/lib -lMVSDK

添加测试代码

将我经常用的Camera和src的文件复制到工程文件夹下,并将其导入Qt工程中(用下面的代码测试)

这个工程有video.h,   video.cpp 和 main这三个文件

插入大华相机,运行,显示设备信息即成功

完成

在VScode中使用大华相机

写cmakelists.txt的方式:

cmake_minimum_required(VERSION 3.8)

set(PROJECT_NAME vision)
project(${PROJECT_NAME})


find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS}) # -I
include_directories(/opt/DahuaTech/MVviewer/include /opt/DahuaTech/MVviewer/include/GenICam /opt/DahuaTech/MVviewer/include/Media)

add_executable(${PROJECT_NAME} ${SRC_LIST})


link_directories(${OpenCV_LIB_DIRS})  # -L
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS}) # -l

link_directories(/opt/DahuaTech/MVviewer/lib)
target_link_libraries(${PROJECT_NAME} ImageConvert MVSDK MVSDKGuiQt RecordVideo
VideoRender avcodec avfilter avformat avutil log4cpp postproc swresample swscale)

剩下的根据具体情况自己写

二、海康相机

下载SDK:


官方下载地址:海康机器人-机器视觉-下载中心 (hikrobotics.com)

安装命令:

sudo apt install ./MVS-2.1.2....deb
  1. 打开SDK测试:终端输入:“/opt/MVS/bin/MVS.sh”

要记得把海康相机的动态库复制到/usr/lib目录,执行下面命令

lib库配置


cd /opt/MVS/lib
sudo chmod 777 64/*
sudo cp  64/* /usr/lib/
sudo cp  64/* /lib/
cd /usr/lib 
sudo ldconfig
cd /lib/
sudo ldconfig
 
echo 'export LD_LIBRARY_PATH=/opt/MVS/lib/64:$LD_LIBRARY_PATH' >> ~/.bashrc


注意!安装海康相机的驱动可能会导致点云切割的那个包编译报错: symbol lookup error: /lib/x86_64-linux-gnu/libpcl_io.so.1.12: undefined symbol: libusb_set_option

海康相机的驱动可能会影响nav2导航

所以,如果用到ROS2,为了不影响ROS2导航,需要把下面的东西删了(不影响正常使用)
sudo rm -rf  /opt/MVS/lib/64/libusb-1.0.so.0
sudo rm -rf  /opt/MVS/lib/32/libusb-1.0.so.0

qt中测试海康相机

  • 在qt中配置相机环境
  1. 在QT中新建项目,将MVS文件中的include文件复制到项目文件夹下
  2. pro文件:

在项目中添加库,选择外部库,然后选择库文件所在的路径下,选择opt/mvs/lib/64下的所有的 .so文件,一个一个添加

得到以下结果:

DISTFILES += \
    lib/32/CommonParameters.ini \
    lib/32/MvProducerGEV.cti \
    lib/32/MvProducerU3V.cti \
    lib/32/libFormatConversion.so \
    lib/32/libMVGigEVisionSDK.so \
    lib/32/libMVGigEVisionSDK.so.4.1.2.2 \
    lib/32/libMVRender.so \
    lib/32/libMediaProcess.so \
    lib/32/libMvCameraControl.so \
    lib/32/libMvCameraControl.so.4.1.2.2 \
    lib/32/libMvCameraControlWrapper.so \
    lib/32/libMvCameraControlWrapper.so.1.0.1.0 \
    lib/32/libMvUsb3vTL.so \
    lib/32/libMvUsb3vTL.so.4.1.2.2 \
    lib/32/libavutil.so \
    lib/32/libswscale.so \
    lib/32/libusb-1.0.so.0 \
    lib/64/CommonParameters.ini \
    lib/64/MvProducerGEV.cti \
    lib/64/MvProducerU3V.cti \
    lib/64/libCLAllSerial_gcc447_v3_0.so \
    lib/64/libCLProtocol_gcc447_v3_0.so \
    lib/64/libCLSerCOM.so \
    lib/64/libFormatConversion.so \
    lib/64/libGCBase_gcc447_v3_0.so \
    lib/64/libGenCP_gcc447_v3_0.so \
    lib/64/libLog_gcc447_v3_0.so \
    lib/64/libMVGigEVisionSDK.so \
    lib/64/libMVGigEVisionSDK.so.4.1.2.2 \
    lib/64/libMVRender.so \
    lib/64/libMediaProcess.so \
    lib/64/libMvCamLVision.so \
    lib/64/libMvCamLVision.so.4.1.0.3 \
    lib/64/libMvCameraControl.so \
    lib/64/libMvCameraControl.so.4.1.2.2 \
    lib/64/libMvCameraControlWrapper.so \
    lib/64/libMvCameraControlWrapper.so.1.0.1.0 \
    lib/64/libMvUsb3vTL.so \
    lib/64/libMvUsb3vTL.so.4.1.2.2 \
    lib/64/libavutil.so \
    lib/64/liblog4cpp_gcc447_v3_0.so \
    lib/64/libswscale.so \
    lib/64/libusb-1.0.so.0



unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lswscale

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lMvUsb3vTL

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lMVRender

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lMVGigEVisionSDK

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lMvCamLVision

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lMvCameraControlWrapper

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lMvCameraControl

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lMediaProcess

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lLog_gcc447_v3_0

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -llog4cpp_gcc447_v3_0

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lGenCP_gcc447_v3_0

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lGCBase_gcc447_v3_0

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lFormatConversion

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lCLSerCOM

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lCLProtocol_gcc447_v3_0

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lCLAllSerial_gcc447_v3_0

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

unix:!macx: LIBS += -L$$PWD/../../../../../opt/MVS/lib/64/ -lavutil

INCLUDEPATH += $$PWD/../../../../../opt/MVS/lib/64
DEPENDPATH += $$PWD/../../../../../opt/MVS/lib/64

vscode中海康相机的环境

ros2中写cmakelists.txt的方式:

cmake_minimum_required(VERSION 3.8)

# 项目名称
set(PROJECT_NAME autoaim_hik)
# 所有的.cpp源文件  
set(SRC_LIST main.cpp  Camera/vedio.cpp Camera/vedioParam.cpp LOG/log.cpp 
) 

project(${PROJECT_NAME})

find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(OpenCV REQUIRED)
find_package(interfaces  REQUIRED)


# 头文件目录
include_directories( Tool Camera LOG Src Message)
include_directories(${OpenCV_INCLUDE_DIRS}) # -I
include_directories(./include)


# --生成可执行文件
add_executable(${PROJECT_NAME} ${SRC_LIST})

link_directories(${OpenCV_LIB_DIRS})  # -L
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS}) # -l

link_directories(/opt/MVS/lib/64)
target_link_libraries(${PROJECT_NAME} 
swscale MvUsb3vTL MVRender MVGigEVisionSDK MvCamLVision MvCameraControlWrapper MvCameraControl MediaProcess Log_gcc447_v3_0
log4cpp_gcc447_v3_0 GenCP_gcc447_v3_0 GCBase_gcc447_v3_0 FormatConversion CLSerCOM CLProtocol_gcc447_v3_0
CLAllSerial_gcc447_v3_0 avutil
)




install(TARGETS 
${PROJECT_NAME} 
  DESTINATION lib/${PROJECT_NAME})

install(
  DIRECTORY  Camera LOG Message  Src Tool     
  DESTINATION share/${PROJECT_NAME}  
)

ament_target_dependencies(
  ${PROJECT_NAME}
  "rclcpp"
  "interfaces"
)

ament_package()

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐