当前位置:   article > 正文

海康威视工业相机MV-CE060-10UC使用指北_mv-cu060-10uc说明书

mv-cu060-10uc说明书

海康威视工业相机MV-CE060-10UC使用指北

海康威视工业面阵相机MV-CE060-10UC非UVC设备,欲使用该工业相机进行二次开发,需使用MVS机器视觉工业相机客户端。本文以x86架构下Linux系统为例,具体操作系统为Ubuntu 20.04,介绍该工业相机的使用方法。

设备参数简介

海康威视工业面阵相机MV-CE060-10UC的具体性能参数如下:

条目
传感器类型CMOS,卷帘快门
传感器型号IMX178
像元尺寸2.4 µm×2.4 µm
靶面尺寸1/1.8"
分辨率3072×2048
最大帧率42.7 fps@3072×2048
动态范围71.3 dB
信噪比41.3 dB
增益0 dB ~20 dB
曝光时间24 μs ~ 1 sec
快门模式支持自动曝光、手动曝光、一键曝光以及 Global Reset
黑白/彩色彩色
像素格式Mono 8/10/12 Bayer RG 8/10/10p/12/12p YUV422Packed,YUV422_YUYV_Packed RGB 8,BGR 8
Binning支持 1×1,2×2
下采样不支持
镜像支持水平镜像

资料下载

技术资料下载

工业相机MVS下载(本文使用MVS V2.1.1 Linux为例)

MVS安装

将MVS_STD_GML_V2.1.1_211224.zip下载到本机,将其解压可得到aarch64, armhf, i386, x86_64等不同架构下的安装包,本文选择x86_64 deb包,使用dpkg安装。如使用aarch环境,则使用 MVS-2.1.1_aarch64_20211224.deb 这个包

$ unzip MVS_STD_GML_V2.1.1_211224.zip
$ sudo dpkg -i MVS-2.1.1_x86_64_20211224.deb
  • 1
  • 2

等待安装完毕,默认情况下该软件安装到 /opt/MVS/

使用以下命令打开MVS应用程序

$ /opt/MVS/bin/MVS.sh
# 若出现无法打开的问题,尝试切换到 /opt/MVS/bin/ 目录下重试
$ cd /opt/MVS/bin/
$ ./MVS.sh
  • 1
  • 2
  • 3
  • 4

通常情况下,MVS应用程序供初次使用该相机时调试相机参数使用,例如曝光时间,增益参数等,这样在二次开发时无需重新设置参数。但是请注意,设置好的参数在相机断电后不会保存,所以应及时保存用户设置,如需下次上电后自动选择之前的参数,应在MVS应用程序中做设置。

代码指北

本文介绍如何从MV工业相机中采集图像,转换到OpenCV(本文以3.4.5为例) cv::Mat图像格式,便于进一步开发。

在进行编程之前,应在编译规则中加入(以CMake为例):

include_directories(/opt/MVS/include/)
link_directories(/opt/MVS/lib/64/)
# 若在 aarch 架构下使用,请使用 link_directories(/opt/MVS/lib/aarch64/)
target_link_libraries(${PROJECT_NAME} 
MvCameraControl)
# 由于使用了OpenCV,也应加入:
find_package(OpenCV 3 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
MV工业相机的使用遵循以下流程:

枚举设备 => 选择设备并创建句柄 => 打开设备 => 注册抓图回调 => 开始取流 => (回调函数逻辑)=> 停止取流 => 关闭设备 => 销毁句柄

在MVS安装好后,将能够调用摄像头相关的API,常用API如下:

// 头文件
#include "MvCameraControl.h"
#include "opencv2/core.hpp"

int deviceIndex = 0;
void *handle = nullptr;
MV_CC_DEVICE_INFO_LIST stDeviceList;
MVCC_INTVALUE stParam;
unsigned char *pData;
cv::Mat curFrame;

// 回调函数
void __stdcall ImageCallBackExForBGR8(unsigned char *pData, MV_FRAME_OUT_INFO_EX *pFrameInfo, void *pUser) {
	curCamera->curFrame = cv::Mat(pFrameInfo->nHeight, pFrameInfo->nWidth, CV_8UC3, pData);
}

// 枚举设备
memset(&stDeviceList, 0, sizeof(MV_CC_DEVICE_INFO_LIST));
MV_CC_EnumDevices(MV_GIGE_DEVICE | MV_USB_DEVICE, &stDeviceList);

if (stDeviceList.nDeviceNum > 0) {
		for (int i = 0; i < stDeviceList.nDeviceNum; ++i) {
			printf("[device %d]:\n", i);
			MV_CC_DEVICE_INFO *pDeviceInfo = stDeviceList.pDeviceInfo[i];
		}
	} else {
		printf("Find No Devices!\n");
	}

// 选择设备并创建句柄
MV_CC_CreateHandle(&handle, stDeviceList.pDeviceInfo[deviceIndex]);

// 打开设备
MV_CC_OpenDevice(handle);

// 注册抓图回调
MV_CC_RegisterImageCallBackForBGR(handle, ImageCallBackExForBGR8, handle);

// 开始取流
MV_CC_StartGrabbing(handle);
MV_FRAME_OUT_INFO_EX stImageInfo = {0};
memset(&stImageInfo, 0, sizeof(MV_FRAME_OUT_INFO_EX));
pData = (unsigned char *)malloc(sizeof(unsigned char) * stParam.nCurValue);

// 停止取流
MV_CC_StopGrabbing(handle);

// 关闭设备
MV_CC_CloseDevice(handle);

// 销毁句柄
MV_CC_DestroyHandle(handle);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

详细使用方法已上传到Gitee,并且已封装好。参见https://gitee.com/shenhaoyuan/hikrobot-mvcamera

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/754052
推荐阅读
相关标签
  

闽ICP备14008679号