我正在开设一个生物医学影像课程项目(注意:这是一门非编程课程,所以要求编程帮助不是作弊。要求提供规划的概念性帮助就是作弊。)我需要的地方使用不同的数学变换来操纵图像。我用C语写,所以它可以尽可能快。我已完成数学变换的代码,但我已经意识到我不知道如何将灰度.png文件转换为二维矩阵/数组来计算,我不知道如何显示.png C中的文件。任何人都可以帮助我吗?
我正在尝试将“image.png”图像转换为2d数组,其中数组中的每个条目的值都在0到255之间,并与“image.png”中的每个像素相对应。我还想转换一个2d数组,其中每个条目对应于图像中的一个像素,并且在0到255之间的值为新的“image_two.png”文件。
我是一个有点新手的程序员。我在python编程方面有扎实的基础,但C对我来说是新的。我做了很多研究,我发现很多人都在谈论使用"this library"或"that library",或"this library",但我如何在C中使用下载的库?作为一名python程序员,这对我来说是一个陌生的领域:(
我正在使用Ubuntu 12.04
重申:
如何在C中读取灰度.png图像作为二维数组/矩阵?
如何在C中将二维阵列/矩阵显示为灰度图像?
如何在C代码中使用下载的库(特别是上面两个问题)?我发现了如何使用这些库。
答案 0 :(得分:4)
您可以使用更通用的图像处理库,您可能会发现它更容易使用。我推荐FreeImage http://freeimage.sourceforge.net/。请参阅手册的像素访问部分以访问像素数据。然后,您可以直接使用它或将其复制到您自己的矩阵中。
答案 1 :(得分:3)
要在Linux中安装库,通常您将使用包管理器。例如,在Debian(包括Ubuntu)中你可能会这样做:
$ apt-cache search libpng
您将根据运行此命令的结果决定安装哪个软件包,然后运行
$ sudo apt-get install <package-name>
此命令可能会在已包含在gcc搜索路径中的位置安装png.h
。这意味着要在程序中使用png.h
,您只需要包含它。
#include <png.h>
跳至libpng manual的第3章,了解有关阅读png文件的演练。