我有一个2D数组,其中包含我从二进制文件传输的图像。我想显示这个图像,我想知道什么是最好的工具(C ++库)来做到这一点。
简单地说,什么C ++库可以采用2D阵列并显示图像?
编辑* 我认为最好更具体一点。
我正在尝试获取8位数值的2D数组,并将它们编入某种结构以显示我的图像。
Matlab有一个函数来执行此操作,称为imshow(X,Map),其中Map是一个n乘3的RGB值数组。 X是2D阵列。是否有类似的功能由C ++库提供。
感谢您的帮助。
答案 0 :(得分:0)
答案 1 :(得分:0)
是否需要在C ++中完成所有这些工作,或者扩展工具链是否可以?听起来你可以将C ++与例如C ++结合起来。 gnuplot为此,取得了良好的效果和努力。
在这种情况下你要做的就是取你的二维数组并将它们(它们的字符串表示,而不是它们的位表示)打印到stdout
,每行一个像素行,像素用空格分隔(或标签)。运行程序并将输出重定向到文件:
$ ./yourprogram > img.dat
然后,创建一个gnuplot脚本,根据需要绘制图像。 Gnuplot有extensive documentation可以帮助你入门 - 如果你下载当前版本的pdf(4.6)并查看标题“图像”(第53页),这似乎正是你想要的。
我对这种方法的主要论点,例如OpenGL是非常简单。写入stdout
是任何C ++程序员学习的第一件事,而gnuplot旨在使绘图数据变得容易。不可否认,gnuplot确实有一个陡峭的学习曲线,但远不如使用OpenGL生成相同质量的东西那样陡峭。