问题标签 [flycapture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
206 浏览

c++ - 飞行捕捉中图像质量下降

我正在使用 flycapture sdk 示例程序从 flycapture 中捕获图像。我的问题是,当我使用安装了 flycapture 的应用程序捕获图像时,图像的大小约为 1.3 - 1.5 Mb。但是,当使用我的由 flycapture 示例程序组成的程序拍摄相同的图像时。图像的大小约为 340K 到 500K(最大)。图像格式为 .tiff 图像质量降低,因此我的程序无法从图像中获取任何有价值的信息。

使用以下方法保存图像:

并按照链接中提到的方法使用 Windows 应用程序: http ://www.ptgrey.com/Content/Images/uploaded/FlyCapture2Help/flycapture/03demoprogram/saving%20images_flycap2.html

请让我提供所需的任何其他详细信息

0 投票
1 回答
322 浏览

python-3.x - PyCapture2 相机开机功能/方法的 PySpin 等效项是什么?

我正在寻找一种方法来测试相机是否为 PTG 相机打开。

在 PyCapture2 中,以下代码有效,但假定的 PySpincam.DeviceConnectionStatus()将不起作用,因为该函数似乎不存在。

PySpin 相机库版本:1.23.0.27

错误:

错误:Spinnaker:GenICam::AccessException= 功能不存在(引用无效):AccessException 抛出(文件 'IEnumerationT.h',第 341 行)[-2006](假,SpinnakerException(“Spinnaker:GenICam::AccessException= 功能不存在存在(引用无效):抛出 AccessException(文件 'IEnumerationT.h',第 341 行)[-2006]”))

我也尝试过PySpin.Camera.DeviceConnectionStatus(),但无论是之前还是之后都会出现以下错误cam.Init()

工作 PyCapture2 代码:

0 投票
1 回答
89 浏览

c++ - 为什么 cv:: Mat 对象在调试和发布之间表现不同?

我有一个真正令人头疼的时间试图弄清楚为什么我的 OpenCV 矩阵的人口完全按照我在调试模式下的预期工作,但是当我尝试发布项目时,它会截断所有的值给它,并错误地填充矩阵!

我的设置的简短描述:

  • 我同时使用 OpenCV 和 ViSP 库来处理 USB Flycapture 相机。
  • 我在 Qt-Creator 的 Ubuntu 16.04 上运行所有东西,因为我计划在这个项目中使用 GUI。
  • 填充矩阵的参数对于相机的校准很重要,因此截断是绝对不行的!

上代码!

首先,我使用 ViSP 的内置类从文件中加载已保存的参数。出于调试目的(并确保我不会失去理智),我还将这些值保存到全局变量中以供快速参考:

`

这一切都按预期工作。该函数正确读取所有值并将这些值(未截断!)存储到全局变量中。

接下来我尝试将这些变量传递给一个cv::Mat对象,这就是事情开始走下坡路的地方......

现在,如第一个代码片段中所述,我已经确保全局变量具有正确的值。然而,当我使用这些矩阵,例如,使用cv::undistort(...)时,很明显矩阵没有正确加载。

作为完整性检查,我尝试将矩阵写出到控制台,并确保正确加载了值:

在调试模式下调用两个矩阵的完整性检查,我得到以下输出:

`

`

请注意,std::cout控制台输出会截断写入六个有效数字的值,因为从文件中读取的数字有近二十个有效数字。结合使用该iomanipstd::setprecision(...),我已经确认完整的数字已正确结转并插入到矩阵中。

在发布中调用相同的函数,我得到以下输出:

` 请注意,即使将双精度变量传递给能够容纳双精度变量的矩阵,也只有整数会填充矩阵!对于我的生活,我无法弄清楚为什么它在项目的发布版本中这样做,而不是在调试版本中!

作为当前的解决方法,我尝试将数字直接从“*.xml”文件复制粘贴到变量作为常量,然后将它们传递给cv::Mat对象:

. 这工作得很好......我不知道为什么,但确实如此。

正如任何程序员很可能会告诉你的那样,应该避免这种常量的“硬编码”。如果我出于某种原因更改了相机上的设置并且必须重新校准,或者如果最终用户希望校准他们自己的相机,最好从外部文件中简单地读取这些内在值。

0 投票
0 回答
50 浏览

video-processing - 从视频中提取元数据

我使用点灰色相机来获取视频。我使用的采集软件(FlyCap2)提供了嵌入图像信息的选项。这些信息的范围从嵌入时间戳到每帧/图像中的视频细节(帧速率、增益、快门速度等)。

使用 FlyCap2 获取视频后,有人知道提取元数据的分析方法吗?

能回答这个问题真是太好了。谢谢!