标题:Python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
正文:
在Python3中,对于图像的处理,常见的是读取图片并进行灰度化。本文总结了四种常用的方法,包括OpenCV、PIL.Image、Tensorflow方法。下面我们来逐一介绍这四种方法。
OpenCV方法
OpenCV是计算机视觉方面的开源库,支持多种操作系统,提供了很多图像处理的API,可以快速灰度化图像。
import cv2
image = cv2.imread("image.jpg")
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
上面的代码中,我们使用OpenCV读取了一张名为image.jpg
的彩色图片。然后使用cv2.cvtColor
函数将彩色图片转化为灰度图片,转换后的灰度图片保存在gray_image
变量中。
PIL.Image方法
PIL.Image(Python Imaging Library)是Python中一个强大的图像处理库,可以用来读取并灰度化图片。
from PIL import Image
image = Image.open("image.jpg")
gray_image = image.convert("L")
上面的代码中,我们使用PIL.Image库打开一张名为image.jpg
的彩色图片,并将其转化为灰度图片。转换后的灰度图像保存在gray_image
变量中。
TensorFlow方法
Google的TensorFlow框架是一个强大的深度学习框架,可以用其读取并灰度化图片。
import tensorflow as tf
image_string = tf.read_file("image.jpg")
image_decoded = tf.image.decode_jpeg(image_string, channels=1)
上面的代码中,我们使用Tensorflow读取了一张名为image.jpg
的彩色图片,并将其转化为灰度图像。转换后的灰度图片保存在image_decoded
变量中。
matplotlib方法
在Python中,很多科学计算都是基于matplotlib库进行,而matplotlib库也可以用来读取和灰度化图片。
import matplotlib.pyplot as plt
image = plt.imread("image.jpg")
gray_image = plt.imread("image.jpg", 0)
上面的代码中,我们使用matplotlib.pyplot库读取了一张名为image.jpg
的彩色图片,并将其转化为灰度图片。转换后的灰度图片保存在gray_image
变量中。
示例说明
接下来,举个例子,将一张彩色图片读入后灰度化并显示出来。
import cv2
image = cv2.imread("image.jpg")
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("Color Image", image)
cv2.imshow("Gray Image", gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的代码中,我们使用OpenCV方法灰度化了一张名为image.jpg
的彩色图片,并使用cv2.imshow
函数分别显示了原图和灰度图。
再举一个例子,使用TensorFlow方法读取一张图片并灰度化。
import tensorflow as tf
import matplotlib.pyplot as plt
image_string = tf.read_file("image.jpg")
image_decoded = tf.image.decode_jpeg(image_string, channels=1)
with tf.Session() as sess:
gray_image = sess.run(image_decoded)
plt.imshow(gray_image, cmap='gray')
plt.show()
在上面的代码中,我们使用TensorFlow方法读取了一张名为image.jpg
的彩色图片,并使用tf.image.decode_jpeg
函数将其转换为灰度图片。最后,使用matplotlib.pyplot库将灰度化后的图片显示出来。
通过以上两个例子,我们可以看到,读取和灰度化图片可以使用多种方法,每种方法侧重点不同,使用不同的方法可以选择适合自己的需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结 - Python技术站