Снижение качества изображения в flycapture
Я использую программу-пример flycapture sdk для захвата изображения из flycapture. Моя проблема в том, что когда я снимаю изображение с помощью установленного приложения flycapture, размер изображения составляет около 1,3 - 1,5 Мб. Но когда взять то же изображение с помощью моей программы, которая состоит из примера программы 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 ответ
Я не уверен на 100% в этом, поскольку документация, которую я нашел, была для Java, а не для C++, но, вероятно, она очень похожа.
Ты используешь:
image.Save(saveImage.str().c_str());
чтобы сохранить изображение, но вы уверены, что оно сохранено в виде tiff? документация (Java), не углубляется в это, я не уверен, что это как OpenCV imwrite
что он автоматически выводит тип и делает это или нет. Так что вы должны это проверить. Была одна перегрузка, которую вы можете передать ImageFileFormat... это должно быть установлено в TIFF.
Другая перегрузка позволяет вам указать параметры TIFF... здесь вы можете настроить его на другой метод сжатия. Обратите внимание, что есть метод сжатия JPEG... который сделает что-то более легкое, но с потерями... Вы можете попробовать использовать None, или тот, который OpenCV использует LZW.