0

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

使用以下方法保存图像:

FlyCapture2::Camera camera;			
 FlyCapture2::Image image;
 camera.RetrieveBuffer(&image);
 ostringstream saveImage;
 saveImage << "Image-" << "-" << i << ".tiff";
image.Save(saveImage.str().c_str());

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

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

4

1 回答 1

0

我对此不是 100% 确定,因为我找到的文档是针对 Java 而不是 C++,但它可能非常相似。

您正在使用 :

image.Save(saveImage.str().c_str());

保存您的图像,但您确定将其保存为 tiff 吗?文档(Java 文档)并没有深入探讨,我不确定它是否像 OpenCVimwrite那样自动推断类型并执行。所以你应该检查一下。有一个重载可以传递 ImageFileFormat ......这应该设置为 TIFF 之一。

另一个重载让您指定 TIFF 选项...在这里您可以调整它以使用不同的压缩方法。请注意,有一种 JPEG 压缩方法……这会使某些东西更轻但有损……您可以尝试使用 None,或者 OpenCV 使用 LZW 的方法。

于 2018-04-18T09:23:24.473 回答