在python中将图像转换为矩阵

时间:2010-08-16 12:29:56

标签: python image-processing numpy python-imaging-library

我想用Python做一些图像处理。

是否有一种简单的方法可以将.png图像导入为灰度/ RGB值矩阵(可能使用PIL)?

6 个答案:

答案 0 :(得分:31)

scipy.misc.imread()将返回一个Numpy数组,这对于很多事情都很方便。

答案 1 :(得分:9)

到目前为止,没有人讲过matplotlib.image

template<typename T> class Vec { };
template<typename T, typename U> class Pair { };

void f1(const auto&, auto);
void f2(Vec<auto*>...);
void f3(auto (auto::*)(auto));

template<typename T, typename U>
void f1(const T&, U); // redeclaration of f1(const auto&, auto)
template<typename... T>
void f2(Vec<T*>...); // redeclaration of f2(Vec<auto*>...)
template<typename T, typename U, typename V>
void f3(T (U::*)(V)); // redeclaration of f3(auto (auto::*)(auto))

现在图像将是一个3D numpy数组

ForkJoinPool(int parallelism, ForkJoinPool.ForkJoinWorkerThreadFactory factory, Thread.UncaughtExceptionHandler handler, boolean asyncMode)

类似于:import matplotlib.image as img image = img.imread(file_name)

答案 2 :(得分:4)

PIL中的

im.load会返回类似矩阵的对象。

答案 3 :(得分:2)

您可以使用PyGame image并使用PixelArray访问pixeldata

答案 4 :(得分:1)

scipy.misc.imread()现已弃用。我们可以使用imageio.imread而不是将其作为Numpy数组读取

答案 5 :(得分:1)

绝对可以尝试

from matplotlib.image import imread

image  = imread(filename)  

文件名最好是 .jpg 图片。 然后,尝试

image.shape

这将返回:

  • 用于黑白或灰度图像 (n,n)矩阵,其中n表示图像的尺寸(像素),矩阵内的值在0到255之间。 通常,将0设为黑色,将255设为白色。 128往往是灰色!

  • 用于彩色或RGB图像 它将渲染3个通道的张量。每个通道都是一个(n,n)矩阵,其中每个条目分别代表图像实际位置中红色,绿色或蓝色的水平。