从2D阵列显示图像的最佳C ++库

时间:2013-04-05 21:47:34

标签: c++ image-processing multidimensional-array

我有一个2D数组,其中包含我从二进制文件传输的图像。我想显示这个图像,我想知道什么是最好的工具(C ++库)来做到这一点。

简单地说,什么C ++库可以采用2D阵列并显示图像?

编辑* 我认为最好更具体一点。

我正在尝试获取8位数值的2D数组,并将它们编入某种结构以显示我的图像。

Matlab有一个函数来执行此操作,称为imshow(X,Map),其中Map是一个n乘3的RGB值数组。 X是2D阵列。是否有类似的功能由C ++库提供。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

如果你正在使用WinAPI,你可以随意在程序窗口中绘画,这是我认为最简单的方法。请参阅thisthis

否则我建议您学会使用OpenGL,我认为这是今天的主流,还有更多功能等。

答案 1 :(得分:0)

是否需要在C ++中完成所有这些工作,或者扩展工具链是否可以?听起来你可以将C ++与例如C ++结合起来。 gnuplot为此,取得了良好的效果和努力。

在这种情况下你要做的就是取你的二维数组并将它们(它们的字符串表示,而不是它们的位表示)打印到stdout,每行一个像素行,像素用空格分隔(或标签)。运行程序并将输出重定向到文件:

$ ./yourprogram > img.dat

然后,创建一个gnuplot脚本,根据需要绘制图像。 Gnuplot有extensive documentation可以帮助你入门 - 如果你下载当前版本的pdf(4.6)并查看标题“图像”(第53页),这似乎正是你想要的。

我对这种方法的主要论点,例如OpenGL是非常简单。写入stdout是任何C ++程序员学习的第一件事,而gnuplot旨在使绘图数据变得容易。不可否认,gnuplot确实有一个陡峭的学习曲线,但远不如使用OpenGL生成相同质量的东西那样陡峭。