Files
MdVison_edu/教程内容.md

9.8 KiB
Raw Permalink Blame History

MindVison 摄像头使用简述

前言: 如需访问官方请点击此处 --> MindVision
对于摄像头的使用,我们只要学会如何调用以及如何配置相关相机参数就足够了,其余的部分可以不用了解。倘若你感兴趣也可深入细细品尝!
本教程的内容主要是告诉读者摄像头读取的运作方式以及如何配置摄像头,使得读者有一个基本的认识就行。

目录

第一章 MindVision-SDK安装教程

第一步 获取SDK安装包

输入下面的命令获取MindVision的SDK安装包

wget https://www.mindvision.com.cn/wp-content/uploads/2026/02/linuxSDK_V2.1.0.49202602041120.tar.gz

图一

下载完成之后ls会有一个LinuxSDK

图二

第二步 解压并安装

mkdir MindVisionSDK && cd MindVisionSDK
tar -zxf ~/linuxSDK_V2.1.0.49202602041120.tar.gz

解压完成后,可以获得如下内容

图三

MindVisionSDK/
├── demo/           // 相机的demo程序工程及源码
├── document/       // 有关linuxSDK详细说明在里面
├── tools           // ip配置工具
├── lib             // 各平台使用的SDK库文件x86 x64 arm以及arm64
├── include         // SDK头文件
├── install.sh:     // 安装运行脚本需要root运行
└── 88-mvusb.rules  // USB设备权限修改文件

之后运行install.sh脚本文件(需要root权限)

sudo ./install.sh

图四

显示这样之后就安装OK了接下来重启虚拟机

第二章 MindVision-开发与利用

第零节 环境的搭配

为了方便链接MDVS的CameraApi.h需要能跳转定义的配置请下载插件C/C++如果你环境OK开始demo吧
在vscode快捷键Ctrl+Shift+P,找到 C/C++:编译配置(UI),之后点击进入。将C版本与C++版本调为11。以及对于包含路径,加一句/usr/include/opencv4。之后你会看到左侧目录多了一个.vscode的其下有c_cpp_properties.json。


图六

与此同时,你还会解决这个问题

图五

第一节 demo的运行-浅浅上手

在我们的demo文件夹下存放案例example1.cpp。直接在工作文件夹终端键入xmake run


图七

显示这个错误说明代码成功了!!!!你只是没有连接摄像头。 如果你连接了摄像头,但是很卡顿请阅读虚拟机帧率不高的问题

第二节 深入品鉴demo

MindVision摄像头读取大致流程:

图九

有关所有的错误抛出定义请阅读CameraStatus.h.
下面将简单分析代码作用,对于相机驱动函数的参数请自行阅读CameraApi.h.

    CameraSdkInit(1);             // 相机接口初始化函数
    iStatues = CameraEnumerateDevice(&tCameraEnumList, &iCameraCounts);             // 枚举相机
    iStatues = CameraInit(&tCameraEnumList, -1, -1, &hCamera)                  // 相机初始化
    CameraGetCapability(hCamera, &tCapability);                                // 获取相机内部配置信息
    g_pRgbBuffer = (unsigned char*)malloc(tCapability.sResolutionRange.iHeightMax*tCapability.sResolutionRange.iWidthMax*3);    // 分配与相机内部画面相同的空间!!!
    CameraPlay(hCamera);                   // 启动相机
    CameraSetAeState(hCamera, false);                       // 相机曝光相关的设置......
    setStatues = CameraSetExposureTime(hCamera, 5000);
    CameraSetGain(hCamera, 100, 70, 50);

后面所有有关相机画面设置相关的内容,直接调用函数配置就行。 例如:

iStatues = CameraConnectTest(hCamera);  // CameraConnectTest 检查相机连接状态的函数,

根据函数接口定义进行调用。

/******************************************************/
// 函数名 	: CameraReConnect
// 功能描述	: 重新连接设备用于USB设备意外掉线后重连
// 参数	    : hCamera	   相机的句柄由CameraInit函数获得。
// 返回值   : 成功时返回CAMERA_STATUS_SUCCESS (0);
//            否则返回非0值的错误码,请参考CameraStatus.h
//            中错误码的定义。
/******************************************************/
MVSDK_API CameraSdkStatus CameraReConnect(
    CameraHandle    hCamera
);

