Files
MdVison_edu/教程内容.md

7.1 KiB
Raw 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赛场调试可能需要故对此部分进行说明。

GTK_Demo 版本

首先安装GTK库

sudo apt install libgtk2.0-dev

之后进入MindVisionSDK/demo/GTK_Demo编译

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

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

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

图八

修改后记得重启虚拟机。

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

Author Simba-Jokit
Date:    2026/6/25