[机器视觉]basler相机使用SN编号打开相机和采集

背景分析

在项目中是用basler相机采图时,一般用的比较多的遍历相机,然后使用CreateFirstDevice这个函数获取相机,有些时候可能需要同时连接多个相机,这里一般是遍历后,再循环打开相机,根据打开相机的SN号确定是否是自己需要的相机,但如果设备同时连接了多个相机,我们只使用其中的1到2个,这时遍历打开相机就会出现相机占用情况,而且相机数量多的时候,遍历相机和打开相机也比较耗时。

遍历打开相机

方法一:遍历所有相机,获取相机的SN编码跟配置文件中的SN进行对比,确认后再打开相机。

复制代码
    //输入SN号
    std::string s = snNumber.toStdString();
    DeviceInfoList_t devList;
    //初始化
    PylonInitialize();
    CTlFactory& TlFactory = CTlFactory::GetInstance();
    int camNum = TlFactory.EnumerateDevices(devList);
    for(int i=0;i<camNum;i++)
    {
        QString snName = QString(devList[i].GetSerialNumber());
        if(snNumber == snName)
        {
            Pylon::IPylonDevice* pDevice = CTlFactory::GetInstance().CreateDevice( devList[i]);
            m_basler.RegisterImageEventHandler(this, RegistrationMode_Append, Cleanup_Delete);
            m_basler.Attach(pDevice,Cleanup_Delete);
            m_basler.Open();
            if (!m_basler.IsOpen() || m_basler.IsGrabbing())
            {
                qDebug()<<"camera open failed"<<Qt::endl;
                return;
            }
        }
    }

直接根据SN编码打开相机

方法二:在初始化后,直接将已知SN编号打开相机。

复制代码
    //使用SN编码直接打开相机
    std::string s = snNumber.toStdString();
    PylonInitialize();
    CDeviceInfo info;
    info.SetSerialNumber(s.c_str());
    Pylon::IPylonDevice* pDevice = CTlFactory::GetInstance().CreateDevice(info);
    m_basler.RegisterImageEventHandler(this, RegistrationMode_Append, Cleanup_Delete);
    m_basler.Attach(pDevice,Cleanup_Delete);
    m_basler.Open();
    if (!m_basler.IsOpen() || m_basler.IsGrabbing())
    {
        qDebug()<<"camera open failed"<<Qt::endl;
        return;
    }

#注意事项 #

方法二适合在已确认连接好SN编号的相机的情况下初始化相机,如果找不到相机,则会出现创建相机错误的bug

相对而言,方法一对相机列表进行比对,可获知相机是否存在,然后再进行下一步操作。

相关推荐
LittroInno1 天前
云台相机变焦以后,哪些标定需要重新检查?
相机标定·机器视觉·设备维护·变焦镜头·云台控制
yuhouxiyang2 天前
景深计算公式推导:容许弥散圆、光圈与放大倍率的关系
机器视觉·光圈·景深·景深计算·镜头选型
朗锐智科_机器视觉2 天前
食品包装视觉检测实战:从产线触发到缺陷剔除的完整方案设计
机器视觉·工业相机·硬件选型·图像采集卡·朗锐智科·食品包装
Yan-英杰2 天前
【论文精读】MSD-ResNet50:多尺度动态卷积 + CBAM,如何把梅花鹿个体识别准确率从 74.2% 提升到 88.7%?
人工智能·卷积神经网络·机器视觉
yuhouxiyang3 天前
光圈 F 数与通光量:为什么关小光圈图像会变暗也会变清晰
机器视觉·工业镜头·光圈·景深·f数
LittroInno3 天前
远距巡检怎么选云台相机:先算焦距、视场与目标像素预算
数码相机·机器视觉·巡检·焦距·云台相机·视场角
迁移科技4 天前
最快20分钟上手:Epic Pro软件如何实现3D视觉应用的极速部署
机器视觉·视觉软件·3d工业相机
沐欣工作室_lvyiyi6 天前
基于机器视觉的物流分拣装置设计(论文+源码)
机器视觉·plc仿真·物流分拣·plc毕业设计·兰州工业学院·江苏理工学院
yuhouxiyang7 天前
相机靶面尺寸 1/1.8“、2/3“、1.1“ 到底多大?英寸规格的由来
cmos·机器视觉·工业相机·靶面尺寸·镜头像圈
yuhouxiyang8 天前
对比度、信噪比与动态范围:图像质量的三把尺子
机器视觉·工业相机·信噪比·动态范围·图像质量