Menu
CoddyTech

Изображения как массивы

Часть раздела Данные и графики путешествия по Machine Learning на Coddy. Урок 29 из 60.

Черно-белая фотография — это сетка чисел, по одному значению яркости на пиксель. Поэтому двумерный массив — это изображение, а ax.imshow отображает его:

plus = np.array([[0, 0, 1, 0, 0],
                 [0, 0, 1, 0, 0],
                 [1, 1, 1, 1, 1],
                 [0, 0, 1, 0, 0],
                 [0, 0, 1, 0, 0]])
fig, ax = plt.subplots()
ax.imshow(plus, cmap="gray")
plt.show()

Изображение размером 5 на 5 с белым знаком плюса на черном фоне; на каждом пикселе указано его значение: 1 на белом кресте, 0 в черных углах

cmap="gray" выбирает серую цветовую карту: наименьшее значение — чёрное, наибольшее — белое. Строка 0 отображается сверху, как записан массив.

В фотографиях обычно хранятся значения от 0 (чёрный) до 255 (белый). Позже в этом путешествии модель будет считывать рукописные цифры, хранящиеся именно так.

challenge icon

Задание

Средне

Сканер прочитал напечатанную букву, но сохранил её в инвертированном виде: яркие чернила на тёмной бумаге. Вложенный список scan содержит яркость каждого пикселя от 0 до 255.

  1. Преобразуй scan в массив и инвертируй его: каждый пиксель становится равен 255 минус его значение.
  2. Нарисуй изображение с помощью цветовой карты gray, добавь заголовок Letter E и покажи его.

У тебя должно получиться изображение, похожее на это: отсканированная буква L после исправления:

Маленькая чёрная буква L на белом фоне, высотой 7 пикселей и шириной 5 пикселей, с заголовком Letter L

Твоя программа ничего не выводит. Coddy описывает изображение построчно.

Попробуйте сами

import numpy as np
import matplotlib.pyplot as plt

scan = [[255, 255, 255, 255, 255],
        [255, 30, 0, 0, 0],
        [255, 0, 0, 0, 0],
        [255, 255, 255, 200, 0],
        [255, 0, 0, 0, 0],
        [255, 0, 0, 0, 15],
        [255, 255, 255, 255, 255]]

# Напишите свой код ниже
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Данные и графики

Потренируйтесь самостоятельно: Онлайн-компилятор Python