Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用libpng提取像素值_C++_Image_Png_Pixel_Libpng - Fatal编程技术网

C++ 使用libpng提取像素值

C++ 使用libpng提取像素值,c++,image,png,pixel,libpng,C++,Image,Png,Pixel,Libpng,我有一个正方形(1024x1024)的8位灰度图像,我正试图用它作为“风景”(这是一个急流高度模型),我所要做的就是得到类似的东西 byte = pngimg.at(x, y) 我一直在搜索libpng的页面和谷歌搜索,但什么都没有显示。在Java中,它就像缓冲图像一样简单。PNG的C++等价物在哪里?< P> C++不支持STL中的图像类型,因此必须依赖于某些外部库读取像素。我曾经用OpenCV库做过,它的函数。最近,我在C++11中创建了一个非常简单的库,用于加载PNG格式的图像,它只依赖

我有一个正方形(1024x1024)的8位灰度图像,我正试图用它作为“风景”(这是一个急流高度模型),我所要做的就是得到类似的东西

byte = pngimg.at(x, y)

我一直在搜索libpng的页面和谷歌搜索,但什么都没有显示。在Java中,它就像缓冲图像一样简单。PNG的C++等价物在哪里?

< P> C++不支持STL中的图像类型,因此必须依赖于某些外部库读取像素。我曾经用OpenCV库做过,它的函数。最近,我在C++11中创建了一个非常简单的库,用于加载PNG格式的图像,它只依赖于libPNG(和STL)。从PNG加载像素数据的代码位于。它从矢量中提取二进制数据,并使用像素矢量创建缓冲区


注意:如果您使用的是libPNG,那么您必须记住如何使用发布libPNG资源。当我忘记它时,我遇到了一些内存泄漏问题。

我指的是8位灰度值。我已经获得了打开该文件的文件*,但我找不到任何关于实际提取图像数据的libpng文档,但所有这些都是读取压缩字节。如果可能的话,我希望能够对包含经过的坐标的块进行膨胀,得到灰色的字节,然后将块缩小。<代码>在java中,它和缓冲图像一样简单。C++语言对图像类型一无所知。您可能希望查询基本上包装libpng库的第三方库,以便像素访问成为库的工作,而不是您的工作。许多图像库利用现有的低级库,如libpng、libtiff等,并将所有功能封装在易于使用的函数和类中。此示例可能对您有所帮助:您取得了多大进展?如果能够加载图像,则可以使用
png\u get\u rows
获取行指针列表,并对行进行索引以获取特定的像素值。看看吧。