V nasledujúcom kóde sa pomocou knižníc numpy a matplotlib modifikuje obrázok na čiernobiely.
Každý jeden bod obrázka sa vyjadrí trojicou čísiel RGB; z obrázka sa vytvorí matica a tá sa prenásobí váhami na vytvorenie čiernobieleho obrázku.
Nechápem však tento riadok: plt.imshow(gray_img, cmap=plt.get_cmap('gray')). Čo je vlastne tá colormapa
a prečo musím získať šedú colormapu pyplotu (jeho okna?), keď idem zobraziť obrázok? Bez toho cmap atribútu
sa mi obrázok nezobrazí čiernobielo.
#!/usr/bin/env python3
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
# formula
# Y' = 0.299 R + 0.587 G + 0.114 B
def rgb2gray(rgb):
print(rgb[...,:3].shape)
return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])
img = mpimg.imread('sid.jpg')
gray_img = rgb2gray(img)
plt.imshow(gray_img, cmap=plt.get_cmap('gray'))
plt.show()