Как преобразовать массив из двух цветных изображений в массив из двух серых изображений с помощью функции to_grayscale
(из этого сайта ), представленной ниже.
Важно: Я не хочу файлы изображений, я хочу массив image_g
, определенный ниже.
Сначала создайте функцию и примеры изображений:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['image.cmap'] = 'gray'
np.random.seed(0)
def to_grayscale(im):
tile = np.tile(np.c_[0.333, 0.333, 0.333], reps=(im.shape[0],im.shape[1],1))
return np.sum(tile * im, axis=2)
images = np.random.randint(0, 255, 24).reshape(2, 2, 2, 3)
images.shape
out> (2, 2, 2, 3)
Посмотрите на первое изображение:
plt.imshow(images[1])
![enter image description here](https://i.stack.imgur.com/PFxcv.png)
Вид в серой шкале:
plt.imshow(to_grayscale(images[1]))
![enter image description here](https://i.stack.imgur.com/Yu7EZ.png)
Как преобразовать images
в массив серых изображений image_g
?Я хотел бы сделать что-то вроде этого:
image_g = np.somefunction(to_grayscale, images)
images_g.shape
out> (2, 2, 2)
, где somefunction
является заполнителем для ответа.