Метод 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 для чтения данных изображения из файла изображения и отобразить его:

Пример

import matplotlib.pyplot as plt

# Чтение файла изображения, адрес для скачивания: /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, мы затемним изображение:

Пример

import matplotlib.pyplot as plt

# Прочитать файл изображения, адрес для скачивания: /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()

Результат отображения выглядит следующим образом:

Следующий пример используется для обрезки изображения:

Пример

import matplotlib.pyplot as plt

# Прочитать файл изображения, адрес для скачивания: /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, мы получим красное изображение:

Пример

import matplotlib.pyplot as plt

# Прочитать файл изображения, адрес для скачивания: /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()

Результат отображения выглядит следующим образом:

Другие расширения