TLDR; Изображения OpenCV хранятся в виде трехмерных массивов Numpy.
При чтении цифровых изображений с использованием библиотеки они представляются в виде массивов Numpy.Прямоугольная форма массива соответствует форме изображения.Рассмотрим это изображение стула
Вот визуализация того, как это изображение хранится в виде массива Numpy в OpenCV
Если мы прочитаем изображение стула, мы увидим, как оно структурировано с image.shape
, который возвращает кортеж (height, width, channels)
.Свойства изображения будут кортежем количества строк, столбцов и каналов, если это цветное изображение.Если это изображение в градациях серого, image.shape
возвращает только количество строк и столбцов.
import cv2
image = cv2.imread("chair.jpg")
print(image.shape)
(222, 300, 3)
При работе с изображениями OpenCV мы сначала указываем координату y
, а затем координату x
.Цвета хранятся в виде значений BGR
: синий в слое 0, зеленый в слое 1 и красный в слое 2. Таким образом, для этого изображения стула оно имеет высоту 222, ширину 300 и 3 канала (то естьэто цветное изображение).По сути, когда библиотека читает любое изображение, она сохраняет его как массив Numpy в этом формате.