生成不同格式的图像字节数据

时间:2012-11-21 11:27:28

标签: c++ image image-processing opencv

我有一个应用程序可以接受图像作为许多不同格式的字节数据。在幕后,应用程序使用自定义代码和opencv转换方法将这些图像转换为我们可以使用的格式。

我正在尝试编写一些单元测试,以多种不同的格式将图像添加到我们的库中,以确保应用程序正常工作,并且应用程序性能不会受到不同格式的负面影响。

为此,我想我会创建一个工具,可以加载JPEG,然后使用opencv的转换方法将图像从opencv加载的BGR格式转换为我们接受的所有不同输入格式。不幸的是,似乎OpenCV支持转换为RGB空间,但在其他方向上没有那么多支持(比如RGB到YUV_NV21)。

我可以使用其他任何库或应用程序来执行此操作吗?

如果我可以将转换作为单元测试的一部分并且只是迭代所有不同的格式,那将是很好的,但如果我需要提前生成输入作为二进制数据文件,那也没关系。

提前致谢。

编辑:当我说图像格式时,我不是指压缩图像格式,如JPEG或PNG。我的意思是不同的原始图像格式,如RGB,RGBX,YUV(在所有不同的配方中)等。

4 个答案:

答案 0 :(得分:1)

您可能对Intel's IPP感兴趣。它有很多color conversion routines。但这并不是免费的。

答案 1 :(得分:1)

Imagemagick是一种可能性:

http://www.imagemagick.org/script/index.php

它被许多流行的应用程序使用。

您还可以谷歌搜索支持所需格式的特定库。

编辑:既然你想要原始格式,这里有一个很好的项目可以完成你想要的一些。 将RGB转换为YUV并反之并不困难。你只需要使用公式。

http://www.codeproject.com/Articles/402391/RGB-to-YUV-conversion-with-different-chroma-sampli

答案 2 :(得分:1)

以对每个人都有帮助的方式,考虑仅使用netpbm存在,并为您需要的其他内容添加转换例程。 netpbm.sourceforge.net

答案 3 :(得分:0)

尝试VTK。他们有不同的图像编写者