Метод imread() в Matplotlib
Метод imread() — это функция в библиотеке Matplotlib, используемая для чтения данных изображения из файла изображения.
Метод imread() возвращает объект numpy.ndarray, форма которого равна(nrows, ncols, nchannels), что указывает количество строк, столбцов и каналов считанного изображения:
- Если изображение полутоновое, nchannels равно 1.
- Если это цветное изображение, nchannels равно 3 или 4, что соответствует трём цветовым каналам — красному, зелёному и синему — и альфа-каналу соответственно.
Синтаксис метода imread() выглядит следующим образом:
matplotlib.pyplot.imread(fname, format=None)
Описание параметра:
fname: Указывает имя файла или путь к файлу изображения, который нужно прочитать. Это может быть относительный или абсолютный путь.format: Параметр задаёт формат файла изображения. Если он не указан, формат по умолчанию автоматически распознаётся по расширению файла.
В следующем примере показано, как использовать функцию imread для чтения данных изображения из файла изображения и отобразить его:
Пример
# Чтение файла изображения, адрес для скачивания: /static.jyshare.com/images/demo/map.jpeg
img = plt.imread('map.jpeg')
# Отображение изображения
plt.imshow(img)
plt.show()
В приведённом выше примере мы сначала используем метод imread() для чтения данных изображения из файла изображения с именем map.jpeg и сохраняем их в переменной img.
Затем мы используем метод imshow() для отображения этого изображения.
Примечание: мы не указывали цветовую карту при отображении изображения, потому что метод imread() уже преобразовал данные изображения в формат RGB в соответствии с правильной цветовой картой, поэтому мы можем напрямую использовать цветовую карту по умолчанию для отображения изображения.
Результат отображения выглядит следующим образом:

Мы можем изменить изображение, изменив массив numpy.
Например, если мы умножим массив на число0≤≤1, мы затемним изображение:
Пример
# Прочитать файл изображения, адрес для скачивания: /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)
# Отображение изображения
plt.figure(figsize=(10,6))
for i in range(1,5):
plt.subplot(2,2,i)
x = 1 - 0.2*(i-1)
plt.axis('off') #скрыть оси координат
plt.title('x={:.1f}'.format(x))
plt.imshow(tiger*x)
plt.show()
Результат отображения выглядит следующим образом:

Следующий пример используется для обрезки изображения:
Пример
# Прочитать файл изображения, адрес для скачивания: /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)
# Отображение изображения
plt.figure(figsize=(6,6))
plt.imshow(tiger[:300,100:400,:])
plt.axis('off')
plt.show()
Результат отображения выглядит следующим образом:

Если мы установим элементы массива, соответствующие зелёной и синей составляющим цвета RGB, в 0, мы получим красное изображение:
Пример
# Прочитать файл изображения, адрес для скачивания: /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)
# Отображение изображения
red_tiger = tiger.copy()
red_tiger[:, :,[1,2]] = 0
plt.figure(figsize=(10,10))
plt.imshow(red_tiger)
plt.axis('off')
plt.show()
Результат отображения выглядит следующим образом:
