Цвет определяется одним значением, потому что это не RGB, а оттенки серого. Таким образом, форма изображения - (512, 512)
, а не (512, 512, 3)
. В результате, если вы выберете одну точку белый , она будет [255]
, а не [255, 255, 255]
.
Если вы запутались, потому что изображение не черно-белое, это просто потому, что цветовая карта по умолчанию matplotlib
- это viridis, то есть зеленый и желтый. Это не меняет значения пикселей, это просто "тема" или фильтр камеры. Если вы изменили цветовую карту на серый, вы получите:
import matplotlib.pyplot as plt
plt.imshow(255 - camera, cmap='Greys')
plt.show()
If you don't specify the colormap, even a random array of pixels will get the yellowish tint:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(4, 4))
plt.imshow(np.random.randint(0, 256, (512, 512)))
plt.show()
введите описание изображения здесь
Но есть одна вещь, которую я не понимаю. Pi c кажется перевернутым. Мне пришлось вычесть значения пикселей из 255, чтобы получить обычную камеру pi c.