3 回答

TA貢獻1809條經(jīng)驗 獲得超8個贊
有多種方法可以做到這一點。一種可能的方法是利用PIL(Pillow)
庫:
from PIL import Image
import matplotlib.pyplot as plt
picture = Image.open('google.jpg')
grayscale_pic = picture.convert('LA')
grayscale_pic.save('grayscale.png')
fig,ax = plt.subplots(nrows=1, ncols=2)
plt.subplot(1,2,1)
plt.imshow(picture)
plt.subplot(1,2,2)
plt.imshow(grayscale_pic)
plt.show()
輸出:

TA貢獻1828條經(jīng)驗 獲得超13個贊
opencv
您可以使用以下命令將普通圖像轉(zhuǎn)換為灰度圖像:
import cv2 gray = cv2.cvtColor(picture,cv2.COLOR_RGB2GRAY)
如果你numpy
更喜歡opencv
,那么你可以使用這個:
gray = np.dot(picture[...,:3], [0.2989, 0.5870, 0.1140])

TA貢獻2036條經(jīng)驗 獲得超8個贊
您可以與權(quán)重一起使用matplotlib:
import numpy as np
import matplotlib.pyplot as plt
an_image = plt.imread('google.png')
rgb_weights = [0.2989, 0.5870, 0.1140]
grayscale_image = np.dot(an_image[..., :3], rgb_weights)
plt.axis('off')
plt.imshow(grayscale_image, cmap=plt.get_cmap("gray"), aspect='auto')
plt.show()
輸出:
如果刪除aspect='auto'
參數(shù):
或者你可以使用opencv
import cv2
an_image = cv2.imread("google.png")
grey_image = cv2.cvtColor(an_image, cv2.COLOR_BGR2GRAY)
或者你可以使用PIL圖書館
from PIL import Image
img = Image.open('google.png').convert('LA')
LA模式為 L(8 位像素,黑白),帶有 ALPHA 設(shè)計用于 .gif 和 .png。如果您的圖像是 .jpeg,請使用L.
輸出:
添加回答
舉報