我正在使用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
请告诉我所需的任何其他详细信息
答案 0 :(得分:0)
我对此并不是100%肯定,因为我发现的文档是针对Java而不是c ++,但它可能非常相似。
您正在使用:
image.Save(saveImage.str().c_str());
保存您的图片,但是您确定将其保存为tiff吗?文档(java one),并没有深入到这一点,我不确定它是否像OpenCV的imwrite
一样,它会自动推断出类型和不做。所以你应该检查一下。有一个重载可以传递ImageFileFormat ...这应该设置为TIFF。
另一个重载让你指定TIFF选项...在这里你可以调整它以使用不同的压缩方法。请注意,有JPEG压缩方法...这会使某些东西变得更轻但有损...你可以尝试使用None,或OpenCV使用LZW的那个。