Qt+BASLER相机+OpenCV

您所在的位置:网站首页 巴斯勒相机设置时间 Qt+BASLER相机+OpenCV

Qt+BASLER相机+OpenCV

2024-07-10 19:25:52| 来源: 网络整理| 查看: 265

一、准备工作

相机型号:BASLER acA 1920-40gc

软件:pylon5,Qt,

用开发者模式安装pylon后,找到 Basler\pylon 5\Development\Samples\C++ 文件夹,我选择的是默认安装,所以路径是C:\Program Files\Basler\pylon5\Development\Samples\C++打开工程因为我的相机是GigE接口,所以我打开PylonSamples_GigE.sln编译就可以运行啦

二、示例工程

http://blog.csdn.net/u013351270/article/details/54290452

里边自带很多示例工程,工程的名字及作用如下:

DeviceRemovalHandling 这个示例程序演示了如何移除相机设备。它还显示如何重新连接到已删除的设备.。Grab 这个例子演示了如何抓取过程中采用cinstantcamera类图像。图像是抓住和异步处理,当应用程序处理一个缓冲区,缓冲区的下一个收购是平行进行的,cinstantcamera类使用一个缓冲池,从摄像头获取图像数据。缓冲区填充完毕后,可以从相机对象检索缓冲区进行处理.。在抓取结果中收集缓冲区和附加图像数据。抓取结果由智能指针在检索后保持.。当显式释放或智能指针对象被销毁时,缓冲区将自动重复使用.。Grab_camera_EventsGigE :在这个示例中显示了如何注册指示摄像机发送的事件到达的事件处理程序。 为了演示目的,为同一个事件注册了几个不同的处理程序。Grab_ChunkImage Basler相机提供块特征:相机可以生成每个图像的某些信息,如帧计数器,时间戳,和CRC校验,这是附加到图像数据的“块”。此示例说明如何启用块特性、如何抓取图像以及如何处理附加数据.。当相机处于块模式时,它将被划分成块的数据块传输.。第一个块总是图像数据.。当启用块特性时,图像数据块后面的块包含包含块特征的信息.。Grab_MultiCast.cpp  此示例演示如何在多播模式下打开照相机以及如何接收多播流。Grab_MultipleCameras 这个例子演示了如何抓取和处理来自多个摄像机的图像,使用cinstantcameraarray类。 Grab_Strategies 这个例程显示了使用即时相机抓取策略。Grab_UsingBufferFactory此示例演示用户提供的缓冲工厂的使用.。 缓冲工厂的使用是可选的,仅用于高级用例.。如果您打算抓取外部提供的缓冲区,则只需要缓冲工厂.。Grab_UsingExposureEndEvent 此示例演示如何使用曝光结束事件以加快图像获取.。例如,当传感器曝光完成后,相机可以发送一个曝光结束事件的PC。PC可以接收事件之前的图像数据的成品曝光已被完全转移。这可以用来避免不必要的延迟,例如在相关的图像数据传输完成之前,成像对象被进一步移动。Grab_UsingGrabLoopThread 此示例说明如何使用即时照相机类提供的抓取循环线程来抓取和处理图像.。 按下T获取一幅图像GUI_ImageWindow 这个例子演示了如何显示图像使用cpylonimagewindow类。在这里,图像被抓取,分割成多个瓦片,每个平铺显示在一个单独的图像窗口。ParametrizeCamera_AutoFunctions 本示例说明如何使用Basler相机的“自动功能”功能。ParametrizeCamera_Configurations此示例演示如何通过使用标准配置和注册示例配置事件处理程序来使用配置事件处理程序。ParametrizeCamera_GenericParameterAccess.本示例演示使用genapi节点图的genapi表示配置相机的“通用”的方法::inodemap接口。名称和参数节点类型可以在巴斯勒塔程序员指南和API参考,在相机的用户手册,相机中的文件登记的结构和访问方法(如果适用),并利用塔查看器工具  x y offsetheight widthParametrizeCamera_LoadAndSave 保存和读取相机参数!先读取后保存ParametrizeCamera_LookupTable  本示例程序演示了使用亮度查找表功能。ParametrizeCamera_NativeParameterAccess 此示例显示了使用设备特定的即时相机类配置相机的“原生”方法。ParametrizeCamera_Shading  只有线阵相机支持ParametrizeCamera_UserSets  演示如何使用用户配置集(用户集)以及如何配置摄像机以用户set1的用户定义设置启动。 您也可以使用pylon Viewerand配置您的相机,并将您的自定义设置存储在您选择的用户组中Utility_GrabAvi.  本示例说明如何以音频视频交错(AVI)格式创建视频文件。Utility_Image 本示例说明如何使用pylon图像类CPylonImage和CPylonBitmapImage。 Utility_ImageFormatConverter  本示例演示了如何使用图像格式转换器类CImageFormatConverter。Utility_ImageLoadAndSave 本示例说明如何加载和保存图像。 三、Pylon结构与枚举

参考:http://blog.csdn.net/liyuanbhu/article/details/74613768

四、Pylon5 SDK开发

参考:http://www.cnblogs.com/star91/p/6747946.html

在.pro文件中添加如下代码,注意前提是OpenCV的库也要配好,如果没有配,参考之前的文章配置http://blog.csdn.net/zong596568821xp/article/details/78819275:

OpenCV环境:

INCLUDEPATH += C:\opencv\opencv\build\include \ C:\opencv\opencv\build\include\opencv \ C:\opencv\opencv\build\include\opencv2 \ win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../opencv/opencv/build/x64/vc14/lib/ -lopencv_world320 else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../opencv/opencv/build/x64/vc14/lib/ -lopencv_world320d else:unix: LIBS += -L$$PWD/../../../../opencv/opencv/build/x64/vc14/lib/ -lopencv_world320 INCLUDEPATH += $$PWD/../../../../opencv/opencv/build/x64/vc14 DEPENDPATH += $$PWD/../../../../opencv/opencv/build/x64/vc14

Pylon环境:

INCLUDEPATH += \ $$(PYLON_DEV_DIR)/include \ $$(PYLON_DEV_DIR)/include/pylon LIBS += \ -L$$(PYLON_DEV_DIR)/lib/x64

注意如果电脑是64位系统,要添加x64的LIBS,如果电脑是32位,则添加Win32的LIBS

使用Pylon5 SDK搭配OpenCV采集图像程序流程如下:

在mainwindow.cpp中添加如下代码,该工程使用Basler acA1920-40gc GigE 相机测试成功。

#include "mainwindow.h" #include "ui_mainwindow.h" //定义是否保存图片 0-否 1-是 #define saveImages 1 //定义是否记录视频 0-否 1-是 #define recordVideo 1 // 加载OpenCV API #include #include #include //加载PYLON API. #include #include #include #ifdef PYLON_WIN_BUILD #include #endif //命名空间. using namespace Pylon; using namespace cv; using namespace std; //定义抓取的图像数 static const uint32_t c_countOfImagesToGrab = 10; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // read an image //cv::Mat image = cv::imread("d://1.jpg", 1); // create image window named "My Image" //cv::namedWindow("My Image"); // show the image on window //cv::imshow("My Image", image); //Pylon自动初始化和终止 Pylon::PylonAutoInitTerm autoInitTerm; try { //创建相机对象(以最先识别的相机) CInstantCamera camera(CTlFactory::GetInstance().CreateFirstDevice()); // 打印相机的名称 std::cout GrabSucceeded()) { // 获取图像数据 cout


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