我想用Python做一些图像处理。
是否有一种简单的方法可以将.png
图像导入为灰度/ RGB值矩阵(可能使用PIL)?
答案 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)矩阵,其中每个条目分别代表图像实际位置中红色,绿色或蓝色的水平。