• Dalsa相机SDK


    1、使用的库类总结如下:

    SapLocation类——设备的连接地址

    SapAcquisition类——采集设备

    SapBuffer类——缓存对象

    SapTransfer类——传输对象

    SapView类——显示缓存

    其中需要注意的是SapAcquisition类操作的是与采集卡相连的设备,SapAcqDevice类操作的是直接与电脑相连的设备(如网口相机)

    2、相机采集的控制

    首先使用SapTransfer类创建指针对象*m_Xfer,之后进行如下控制:

    开始采集:m_Xfer->Grab();

    停止采集:m_Xfer->Freeze();

    单张抓拍:m_Xfer->Snap();

    3、参数获取

    通过SapAcquisition类,可以获取一些参数,需要注意的是val的类型必须与featureName所对应的值类型一致,否则报错。

    m_Acq->GetFeatureValue(featureName, out val));

    常用参数统计如下:

    4、SapBuffer类

    SapBuffer类是图像处理中最重要的类,其中包含了具有相同维度、格式和类型的缓冲区资源。SapBuffer类对象可以使用SapView类显示并使用SapProcessing类处理。

    程序中对SapBuffer类的图像定义了默认参数,如下图所示:

    从上图中可以看出,默认的尺寸是640×480,位深8位,缓存数1张,

    最常使用的构造函数如下:

    SapBuffer(int count = SapDefBufferCount, int width = SapDefWidth, int height = SapDefHeight, SapFormat format = SapDefFormat, Type type = SapDefBufferType, SapLocation loc = SapLocation::ServerSystem);

     构造函数的参数可以用结构体的形式统一赋值,而不必单独赋值。其中的宽高可以从ccf中设置,如果ccf没有指定,则默认大小640×480。

    SapBuffer有3中创建方式:

    ① 通过指针创建,也是最常用的方式

    SapBuffer *pBuffer = new SapBuffer(1, 640, 480);
    if (pBuffer->Create())
    {
       // 对buffer进行处理
    }
    //注意释放
    if (*pBuffer)
    {
       pBuffer->Destroy(); //销毁缓存区资源
    }
    delete pBuffer; //释放内存
    pBuffer = NULL; //置位

    ② 堆栈上创建

    SapBuffer buffer(1, 640, 480);
    if (buffer.Create())
    {
    // 对buffer进行处理
    // 如果buffer不再使用
    buffer.Destroy(); //销毁缓存区资源
    }
    //超出作用域,对象的内存自动销毁,不需要再手动销毁。

    ③ 从已有对象创建

    从MFC的strFilePath的内存中创建
        USES_CONVERSION; //CString 转char*
        char* image=T2A(strFilePath.GetBuffer(0));
        m_Buffers=new SapBuffer(image);
    释放参照方式①。

    5、实战,参考我的github

    【参考】

    https://www.cnblogs.com/lgyup/p/4313332.html

    https://www.docin.com/p-44962289.html

  • 相关阅读:
    JSP第二次作业
    软件测试课堂练习
    内容提供者读取短信信息
    购物车
    第六周jsp
    第四周jsp
    第一周 软件测试
    第八次安卓
    安卓第七次作业
    安卓第六次作业
  • 原文地址:https://www.cnblogs.com/xixixing/p/14230791.html
Copyright © 2020-2023  润新知