海康威视工业相机MV-CE060-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

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

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

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

通常情况下,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})
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);

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

  • 0
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值