使用Skimage、Pillow和OpenCV在Python中将图像转换为灰度的4种方法

780 阅读2分钟

简介

在本教程中,我们将向你展示多种方法,通过使用不同的库,如Skimage、Pillow和OpenCV,你可以在Python中将任何图像转换为灰阶。每种方法都将以实例的形式展示,以便于理解。

在Python中把图像转换为灰度的不同方法

输入图像

对于所有的例子,下面的狗图像将被用作输入。

Convert Image to Grayscale in Python

1.用Skimage(Scikit Image)进行图像灰度转换 - color.rgb2gray()

Scikit Image或Skimage是一个基于Python的开放源码包,用于各种图像处理算法。任何彩色图像都可以在Skimage的color.rgb2gray()函数的帮助下转换为灰度。

在下面的例子中,用io.imread()读取图像,然后用color.rgb2gray()将其转换成灰度,最后用io.imshow()显示。

In[0]:

from skimage import color
from skimage import io

img = io.imread('dog.jpg')
imgGray = color.rgb2gray(img)

io.imshow(imgGray)

Out[0]:

<matplotlib.image.AxesImage at 0x7f4161961c90>。

Convert Image to Grayscale Python Scikit Image (Skimage)

2.用Pillow(PIL)进行图像灰度转换 - convert()

Pillow是Python的另一个图像处理库,可以用其img.convert()函数将图像转换成灰度。

在这个例子中,用Image.open()读取图像,然后通过传递'L'作为参数,用convert()进行转换。L "参数用于将图像转换为灰度。

In [1]:

from PIL import Image

img = Image.open('dog.jpg')
imgGray = img.convert('L')
imgGray.show()

输出[1]。

Convert Image to Grayscale Python PIL (Pillow)

3.用OpenCV进行图像灰度转换 - cv2.imread()

OpenCV是目前最流行的图像处理包,有几种方法可以将图像转换为灰度。在这第一种方法中,在使用cv2.imread()读取图像时,可以通过将标志值与图像文件名一起传递为0来将图像改为灰度。

In[2]:

import cv2


输出[2]。

Convert Image to Grayscale OpenCV imread()

4.用OpenCV转换图像灰度--cv2.cvtColor()

在下一个技术中,图像可以在OpenCV模块的cv2.cvtColor()的帮助下变成灰度,该模块用于改变色彩空间。

这个函数用于灰度的参数是COLOR_BGR2GRAY,我们可以在下面的例子中看到。

In[3]:

import cv2


Out[3]:

Convert Image to Grayscale OpenCV cvtColor

The post4 Ways to Convert Image to Grayscale in Python using Skimage, Pillow and OpenCVappeared first onMLK - Machine Learning Knowledge.