Python将彩色图像转为灰度图像

Posted 振华OPPO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python将彩色图像转为灰度图像相关的知识,希望对你有一定的参考价值。

第一种方法

Python的cv2库中自带彩色转灰度的方法,而且非常简单,代码就9行,核心代码就1行。
大题思路就是先读取一张彩色图片,然后在窗口中显示出来,再然后就让cv2处理一下,转换成灰度图像,这时候它是个二维的灰度矩阵,所以,我们想保存得先将它从array转成image,最后在另一个窗口中显示出来,为了避免窗口一闪而过,我们需要加上waitKey(0)这一句。

import cv2
from PIL import Image
#读取彩色图像
color_img = cv2.imread(r'dataset3/beauty.jpg')
#在窗口中显示图像,该窗口和图像的原始大小自适应
cv2.imshow('original image',color_img)
#cvtColor的第一个参数是处理的图像,第二个是RGB2GRAY
gray_img=cv2.cvtColor(color_img,cv2.COLOR_RGB2GRAY)
#gray_img此时还是二维矩阵表示,所以要实现array到image的转换
gray=Image.fromarray(gray_img)
#将图片保存到当前路径下,参数为保存的文件名
gray.save('gray.jpg')
cv2.imshow('Gray Image',gray_img)
#如果想让窗口持久停留,需要使用该函数
cv2.waitKey(0)


第二种方法

PIL中的Image库也自带转灰度图像的方法,然后再用pyplot显示在画布上就行了。一共8行代码,核心代码就1行。

from PIL import Image
from matplotlib import pyplot as plt
color_img=Image.open('dataset3/beauty.jpg')
gray_img=color_img.convert('L')
plt.figure('beauty')
plt.imshow(gray_img,cmap='gray')
plt.axis('off')
plt.show()

以上是关于Python将彩色图像转为灰度图像的主要内容,如果未能解决你的问题,请参考以下文章

matlab怎么将灰度图像转为rgb图像

Python灰度图像彩色化

Python 使用skimage实现将彩色图像转换为灰度图像并保存

Python 使用skimage实现将彩色图像转换为灰度图像并保存

matlab中如何将灰度图转化为二值黑白图像?敬请各位大侠指点!

matlab中如何求一个图像的灰度级