已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。
5年前关闭。
Improve this question
我需要在C/C++中读取一个图像文件。这将是非常伟大的,如果有人能为我张贴的代码。
我工作的灰度图像和图像是JPEG。我想读到一个二维数组的图像,这将使我的工作很容易。
已关闭,此问题需要更focused。目前不接受答复。
**想改善这个问题吗?**更新问题,使其仅通过editing this post关注一个问题。
5年前关闭。
Improve this question
我需要在C/C++中读取一个图像文件。这将是非常伟大的,如果有人能为我张贴的代码。
我工作的灰度图像和图像是JPEG。我想读到一个二维数组的图像,这将使我的工作很容易。
7条答案
按热度按时间vzgqcmou1#
如果您决定采用最小的方法,不依赖libpng/libjpeg,我建议使用
stb_image
和stb_image_write
,找到here。这很简单,你只需要把头文件
stb_image.h
和stb_image_write.h
放在你的文件夹里。下面是读取图像所需的代码:
下面是编写图像的代码:
您可以在没有标志或依赖项的情况下进行编译:
其他轻量级替代方案包括:
kuhbmx9i2#
您可以通过查看JPEG format来编写自己的代码。
也就是说,尝试一个预先存在的库,如CImg或Boost's GIL。或者对于严格的JPEG,libjpeg。CodeProject上还有CxImage类。
这是一个big list。
0aydgbwb3#
查看英特尔Open CV库...
f45qwnt84#
看看这个thread:read and write image file。
再看看this other question at Stackoverflow。
46scxncf5#
corona很不错。来自教程:
pixels是一维数组,但您可以轻松地将给定的x和y位置转换为1D数组中的位置。类似pos =(y * width)+ x
rdrgkggo6#
尝试CImg库。tutorial将帮助您熟悉。有了CImg对象后,data()函数将给予您访问2D像素缓冲区数组。
kmynzznz7#
查看Magick++ API到ImageMagick。