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

第七部分 通用相机操作接口

机器视觉和图像处理系统都离不开数字相机来采集视场图像。系统在WINDOWS操作系统上面,我们提供了一个统一的用户接口来使用相机。 这样,应用程序可以很快与不同相机进行通信,和采集图像数据。一般相机的操作使用过程如下:

在RVB里面,相机作为一个普通的硬件处理,通常需要打开才能使用。如:

HANDLE hCamera = rcbCreate (“VfwCam”,NULL, RV_CM_RGB_24);

BOOL ret = rcbOpen(hCamera, 0 ,this->m_hWnd);

上面的语句首先创建一个网络摄像头对象,然后打开索引为0的相机,图像格式为3通道的RGB格式。

打开以后,就可以进行图像采集,不管是触发还是实时采集。下面的语句进行触发采集:

rcbStart(hCamera , TRUE);

在触发状态下,如果要获取当前图像帧,首先应该给出出发信号(如果是软触发的话)。如:

BOOL ret =rcbTrigger(hCamera, 1500);

rcbShot(hCamera, image);

(TIPS: rcbShot的图像对象格式应该与相机对象的格式一致,否则,无法从相机采集当前图像。)

当不需要采集的时候,最好将相机停止掉。如:

rcbStop(hCamera);

如果相机不再使用的话,最好先关闭,然后销毁相机对象。如:

rcbClose(hCamera);

rcbDestroy(hCamera);

7.1相机参数设置

相机参数主要控制图像成像质量,采集速度和采集分辨率等。这些参数的设置通过一个GET/SET函数进行读写,如:

rcbSetParam(hCamera,"Gain", 225);

将当前的相机增益设置为225。

不过,不同厂家的的增益名称可能不一样。

有些参数有最大值或最小值的区间限制,需要调用另一对函数。如:

int max_gain = rcbGetParamMax(hCamera, “Gain”);

如果参数是小数类型的话,需要使用支持小数的函数。如:

float gain = rcbGetParamF32(hCamera, “Gain”);

7.2其他参数设置

对图像有关的参数如图像高度,帧速可以有独立的函数进行设置或读取。如:

rcbSetROI(hCamera, 0, 0, 720, 576);

或者读取当前的帧速 :

float fps = rcbGetFrameRate(hCamera);

这些使用频率比较频繁,独立的函数更方便一些。

目前支持的相机有PICOLO相机,BASLER相机,USB接口的网络摄像头。

附表1

常用模块前缀说明表

更多信息请参考<>

名称 前缀 例子 备注
数字图像 rvi rviGetData, rviGetWidth
错误处理 rve rveSetLastError rvGetLastError 函数例外
动态数据对象 rvd/rsq/rls/rcl rsqRemoveFirst, rvdSetRecyclcer, rclGetCount, rlsAdd 不同的动态数据对象有不同的前缀
视场图形用户接口 rvg rvgSetCurrentLayer, rvgSelectPen
关注区 rpk rpkSetFillColor, rpkGetWidth
模板 rmk rmkGetWidth, rmkGetMatrix
BLOB rvb rvbGetWidth, rvbGetSparse
读数模块 rrd rrdSetInteger, rrdSetFlag
一般函数非对象 rv rvCreateReadingBank, rvTransformToBlob, rvCircular, rvProfile RVB 里面全局对象的全局对象的创建和销毁全部是 rv 开头。

附表2

RVB精华版主要模块功能表

模块名称 说明 库文件 头文件
错误处理 错误处理模块。其他模块里面的错误信息可以从该模块中获得。该模块多线程安全。 eeh.lib rverr.h
数字图像 数字图像创建和建立,一些功能操作,如拷贝、缩放等。也支持 RVB 内部图像格式的转换。 img.lib img.h
输入输出 从磁盘文件或内存区域读取或输出图像,支持不同图像格式如 BMP、JPG 等。 imio.lib imio.h
图形绘制 实现一些几何图形如直线、矩形、圆、的绘制,数字图像的显示。 xgui.lib xgui.h
关注区 一种 ROI 的改进,它可以实现多种形状的 ROI,并且包含多种数据,如 ROI 图像、掩模 pick.lib pick.h
预处理 一般 256 灰度图像的预处理工作,如卷积运算、灰度拉伸、像素操作等等 pprs.lib pprs.h
模板 在某一矩形区域内,哪些像素进行操作,哪些不用。 msk.lib msk.h
二元对象 包括灰度图转化为二值对象时的阈值处理方法,二值对象的进一步处理,等等 blob.lib Blob.h
读数 图像或 BLOB 信息分析时的数据存储空间 rdg.lib rdg.h
图像特征等信息分析 对图像 ROI 进行分析。 anlz.lib anlz.h

