机器视觉与图像处理
多功能和易用运动控制框架
支持图像模板深度学习

第四节 相机控制

使用统一的接口操作各种厂家的相机。相机操作主要包括拍照采图,设置相机成像参数,设置子窗口大小,实时播放图像。

4.1 相机拍照

相机拍照之前必须保证相机成功打开。相机拍照通常在启动抓图后进行拍照,如:

bool ret = global.camera.Start(Camera.TRIG_SOFT);

RvImage im = new RvImage();

int w = 120;

int h = 129;

int dep = 8;

global.camera.GetDepth(out dep);

global.camera.GetWidth(out w);

global.camera.GetHeight(out h);

im.Create(RvImage.RIT_RGB, w, h);

global.Assert(global.camera.IsOpened(), "相机没有打开");

if (global.camera.FetchImage(im.GetHandle(), 1200)){

// to do something

}

im.Destroy();

global.camera.Stop();

也可以在不启动状态下进行拍照。

4.2 相机参数设置

相机按照参数名称设置参数值。所有的参数值数据类型为整数。

如:

global.camera.SetParam("exposure", 1200);

该语句设置曝光时间为1200。

在设置参数之前也可以通过下面的函数获得相应参数值支持的范围。

global.camera.GetParamMin("exposure", out min_v)

global.camera.GetParamMax("exposure", out max_v);

获得相机的实际参数值,如下:

global.camera.GetParam("exposure", out n );

常用成像参数名称

名称 说明
exposure 曝光时间
gain 增益
bright 亮度(黑白相机)
contrast 对比度(彩色相机)
width 宽度
height 高度

子窗口设置指仅获取指定区域的图像数据,一般子窗口的分辨率小于相机最大成像的分辨率。如下面语句, 获取从水平第100像素,垂直第80像素开始,分别获取宽度为500,高度480像素区域的图像。

int offsX = 100;

int offsY = 80;

int w = 500;

int h =480;

bool ret = global.camera.SetRoi(offsX, offsY, w, h);

4.3 回调方式接收实时图像

以在form显示相机采集的实时图像为例,说明使用回调函数接收相机图像的过程。

回调函数接收图像需要定义delegate函数。如下:

public delegate void FrameArrivalDelegate(IntPtr hCamera, IntPtr pData, UInt64 size, IntPtr pUserData);

定义一个与代理函数参数和返回值一样的实现函数,如下:

public static void FrameArrivalFunc(IntPtr hCamera, IntPtr pData, UInt64 size, IntPtr pUserData)

{

FormPcbSight fps = (FormPcbSight)Form.FromHandle(pUserData);

//显示到RealView控件中

m_sightView.FeedData(pData, size, false);

}

然后声明一个生命周期在整个采集图像期间有效的delegate函数变量。

FrameArrivalDelegate m_faDelegate = new FrameArrivalDelegate(FrameArrivalFunc);

调用相机函数设置回调delegate函数对象。

global.camera.SetFrameArrivalCallback(m_faDelegate, this.Handle);

使用下面函数启动相机。

bool ret = global.camera.Start(Camera.TRIG_NONE);

在计时器时间里面调用下面语句,刷新图像:

m_sightView.Refresh(RealView.UPDATE);



抖音视频号: 第一感机器视觉
微信公众号: 精浦科技
深圳市软云动力科技有限公司
东莞办事处: 广东省东莞市松湖智谷B6栋225b
公司地址: 广东省深圳市南山区桃园路金桃园大厦2191

二维码1 二维码2 二维码3


深圳市软云动力科技有限公司 版权所有  鄂ICP备2022015826号-2   

统计显示 ▼