利用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 批量將圖片轉為灰度圖

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)

總結

到此這篇關於利用Python將彩色圖像轉為灰度圖像的文章就介紹到這瞭,更多相關Python彩色圖像轉為灰度圖像內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: