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