BASLER Pylon 抓取策略
( 涛哥工业技术 微信号 TaoRobotics)
One by One Grab Strategy 逐个抓取策略
当使用 one by one 抓取模式时,图像按其获取顺序处理。
- 相机抓取引擎实例将空缓存队列中的缓存取消,并将空缓存排入低级别API流抓取器(1)。
- 相机设备被触发(2)。相机设备获取图像,图像被传输到计算机,然后抓取到一个空的缓存中。
- 相机抓取引擎实例线程被通知一个被填充缓存可用。此填充缓存被抓取引擎线程(3)接收,并将其放入到输出队列。
- 在RetrieveResult () 方法中等待的应用程序线程被通知到,它停止等待抓取结果并接收填充的缓存(4)作为抓取结果数据对象的一部分。
- 抓取结果数据对象由抓取结果智能指针保持。在应用程序处理完图像数据后,填充的缓存被返回到空缓存队列(5)。这是通过抓取结果智能指针析构器或显式释放抓取结果数据对象来完成的。返回的缓存再次用于抓取。
Latest Image Only Grab Strategy 仅抓取最新图像策略
仅抓取最新策略不同于按输出队列的大小的逐个抓取策略。输出队列的小大只有1个缓存。如果已抓取新的缓存并且输出队列中已有缓存等待,则输出队列中等待的缓存将自动返回到空缓存队列(4.1)。然后新将新填充的缓存放入到输出队列。这确保始终将最新的抓取图像提供给应用程序。自动返回到空缓存队列的图像称为跳过图像。
Latest Images Strategy 最新图像策略
最新图像策略扩展了上述两个策略。它允许用户通过设定 CInstantCamera::OutputQueueSize 来调整输出队列的大小。如果已获取新缓存且输出队列已满,则输出队列中等待的第一个缓存将自动返回到空缓存队列(4.1)。然后将新填充的缓存放入到输出队列。这确保始终为应用程序提供最新的抓取图像。自动返回到空缓存队列的图像称为跳过图像。将输出队列大小设置为1时,此策略等同于仅抓取最新图像策略。将输出队列大小设置为 CInstantCamera::MaxNumBuffer 时,此策略等同于逐个抓取策略。
Upcoming Image Grab Strategy 即将到来的图像抓取策略
即将到来的图像抓取策略可用于确保获取在调用 RetrieveResult() 之后抓取的图像。
- 在调用 RetrieveResult() 之前,低级API流抓取器不会接收空缓存。当应用程序调用 RetrieveResult() (1)时,1个空缓存从空缓存队列中取消,然后将空缓存传递给低级API流抓取器(2)。
- 相机设备被触发(3)。相机设备获取图像,将其传输到计算机并抓入此空缓存。
- 现在此填充的空缓存作为抓取结果智能指针(4)(1)所持有的抓取结果数据对象的一部分返回。
- 应用程序处理完图像数据后,填充的缓存将返回空缓存队列(5)。这是通过抓取结果智能指针析构器或者显式释放抓取结果数据对象来完成的。如果 RetrieveResult() 超时,则将空缓存返回到空缓存队列。
来源:https://www.cnblogs.com/5free/p/11584288.html