flycapture 中的图像质量下降

Decrease in the quality of the image in flycapture

我正在使用 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());

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

请告诉我任何其他需要的详细信息

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

您正在使用:

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

要保存你的图像,但你确定它是保存为 tiff 吗?文档(java 文档)没有对此进行深入研究,我不确定它是否像 OpenCV 的 imwrite 一样自动推断类型并执行或不执行。所以你应该检查一下。有一个重载,您可以传递 ImageFileFormat...这应该设置为 TIFF。

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