相机操作的头文件和库文件在pilelibs目录下。头文件在robbase子目录。库文件(dll, lib)在bug子目录。
CCamera类实现支持的相机操作。该类对不同的相机使用相同的接口进行操作,减少开发者开发难度。 相机操作流程一般如下:
相机对象需要显示创建。如:
CCamera cam;
cam.Create(“PylonCam”, 0);
上面语句创建可操作Basler相机的对象,其中第一个参数为相机的动态库中间件名称,第二个参数为像素颜色深度,通常情况下,该参数可以忽略,设置0。 目前支持的相机品牌和动态库中间件名称
库名称 | 品牌 |
---|---|
DahCam | 大恒银河系列工业相机 |
DShowCam | 通用免驱工业相机 |
LusterCam | 凌云工业相机 |
MVCam | 迈德工业相机 |
PylonCam | 巴斯勒工业相机(德国) |
cam.Destroy();
相机创建以后并不能立即工作,需要打开某个物理实体相机,才能进行参数设置和图像采集。如:
CUtString strError;
cam.OpenCam(“topcam”, strError);
上面语句打开名字为topcam的相机,注意:相机的名字需要使用相应厂家的软件工具进行设置。如果当前系统上只有一个相机,可以按照下面的方式进行打开:
cam.OpenCam(0, strError);
如果相机已经打开过,需要在关闭以后重新打开,可以按照下面的方式进行打开:
cam. ReopenCam(strError);
通常情况下, 若干相机不再使用,需要显示关闭,释放相应的资源。如:cam.CloseCam();
常见的参数如曝光时间,增益,对比度使用同一的方式进行设置和读取。如:
cam.SetCamParamter(“gain”, 35);
该语句设置相机的增益为35。
相应地,下面语句读出当前相机的增益:
int n=0;
cam. GetCamParamter(“gain”, &n);除了上面的操作方式,提供了额外的接口函数对相机的宽度和高度参数进行读写。如:
cam.SetRoi(10, 10, 500, 500);
该语句将相机的图像水平和垂直方向分别平移10个像素,图像宽度和高度分别为500。
下面语句可以分别获得图像的宽度和高度和像素颜色深度。
int w=0, h=0, d=0;cam.GetDepth(&d) ;
cam.GetWidth(&w) ;
cam.GetHeight(&h) ;
相机图像画面翻转。如设置相机画面垂直翻转,cam.SetCamParamter(“flip”, RV_DIR_VERT);
参数值 | 说明 |
---|---|
RV_DIR_UNKNOWN | 不进行翻转 |
RV_DIR_VERT | 垂直翻转 |
RV_DIR_HORI | 水平翻转 |
RV_DIR_BOTH | 水平和垂直都进行翻转 |
相机启动以后,可以连续采集图像或触发采集图像。触发采集分软触发和硬触发,硬触发通过相机的接口信号线进行触发。如:
cam.StartCam(RVC_NONE);
该语句使相机开始进行连续图像采集。如果需要软触发启动,按照下面方式启动:
cam.StartCam(RVC_SOFT);
在软触发方式下,需要显示调用下面的函数进行触发采集图像。
int w = 1280; //宽度应该与相机图像采集的宽度一样
int h = 960; //高度应该与相机图像采集的高度一样
int depth=8 //颜色深度应该与图像采集的深度一样
RvImage image = rvCreateImage((depth==8?RIT_GRAY: RIT_RGB), 1280, 960);
RV_ASSERT(image);
cam. TriggerCam(1200);
cam. WaitCam(image , 1200);
rvDestroyImage(image);
也可以在不显示调用TriggerCam触发函数的情况下,使用下面的函数可以自动进行触发采集图像。
cam.Fetch(image, 1200 );
在连续图像采集情况下,开发者可以指定回调函数,自动接收相机传送来的图像。如:
void FrameArrivalCallback (HANDLE hCam, void* pImageData, UINT dataSize, void* pUserData)
{
//处理和显示图像数据
}
cam.SetFrameLoadedCallback(FrameArrivalCallback, NULL);
抖音视频号: 第一感机器视觉
微信公众号: 精浦科技
深圳市软云动力科技有限公司
东莞办事处: 广东省东莞市松湖智谷B6栋225b
公司地址: 广东省深圳市南山区桃园路金桃园大厦2191
深圳市软云动力科技有限公司 版权所有 鄂ICP备2022015826号-2