附表3

关注区顶点坐标读写索引表

类型 索引值 顶点坐标 图例
方形 0 左上角 x 坐标 方形图例
1 左上角 y 坐标
2 右下角 x 坐标
3 右下角 y 坐标
圆形 0 中心点 x 坐标 圆形图例
1 中心点 y 坐标
2 X 轴半径
3 Y 轴半径
环形 0 中心点 x 坐标 环形图例
1 中心点 y 坐标
2 内半径
3 外半径
弧形 0 中心点 x 坐标 弧形图例
1 中心点 y 坐标
2 起始角度
3 结束角度
4 内半径
5 外半径
多边形 -1 顶点数量 多边形图例
0..n 偶数为顶点的 x 坐标,奇数为顶点的 y 坐标
自定义 0 左上角 x 坐标 自定义图例
1 左上角 y 坐标
2 右下角 x 坐标
3 右下角 y 坐标

附表4

高级类所属模块表

类名 模块名称 库文件 头文件
CWindowDelegate 窗口代理类 Wd.dll, wd.lib Windowdelegate.h
CRealView 独立的视场类 rview.dll, rview.lib Realview.h
CAreaCal 面量规 CaliX.dll, CaliX.lib Areacal.h
CCurveCal 线量规 CaliX.dll, CaliX.lib CurveCal.h
CBlobExtractor 提取 BLOB 对象 CaliX.dll, CaliX.lib Blobextractor.h
CpatternLocater 模式定位 PatMat.dll, PatMat.lib Paternlocator.h
CPixelMatch 模式识别 PatMat.dll, PatMat.lib PixelMatch.h
CDualDetect 正反面识别,双态识别 PatMat.dll, PatMat.lib DualDetect.h
CEasyOcr 简单字符识别 acute.dll, acute.lib EasyOcr.h
CBarcode 条码读取 bcr.dll, bcr.lib bcrr.h
CLabel 文本显示 IndiX.dll, IndiX.lib Label.h
Cline 直线 IndiX.dll, IndiX.lib Line.h
CMark 各种标记 IndiX.dll, IndiX.lib Mark.h
CShape 形状,如圆,方形 IndiX.dll, IndiX.lib Shape.h
CPicture 图像显示 IndiX.dll, IndiX.lib Picture.h
CAnimator 动画显示,仅 gif IndiX.dll, IndiX.lib Animator.h
CTimeLabel 时间显示 IndiX.dll, IndiX.lib Timelabel.h
CRunningLabel 滚动文字的显示 IndiX.dll, IndiX.lib Runninglabel.h

附表5

RVB可以保存和读取的文件格式。

图像格式或后缀名 后缀名 写操作 读操作
Windows 或 OS/2 位图 bmp
Dr. Halo cut
DirectX Surface dds
Graphics Interchange Format gif
High Dynamic Range hdr
Windows Icon ico
IFF Interleaved Bitmap Iff, ibm
JPEG Network Graphics jng
JPEG - JFIF Compliant jpg,jif,jpeg,jpe
KOALA C64 Koala Graphics koa
Multiple Network Portable Bitmpa (ASCII) mng
Portable Bitmap (ASCII) pdbm
RAW Portable Bitmap (RAW) pbm
Kodak PhotoCD pcd
Zsoft Paintbrush pcx
Portable Greymap (ASCII) pgm
RAW Portable Greymap (RAW) pgm
Portable Network Graphics png
Portable Pixelmap (ASCII) ppm
RAW Portable Pixelmap (RAW) ppm
Adobe Photoshop psd
Sun Raster Image ras
Truevision Targa tga,targa
Tagged Image File Format tif,tiff
Wireless Bitmap wap wbmp,wbm
X11 Bitmap Format xbm
X11 Pixmap Format xpm

附表6

支持的条码。

编号 条码编码 二维码
1 intermediate status
2 EAN-8
3 UPC-E
4 ISBN-10 (from EAN-13)
5 UPC-A
6 EAN-13
7 ISBN-13 (from EAN-13)
8 Interleaved 2 of 5
9 Code 39
10 PDF417
11 Code 128
12 QR Code


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

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


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

统计显示 ▼