[机器视觉]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

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

相关推荐
桃小桃说科技7 小时前
基于深度学习的障碍物检测系统(YOLOv12完整代码+论文示例+多算法对比)
人工智能·python·目标检测·机器视觉·障碍物检测
格林威11 小时前
AI视觉检测:Jetson Orin vs RTX A2000 推理速度对比
人工智能·数码相机·机器学习·计算机视觉·视觉检测·机器视觉·工业相机
lclin_20204 天前
大恒Galaxy SDK MFC开发(1):枚举、打开、开始_停止采集基础流程(无画面版)
c++·机器视觉·工业相机·大恒相机·galaxysdk
Coovally AI模型快速验证9 天前
建筑外立面多类缺陷自动巡检系统:无人机采集+AI分割+自动报告,剥落检测Recall达98%
人工智能·无人机·机器视觉·工业检测·建筑检测
格林威14 天前
工业相机异常处理实战:断连重连、丢帧检测、超时恢复状态机
开发语言·人工智能·数码相机·计算机视觉·视觉检测·机器视觉·工业相机
刘程云16 天前
AI机器视觉硬件之工业相机
人工智能·机器视觉·工业相机·visionmaster·visionpro·硬件选型·机器视觉调试
MyBFuture19 天前
Halcon条形码与二维码识别全攻略
开发语言·人工智能·halcon·机器视觉
格林威20 天前
Baumer相机金属冲压件毛刺高度测量:量化去毛刺效果的 5 个核心方法,附 OpenCV+Halcon 实战代码!
人工智能·opencv·计算机视觉·c#·视觉检测·机器视觉·工业相机
MyBFuture22 天前
Halcon模板匹配核心技术解析大全
开发语言·人工智能·计算机视觉·halcon·机器视觉
格林威1 个月前
工业相机图像采集:Grab Timeout 设置建议——拒绝“假死”与“丢帧”的黄金法则
开发语言·人工智能·数码相机·计算机视觉·c#·机器视觉·工业相机