在flycapture中降低图像的质量

时间:2018-04-18 05:04:21

标签: c++ 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());

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

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

1 个答案:

答案 0 :(得分:0)

我对此并不是100%肯定,因为我发现的文档是针对Java而不是c ++,但它可能非常相似。

您正在使用:

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

保存您的图片,但是您确定将其保存为tiff吗?文档(java one),并没有深入到这一点,我不确定它是否像OpenCV的imwrite一样,它会自动推断出类型和不做。所以你应该检查一下。有一个重载可以传递ImageFileFormat ...这应该设置为TIFF。

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