C 如何将.png文件转换为二维矩阵?

C 如何将.png文件转换为二维矩阵?,c,png,C,Png,我正在为一门生物医学成像课程(注:这是一门非编程课程,因此寻求编程帮助不是作弊。寻求规划方面的概念帮助是作弊。)我需要使用不同的数学变换操作图像。我在用C写,所以它可以尽可能快。我已经完成了数学转换的代码,但我意识到我不知道如何将灰度.png文件转换为二维矩阵/数组进行计算,也不知道如何用C显示.png文件。有人能帮我吗 我正在尝试将“image.png”图像转换为二维数组,其中数组中的每个条目都有一个介于0-255之间的值,并与“image.png”中的每个像素相对应。我还想将一个2d数组转换

我正在为一门生物医学成像课程(注:这是一门非编程课程,因此寻求编程帮助不是作弊。寻求规划方面的概念帮助是作弊。)我需要使用不同的数学变换操作图像。我在用C写,所以它可以尽可能快。我已经完成了数学转换的代码,但我意识到我不知道如何将灰度.png文件转换为二维矩阵/数组进行计算,也不知道如何用C显示.png文件。有人能帮我吗

我正在尝试将“image.png”图像转换为二维数组,其中数组中的每个条目都有一个介于0-255之间的值,并与“image.png”中的每个像素相对应。我还想将一个2d数组转换为一个新的“image_two.png”文件,其中每个条目对应于图像中的一个像素,其值介于0-255之间

我是个新的程序员。我在python编程方面有坚实的基础,但C对我来说是新的。我做了很多研究,发现很多人都在谈论使用or,或者,但是我如何使用C中下载的库呢?作为python程序员,这对我来说是一个陌生的领域:(

我正在使用Ubuntu 12.04

重申:

  • 如何在C中以二维数组/矩阵的形式读取灰度.png图像

  • 如何在C语言中将二维数组/矩阵显示为灰度图像

  • 如何在C代码中使用下载的库(特别是针对上述两个问题)?我了解了如何使用这些库


编辑:我仍然不知道如何用.png文件创建灰度2d数组,以及如何用灰度2d矩阵创建.png文件。其他人能帮忙吗?

要在Linux中安装库,通常需要使用软件包管理器。例如,在Debian(包括Ubuntu)中,您可以执行以下操作:

$ apt-cache search libpng
您将根据运行此命令的结果决定安装哪个软件包,然后运行

$ sudo apt-get install <package-name>

请跳到中的第3章,了解如何读取png文件。

您可以使用更通用的图像处理库,并且您可能会发现它更易于使用。我建议使用FreeImage。请参阅手册的像素访问部分以访问像素数据。然后您可以直接使用它或将其复制到您自己的矩阵中。

Learning如何使用基本的编译器工具通常不在SO的范围之内。旁注:“我用C写,所以它可以尽可能快。”如果你不懂这门语言,可能会很有挑战性。你可能会更好地使用你已经知道的语言,让代码以可接受的速度正确工作,而不是学习全新的语言,让代码工作得非常快,但完全错误(至少在一段时间内,直到你学会足够的新语言).他在学习,没有比试着写东西和解决你遇到的问题更好的学习方法了。让他休息一下。我为数学转换编写的代码用python需要1.5个小时,用C最多需要2分钟。我对C语言的逻辑理解得很好,代码速度要快得多,我只需要一种方法o获取.png文件本身。谢谢!这很有帮助,我有这些库,现在可以使用它们。我还没有弄清楚如何将灰度.png文件转换为二维矩阵/数组,反之亦然。我已经开始阅读手册,手册中包含了大量信息,其中大部分与我无关。你有我可以使用的简短代码吗帮助我避免阅读手册的大部分内容?这不是我的专业领域,但通过谷歌搜索得出的结论。如果有助于您解决问题,请不要忘记接受答案。这对我很有帮助,因为我有这个库,我现在知道如何使用它,但我仍然没有弄清楚如何编写我需要的代码片段。手册是complIcted和研究并没有给我带来好的结果:(我需要写一些东西…给定“image.png”…我最终得到:image\u matrix=(image.png的灰度像素的2d数组)你看到我在三个评论之前发布的链接了吗?有关像素级访问的示例,请参见
read\u png\u file()
process\u file()
#include <png.h>