利用Python将彩色图像转为灰度图像的两种方法
Python的cv2库中自带彩色转灰度的方法,而且非常简单,代码就9行,核心代码就1行。
大题思路就是先读取一张彩色图片,然后在窗口中显示出来,再然后就让cv2处理一下,转换成灰度图像,这时候它是个二维的灰度矩阵,所以,我们想保存得先将它从array转成image,最后在另一个窗口中显示出来,为了避免窗口一闪而过,我们需要加上waitKey(0)这一句。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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行。
1
2
3
4
5
6
7
8
|
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 批量将图片转为灰度图
1
2
3
4
5
6
7
8
9
|
from PIL import Image import os path = 'F:/QUEXIANJIANCESHIYAN/posdata' file_list = os.listdir(path) for file in file_list: I = Image. open (path + "/" + file ) L = I.convert( 'L' ) L.save(path + "/" + file ) #print(file) |
转:https://www.jb51.net/article/232845.htm