关键:对于每次获取画面之后,记得清理调用CameraGetImageBuffer缓冲区。具体细节请参阅CameraGetImageBuffer函数说明!!!
对于正常的工况MindVisionApi给我们提供了摄像头重连、状态检测等等的函数接口我们直接调用就可以用最为简洁的代码提高摄像头连接的抗干扰能力

第三节 对于一些关键接口的列表

函数名 作用
CameraSetAeState 设置相机曝光的模式。自动或者手动。(如果需要自定义曝光一定要先设置为手动)
CameraSetExposureTime 设置曝光时间。单位为微秒。
CameraSetFrameSpeed 设定相机输出图像的帧率。
CameraCreateSettingPageEx 创建该相机的属性配置窗口。调用该函数SDK内部会帮您创建好相机的配置窗口
CameraReConnect 重新连接设备用于USB设备意外掉线后重连
CameraConnectTest 测试相机的连接状态,用于检测相机是否掉线
CameraSetImageResolution 设置预览的分辨率。

至此摄像头使用已大致讲述完毕,有任何问题请在飞书联系,谢谢

&补充

1.对于Linux下官方程序的编译与应用(GTK-demo / QT-demo)

前言 考虑到队员们的系统都为Windows虚拟机与MindVision摄像头连接不畅不考虑安装官方Linux的驱动程序对于镜头参数的调节我的观点是在Windows的驱动程序MVDCP2上进行图像调节再将对应参数修改考虑到NUC为Linux赛场调试可能需要故对此部分进行说明。

1.1 GTK_Demo 版本

首先安装GTK库

sudo apt install libgtk2.0-dev

之后进入MindVisionSDK/demo/GTK_Demo编译

cd MindVisionSDK/demo/GTK_Demo
make clean
make
./Gtk_Demo      // 开始运行

make clean可能会报如下错误
图十
原因:源码包里的 Makefile 是在另一个环境下生成的,与你的系统不匹配,导致 .deps/ 目录缺失。

# 1. 清理旧的生成文件
make distclean 2>/dev/null || true
rm -rf autom4te.cache .deps Makefile Makefile.in config.status config.log

# 2. 重新生成 configure 脚本和 Makefile.in
autoreconf -fi

# 3. 配置
./configure

# 4. 编译
make

# 5.运行demo
./GTK_demo

如果还会报如下问题,就是你的 摄像头没有连接 以及你没有将 USB3.0 配置好。

// GTK 音频模块,不影响相机功能,只是没有系统提示音。这个错误可以忽略。
Gtk-Message: Failed to load module "canberra-gtk-module"

// CXPCoaXPress接口 的驱动文件。这个错误可以忽略。
CtiPath: /usr/lib/fg_cxp.cti is error or system not find
CXP system count:0

// 相机连接失败,最终检测到 0 个相机。
DetectMSDevice......................
MSCamera Begin link........................
user control fd open failed
BackWorkerStop
begin destory msdevice
end destory msdevice
End DetectMSDevice
iCameraCounts =0

解决上述问题之后运行./GTK_demo要选择第几个相机默认按0开始输入0 回车 打开第一个相机

1.2 QT-demo 版本

首先安装QT5基础安装包QT4版本的demo就不用了

sudo apt update
sudo apt install build-essential qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
sudo apt install qtcreator

// 进入Qt
qtcreator &

之后在QT里面选择打开QT5_demo里面的.pro文件,之后在确保摄像头连接的情况下点击Run.
图十一

2.虚拟机帧率不高的问题

2.1物理连接问题

迈德相机是USB3.0下才可以高帧率你可以通过观看你的电脑USB颜色初略判断蓝色都为USB3.0以上。还有方法为通过Windows版的驱动软件通过将曝光拉低来看帧率是否提升以判断你的接口是否为3.0以上。
图十二
观测显示帧率如果将曝光拉到3左右至少150+

2.2 配置问题

在虚拟机中默认的接口为USB2.0MindVision摄像头高帧率需使用USB3.0及以上。

图八

修改后记得重启虚拟机。

............... 未完待续

Author Simba-Jokit
Date:    2026/6/25