Basler acA1300-200uc相机使用教程
https://www.baslerweb.com/cn/products/cameras/area-scan-cameras/ace/aca1300-200uc/
开发文档
https://zh.docs.baslerweb.com/aca1300-200uc
pylon库(C++)
主要示例功能说明
https://blog.csdn.net/juliarjuliar/article/details/79457719
CameraEventPrinter.h
//包含一个为每一个事件函数输出一条消息的一个相机事件处理器
ConfigurationEventPrinter.h
//包含一个为每一个事件函数输出一条消息的一个配置事件处理器
ImageEventPrinter.h
//包含一个为每一个事件函数输出一条消息的一个配置事件处理器
PixelFormatAndAoiConfiguration.h
//包含一个设置像素数据格式和图像AOI的配置
SampleImageCreator.h
//包含创建示例图片的函数,有必要的话转换图像格式为目标格式
DeviceRemovalHandling
//说明如何获得相机设备移除通知及如何重新连接一个移除的设备
Grab
//说明如何使用CInstantCamera类来抓取和处理图像,图像抓取和处理同步进行
Grab_CameraEvents
//说明在相机事件消息收到之后怎么被通知,这些事件会被InstantCamera类自动检索和处理,这些被事件消息装载的信息会在相机节点地图里以参数节点的形式予以公开
Grab_ChunkImage
//如何使用块特征,如何抓取图像及如何处理这些额外的数据。当相机处于分块模式时,它会传输被分为分块的数据块
Grab_MultiCast
//说明以多播模式打开一个相机,以及如何接收一个多播流。实例必须在不同的电脑上同时开始
Grab_MultipleCameras
//说明使用 ClnstantCameraArray 类从多个相机抓取和处理图像的方法。ClnstantCameraArray 类表示当前相机设备对象的一个数组,它提供和 instant camera 基本一致的用于图像抓取的接口
Grab_Strategies
//说明当前相机抓取策略的使用
Grab_UsingExposureEndEvent
//说明如何使用 Exposure End 事件加速图像获取的方法
Grab_UsingGrabLoopThread
//说明使用 Instant Camera 相机类提供的抓取循环线程抓取和处理图像的方法。
Grab_UsingSequencer
//用于展示使用相机的序列特征抓取图像的方法
GUI_ImageWindow
//说明使用 cpylonImageWindow类显示图像的方式。在此,图像被抓取,分割成多个分片,每个分片在独立窗口显示
ParametrizeCamera_AutoFunctions
开发步骤
https://blog.csdn.net/weixin_44840658/article/details/89325995
1、首先需要初始化Pylon,即调用PylonInitialize();
2、在一个try{} catch(){}语句中进行打开相机的相关操作。
3、调用相机的传输层工厂类定义一个工厂类的引用,并初始化它,也就是CTlFactory& tlFactory = CTlFactory::GetInstance();
4、得到所有连接的pylon相机,DeviceInfoList_t devices; tlFactory.EnumerateDevices(devices);
5、创建一个相机实例数组,CInstantCameraArray cameras(min(devices.size(), c_maxCamerasToUse));
6、在一个for循环当中把所有检测到的相机附加到相机实例数组当中,cameras[i].Attach(tlFactory.CreateDevice(device[i]));
7、两个相机开始抓取图像,病定义一个存取抓取结果的变量,cameras.StartGrabbing(); CGrabResultPtr ptrGrabResult;
8、for循环控制抓取的图片数量,在循环内定义一个可以标志相机序列的变量,然后通过cameras数组访问相机的相关数据即可
9、最后终止Pylon相机,即调用PylonTerminate
#include <pylon/PylonIncludes.h>
using namespace Pylon;
using namespace std;
static const uint32_t c_countOfImagesToGrab = 10;
static const size_t c_maxCamerasToUse = 2;
int main(int argc, char* argv[])
{
int exitCode = 0;
PylonInitialize();
try {
CTlFactory& tlFactory = CTlFactory::GetInstance();
DeviceInfoList_t devices; if ( tlFactory.EnumerateDevices(devices) == 0 )
{
throw RUNTIME_EXCEPTION( “No camera present.”);
}
CInstantCameraArray cameras( min( devices.size(), c_maxCamerasToUse));
cout << "devices.size(): " << devices.size() << endl;
for ( size_t i = 0; i < cameras.GetSize(); ++i)
{
cameras[ i ].Attach( tlFactory.CreateDevice( devices[ i ]));
cout << "Using device " << cameras[ i ].GetDeviceInfo().GetModelName() << endl;
}
for( uint32_t i = 0; i < c_countOfImagesToGrab && cameras.IsGrabbing(); ++i)
{
cameras.RetrieveResult( 5000, ptrGrabResult, TimeoutHandling_ThrowException);
intptr_t cameraContextValue = ptrGrabResult->GetCameraContext();
cout << "Camera " << cameraContextValue << ": " << cameras[ cameraContextValu].GetDeviceInfo().GetModelName() << endl;
cout << "GrabSucceeded: " << ptrGrabResult->GrabSucceeded() << endl;
cout << "SizeX: " << ptrGrabResult->GetWidth() << endl;
cout << "SizeY: " << ptrGrabResult->GetHeight() << endl;
const uint8_t *pImageBuffer = (uint8_t *) ptrGrabResult->GetBuffer();
cout << "Gray value of first pixel: " << (uint32_t) pImageBuffer[0] << endl << endl;
}
}
catch (const GenericException &e)
{
cerr << “An exception occurred.” << endl << e.GetDescription() << endl;
exitCode = 1;
}
cerr << endl << “Press Enter to exit.” << endl;
while( cin.get() != ‘\n’);
PylonTerminate(); return exitCode;
}
硬件接口
机械图纸https://www.baslerweb.com/cn/sales-support/downloads/document-downloads/basler-ace-usb3-c-mount-cad-technical-drawing/
3D打印支架https://www.baslerweb.com/cn/sales-support/downloads/document-downloads/blaze-ace-mounting-bracket-step-stl-model/
引脚 | 线路 | 功能 |
---|---|---|
1 | Line 3 | 通用 I/O (GPIO) 线路 |
2 | Line 1 | 光电耦合 I/O 输入线路 |
3 | Line 4 | 通用 I/O (GPIO) 线路 |
4 | Line 2 | 光电耦合 I/O 输出线路 |
5 | - | 光电耦合 I/O 线路接地 |
6 | - | 通用 I/O (GPIO) 线路接地 |
光电耦合输入电路
GPIO 输入线路
https://zh.docs.baslerweb.com/circuit-diagrams-(ace)
https://zh.docs.baslerweb.com/aca1300-200uc#general-purpose-io-lines
https://blog.csdn.net/IntegralforLove/article/details/94722689
Basler acA1300-200uc相机使用教程的更多相关文章
- ROS与深度相机入门教程-在ROS使用kinect v1摄像头
ROS与深度相机入门教程-在ROS使用kinect v1摄像头 说明: 介绍在ros安装和使用kinect v1摄像头 介绍freenect包 安装驱动 deb安装 $ sudo apt-get in ...
- 关于basler线阵相机和Mtrox采集卡的安装
说明: 本系列博文是我自己研究生课题,采用做一步记录一步,在论文答辩结束或者机器设计结束之后才会附上源代码! 以前都是用opencv,直接拿个照片去处理,基本都是软件的使用,这次做课题要用到Matro ...
- 【视频开发】【计算机视觉】相机标定(Camera calibration)原理、步骤
相机标定(Camera calibration)原理.步骤 author@jason_ql(lql0716) http://blog.csdn.net/lql0716 在图像测量过程以及机器视觉应用 ...
- Pylon5 SDK搭配OpenCV使用入门
本文假设已经安装了Basler官网提供的Pylon 目前最新的版本是5.0.5,如果上述链接打不开,请直接所有Basler官网下载,需要注意的是在安装Pylon5时要选择Developer模式,这样才 ...
- 深度相机Astra Pro测试教程
最近在微信群内,很多群友在群友的推荐下,购买了Astra pro的深度相机,价格地道,物超所值!群友反馈积极,所以这里出一波简单的教程. 以下内容知识抛砖引玉,主要讲解windows下和Ubunt ...
- 【技术贴】三星Note8 N5100实用教程,关闭相机快门声,增加浏览器退出按钮。
需要root 增加快门声按钮: 在\system\csc\目录下,有个others.xml的手机功能定制文件,用root explorer之类可以修改系统文件权限的文本修改工具编辑它,在文件最末添加这 ...
- basler 相机拍照简单类综合Emgu.CV---得到图档
在网上找了半天都是下载要钱,自己试做了,经测试能ok,一起分享吧.给初学的人一点鼓励. using System;using System.Collections.Generic;using Syst ...
- DALSA相机SDK不完全教程
1.SDK介绍 Dalsa是全球顶尖的CCD/CMOS芯片和相机制造商,总部位于加拿大,我使用的是 Dalsa的 Genie_TS_M1920(黑白)和 Genie_TS_C2048(彩色)两款工业相 ...
- Opencv 张正友相机标定傻瓜教程
注: 程序所用的OpenCV版本是 2.4.10 ,3.0以上的版本可能会有不同 先贴一下完整的工程代码: #include "opencv2/core/core.hpp" #in ...
随机推荐
- Welcom to my studyspace! 欢迎来到我的学习空间!
由于新手,博客才刚开始起步,用于记录我的学习,博客的建设后续需要将其完善 对我的博客进行diy 用于分享我的学习经历,一些笔记,还有一些小小的心得
- Eclipse插件开发demo
一.安装 1. 下载安装JDk 2. 下载安装PDE(Plugin-in Development Environment) 访问eclipse官网,点击Download,选择Download Pack ...
- awvas启动不起来解决方案
当双击桌面的"Acunetix图标",自动打开浏览器跳转页面,结果页面显示"无法访问此网站"按Windows+R键输入services.msc打开服务界面查看A ...
- [数分笔记]用Dedekind切割定理证明确界定理
1.定理内容 Dedekind切割定理:设是实数集的一个切割,则或者有最大数,或者有最小数. 确界定理:非空有上界的数集必有上确界,非空有下界的数集必有下确界. 2.证明过程 设非空数集有上界 记,即 ...
- 【信而泰】网络损伤仿真,为5G应用保驾护航
5G,绝对是今年最热门的话题!2019年6月6日,工信部正式向中国电信.中国移动.中国联通.中国广电发放5G商用牌照,中国正式进入5G商用元年.5G不仅仅是一次通信技术的升级,更是开启了一个新的时代. ...
- 学习Spring5必知必会(6)~Spring DAO
一.Spring 对持久层技术的支持 Spring DAO 1.模板类: 2.基类: 二.spring JDBC [JDBCTemplate 模板类] 1.案例:使用jdbc 完成crud操作 (1) ...
- 【C# Task】System.Threading.Channels 生产者和消费者模式
前言 今天给大家分享一个微软官方的生产者/消费者方案的特性解决:Channel. Channel在% dotnet add package System.Threading.Channels 而在Co ...
- 使用ODBC连接MySQL和EXCEL
1.安装ODBC 安装MySQL的时候,可以直接把ODBC一并安装了.如果没有安装的话,则在 https://dev.mysql.com/downloads/connector/odbc/ 下载相应的 ...
- dbeaver安装配置
安装出现库依赖没有,可以添加maven仓库 修改字体:小四
- 由浅入深--ORM简介
一.ORM简介 从传统的JDBC开始说起 下面是通过JDBC连接Oracle的步骤,如下代码所示: Connection conn = null; PreparedStatement stmt = n ...