Автор оригинала: Team Python Pool.
Как отображать изображения с помощью функции Matplotlib Imshow
Знаете ли вы, что в компьютерном программировании образы представлены в виде чисел? Любые операции, которые мы выполняем над изображением с помощью языков программирования, мы выполняем над массивами чисел. Мы также можем визуализировать эти изображения с помощью функции imshow библиотеки matplotlib. Matplotlib – это библиотека на python, построенная поверх библиотеки numpy и используемая для представления различных графиков, графиков и изображений с помощью чисел.
Основная функция Matplotlib Imshow-показать объект изображения. Поскольку Matplotlib обычно используется для визуализации данных, изображения могут быть частью данных, и для их проверки мы можем использовать imshow. Кроме того, метод imshow также известен модулем OpenCV для отображения изображений.
Изображения в оттенках серого можно визуализировать с помощью 2-мерного массива, а цветные изображения-с помощью 3-мерного массива. Используя Matplotlib, мы можем представлять как цветные, так и черно – белые изображения. Мы также можем выполнять множество различных операций с изображением, используя различные параметры функции imshow. Давайте рассмотрим все подробно.
Синтаксис Matplotlib Imshow
Чтобы использовать библиотеку matplotlib, нам сначала нужно установить matplotlib с помощью – pip install matplotlib. Затем нам нужно импортировать подмодуль pyplot, который содержит функцию imshow.
После успешной установки библиотеки matplotlib используйте приведенный ниже код для использования функции imshow.
plt.imshow(X,,,,,,,,,)
Параметры-
X – Это данные, которые мы хотим отобразить с помощью imshow. Это может быть в виде списков или массивов. Для серых изображений это 2-D массив, а для цветных изображений мы используем 3-D изображения. Каждый элемент в массиве действует как пиксель.
Cmap– Этот параметр используется для придания цветов неокрашенным изображениям. Мы можем передать любое из приведенных ниже значений в качестве аргумента для этого параметра. Если изображение уже окрашено, параметр cmap игнорируется.
Норма– Этот параметр используется для нормализации значений цвета от 0.0 до 1.0. Это игнорируется в случае цветных изображений.
Аспект – Этот параметр используется для настройки размера изображений. Есть два варианта аргументов – auto и equal. Мы лучше поймем это, когда рассмотрим пример.
Альфа– Если мы хотим изменить прозрачность изображения, мы можем использовать этот параметр. Для непрозрачного изображения используйте ‘1’ в качестве аргумента для этого параметра. А для полностью прозрачного изображения используйте 0. Диапазон-0-1.
Происхождение– Если мы хотим изменить начало координат ((0,0)) с верхнего на нижнее, мы можем установить значение параметра origin как ‘lower.’
В imshow есть еще много параметров, но это самые важные.
Тип возврата-
`~matplotlib.image.AxesImage`
Использование функции Matplotlib Imshow
Прежде чем непосредственно перейти к отображению некоторых уже существующих изображений, давайте посмотрим, как мы можем создать наши изображения с помощью numpy array и отобразить их с помощью функции imshow.
Создание шахматной доски
Мы знаем, что шахматная доска представляет собой матрицу 8×8 только с двумя цветами, то есть белым и черным. Итак, давайте используем numpy для создания массива numpy, состоящего из двух чисел 0 и 1. В программировании один используется для яркого цвета, а 0-для темных/тусклых цветов.
import numpy as np import matplotlib.pyplot as plt # create a 8x8 matrix of two numbers-0 and 1. # O represents dark color and 1 represents bright color .array([[1,0]*4,[0,1]*4]*4) print(arr) # use the imshow function to display the image made from the above array plt.imshow(arr)
Output- [[1 0 1 0 1 0 1 0] [0 1 0 1 0 1 0 1] [1 0 1 0 1 0 1 0] [0 1 0 1 0 1 0 1] [1 0 1 0 1 0 1 0] [0 1 0 1 0 1 0 1] [1 0 1 0 1 0 1 0] [0 1 0 1 0 1 0 1]]
Как видим, мы получили желаемую матрицу, но цвета не адекватны. Кроме того, мы знаем, что для окрашивания 2-d массива мы используем параметр cmap.
import numpy as np.array([[1,0]*4,[0,1]*4]*4) # use the 'gray' argument in cmap argument to make the image black and white)
Еще одна важная вещь в этом методе заключается в том, что начало координат начинается в верхнем левом углу. Мы можем изменить его, используя ‘origin’ href=”https://en.wikipedia.org/wiki/Parameter_(computer_programming)”>параметр. href=”https://en.wikipedia.org/wiki/Parameter_(computer_programming)”>параметр.
import numpy as np.array([[1,0]*4,[0,1]*4]*4) # to change the origin of the image from upper left to lower left, # use the origin parameter.)
Мы можем ясно наблюдать изменение между этими двумя изображениями. Теперь начало координат начинается слева внизу.
Давайте теперь покажем уже существующее изображение с помощью imshow.
Отображение кошки с помощью Matplotlib imshow
Давайте теперь посмотрим, как мы можем отобразить следующую кошку с помощью функции imshow.
Для отображения этого изображения нам сначала нужно прочитать это изображение с помощью функции imread библиотеки matplotlib.pyplott.
Мы должны дать путь этого изображения функции imread. Я работаю в том же месте, где присутствует изображение, поэтому я могу просто написать имя изображения вместе с его расширением.
import matplotlib.pyplot as plt # read the image in .imread("cat_image.jpeg") #lET US SEE THE SHAPE OF THE IMAGE. print(photo.shape) plt.imshow(photo)
(1253, 1880, 3)
Как мы знаем, цветные изображения хранятся в трехмерном массиве (третье измерение представляет собой RGB( красный, Зеленый, Синий) цвета).
Мы можем сделать это изображение более или менее прозрачным, используя параметр alpha.
import matplotlib.pyplot as plt # read the image in .imread("cat_image.jpeg") # set the transparency to 0.5.5)
Надо Читать:
- Как преобразовать строку в нижний регистр в
- Как вычислить Квадратный корень
- Пользовательский ввод | Функция ввода () | Ввод с клавиатуры
- Лучшая книга для изучения Python
Вывод
Мы изучили, как показать изображения с помощью функции matplotlib imshow. Мы внесли изменения в изображение, используя различные доступные параметры. Вы можете быть более творческими и использовать эти концепции для создания более интересных образов.
Попробуйте запустить программы на вашей стороне и дайте нам знать, если у вас есть какие-либо вопросы.