繁体   English   中英

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

[英]How do you turn a .png file into a 2-d matrix?

我正在研究一个生物医学成像课程的项目(注意:这是一个非编程课程,所以要求编程帮助不是作弊。要求规划的概念性帮助会作弊。)我需要操纵一个图像使用不同的数学变换。 我用C语写,所以它可以尽可能快。 我已完成数学变换的代码,但我已经意识到我不知道如何将灰度.png文件转换为二维矩阵/数组来计算,我不知道如何显示.png用C语言文件。有人可以帮帮我吗?

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

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

我正在使用Ubuntu 12.04

重申:

  • 你如何在C中读取灰度.png图像作为二维数组/矩阵?

  • 如何在C中将二维阵列/矩阵显示为灰度图像?

  • 如何在C代码中使用下载的库(特别是上面的两个问题)? 我发现了如何使用这些库。

编辑:我仍然无法弄清楚如何从.png文件创建灰度2d数组以及如何从灰度2d矩阵中生成.png文件。 其他人可以帮忙吗?

您可以使用更通用的图像处理库,您可能会发现它更容易使用。 我推荐FreeImage http://freeimage.sourceforge.net/ 请参阅手册的像素访问部分以访问像素数据。 然后,您可以直接使用它或将其复制到您自己的矩阵中。

要在Linux中安装库,通常您将使用包管理器。 例如,在Debian(包括Ubuntu)中你可能会这样做:

$ apt-cache search libpng

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

$ sudo apt-get install <package-name>

此命令可能会在已包含在gcc搜索路径中的位置安装png.h 这意味着要在程序中使用png.h ,您只需要包含它。

#include <png.h>

跳至libpng手册中的第3章,了解有关读取png文件的演练。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM