机器视觉和图像处理系统都离不开数字相机来采集视场图像。系统在WINDOWS操作系统上面,我们提供了一个统一的用户接口来使用相机。 这样,应用程序可以很快与不同相机进行通信,和采集图像数据。一般相机的操作使用过程如下:
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接口的网络摄像头。
常用模块前缀说明表
更多信息请参考<名称 | 前缀 | 例子 | 备注 |
---|---|---|---|
数字图像 | 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 开头。 |
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 |
关注区顶点坐标读写索引表
类型 | 索引值 | 顶点坐标 | 图例 |
---|---|---|---|
方形 | 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 坐标 |
高级类所属模块表
类名 | 模块名称 | 库文件 | 头文件 |
---|---|---|---|
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 |
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 | 否 | 是 |
支持的条码。
编号 | 条码编码 | 二维码 |
---|---|---|
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
深圳市软云动力科技有限公司 版权所有 鄂ICP备2022015826号-2