class Image – объект Image

Image – центральный тип данных модуля image: буфер пикселей в памяти, с которым работают все процедуры рисования, все фильтры, все геометрические преобразования и все процедуры извлечения признаков. Каждый кадр, поступающий из csi.CSI.snapshot(), является объектом Image; то же относится к каждому кадру, загруженному с диска, декодированному из JPEG или PNG, выделенному из массива ndarray в стиле numpy или созданному как пустой холст для рисования.

Объект Image описывается тремя числами – width, height и pixformat – плюс непрерывным буфером пикселей. Формат пикселей определяет как размещение в памяти, так и доступные операции:

  • BINARY (1 bpp) – 1 бит на пиксель; используется для морфологии и порогового разделения.

  • GRAYSCALE (8 bpp) – 1 байт на пиксель; канонический формат для большинства задач машинного зрения (AprilTag, границы, ORB, оптический поток).

  • RGB565 (16 bpp) – 2 байта на пиксель (5R/6G/5B); цветовой формат по умолчанию.

  • BAYER (8 bpp) – сырые данные мозаики Байера непосредственно с датчика. Большинство методов машинного зрения недоступны для изображений Байера; сначала выполните дебайеризацию в GRAYSCALE / RGB565.

  • YUV422 (16 bpp) – цвет с цветовой субдискретизацией 4:2:2, два байта на пиксель. Только некоторые методы работают напрямую с YUV422.

  • JPEG / PNG – сжатые буферы. Операции на уровне пикселей требуют предварительного вызова to_grayscale() или to_rgb565().

Откуда берутся объекты Image

Существует четыре способа получить объект Image:

  • Из буфера кадра камерыcsi.CSI().snapshot() возвращает следующий захваченный кадр. Возвращаемый объект является тонкой оболочкой над памятью буфера кадра камеры, поэтому любая операция рисования / фильтрации над ним изменяет то, что отправляется в предпросмотр IDE и на дисплей.

  • Из файла – передайте строку пути в конструктор Image. BMP, PGM, PPM, JPEG и PNG декодируются непосредственно в ОЗУ (или в буфер кадра камеры, если copy_to_fb=True).

  • Из ndarray – передайте массив float32 формы (h, w) или (h, w, 3). Пиксели масштабируются из диапазона 0.0 -- 255.0 в GRAYSCALE или RGB565 соответственно.

  • Пустое – передайте (width, height, pixformat), чтобы выделить заполненную нулями поверхность для рисования. Для сжатых форматов пикселей (JPEG / PNG) требуется аргумент buffer=, который содержит сжатый поток байтов.

Типичный цикл захвата-обработки-вывода

import csi
import image

sensor = csi.CSI()
sensor.reset()
sensor.pixformat(csi.RGB565)
sensor.framesize(csi.QVGA)

while True:
    img = sensor.snapshot()                    # capture
    for blob in img.find_blobs([(30, 100, 15, 127, 15, 127)]):  # process
        img.draw_rectangle(blob.rect)          # annotate
    # img is shown automatically in the IDE preview and on any
    # attached display.

Индексация, длина, итерация и доступ как к bytes-объекту

  • Индексацияimg[i] читает пиксель i (линейно, построчно). img[i] = value записывает его. Пиксели grayscale / Bayer являются 8-битными целыми числами, пиксели RGB565 / YUV422 – 16-битными упакованными целыми числами, бинарные пиксели равны 0 / 1. Для изображений JPEG / PNG пространство индексов – это сжатый поток байтов, а не пиксели.

  • Длинаlen(img) возвращает количество пикселей для несжатых форматов или количество байтов для сжатых форматов.

  • Итерацияfor px in img: ... проходит по массиву пикселей в том же порядке, что и индексация через [].

  • Bytes-подобныйImage предоставляет протокол буфера чтения, поэтому вы можете передавать его напрямую всему, что принимает объект bytes / bytearray (например, uart.write(img), socket.send(img), hashlib.sha256(img)). Используйте bytearray() вместо этого, чтобы получить представление для чтения/записи.

Флаги-подсказки

Многие методы Image принимают аргумент hint, который является логическим ИЛИ следующих флагов:

  • image.AREA: использовать масштабирование по площади при уменьшении вместо метода ближайшего соседа по умолчанию.

  • image.BILINEAR: использовать билинейное масштабирование вместо масштабирования методом ближайшего соседа по умолчанию.

  • image.BICUBIC: использовать бикубическое масштабирование вместо масштабирования методом ближайшего соседа по умолчанию.

  • image.CENTER: центрировать рисуемое изображение на дисплее. Применяется после масштабирования.

  • image.HMIRROR: горизонтально отразить изображение.

  • image.VFLIP: вертикально перевернуть изображение.

  • image.TRANSPOSE: транспонировать изображение (поменять местами x/y).

  • image.EXTRACT_RGB_CHANNEL_FIRST: выполнить извлечение rgb_channel до масштабирования.

  • image.APPLY_COLOR_PALETTE_FIRST: применить цветовую палитру до масштабирования.

  • image.SCALE_ASPECT_KEEP: масштабировать рисуемое изображение так, чтобы оно поместилось внутри дисплея.

  • image.SCALE_ASPECT_EXPAND: масштабировать рисуемое изображение так, чтобы оно заполнило дисплей (приводит к обрезке).

  • image.SCALE_ASPECT_IGNORE: масштабировать рисуемое изображение так, чтобы оно заполнило дисплей (приводит к растяжению).

  • image.ROTATE_90: повернуть изображение на 90 градусов (это просто VFLIP | TRANSPOSE).

  • image.ROTATE_180: повернуть изображение на 180 градусов (это просто HMIRROR | VFLIP).

  • image.ROTATE_270: повернуть изображение на 270 градусов (это просто HMIRROR | TRANSPOSE).

  • image.BLACK_BACKGROUND: предполагать, что фоновое изображение, на котором происходит рисование, чёрное, что ускоряет смешивание. Поддерживается только методами Image.draw_image() и Image.get_similarity().

class image.Image(arg: str | int | ndarray, height: int = -1, pixformat: int = -1, *, buffer: bytes | bytearray | memoryview | None = None, copy_to_fb: bool = False)

Если arg – строка, то создаётся новый объект изображения из файла по пути arg. Поддерживается загрузка файлов изображений bmp/pgm/ppm/jpg/jpeg/png с диска. Если copy_to_fb равно true, изображение копируется в буфер кадра вместо выделения в куче.

Если arg – это ndarray, то создаётся новый объект изображения из ndarray. Объекты ndarray формы (w, h) трактуются как изображения в оттенках серого, (w, h, 3) – как изображения RGB565. В настоящее время поддерживаются только ndarrays с типом float32. При создании изображения таким способом, если вы передаёте аргумент buffer, он будет использован для хранения данных изображения вместо выделения места в куче. Если copy_to_fb равно true, изображение копируется в буфер кадра вместо выделения в куче или использования buffer.

Если arg – это int, то он считается шириной нового изображения, и за ним должны следовать значение height и значение format для создания нового пустого объекта изображения. format может быть любым значением pixformat изображения, например image.GRAYSCALE. Изображение будет инициализировано нулями. Обратите внимание, что для сжатых форматов изображений ожидается значение buffer. buffer рассматривается как источник данных изображения при создании изображений таким способом. При использовании вместе с copy_to_fb данные из buffer копируются в буфер кадра. Если вы хотите создать изображение JPEG из объекта JPEG bytes() или bytearray(), вы можете передать width, height, image.JPEG для JPEG вместе с установкой buffer в поток байтов JPEG, чтобы создать изображение JPEG.

Изображения поддерживают нотацию «[]». Используйте image[index] = 8/16-bit value для присвоения пикселя изображения или image[index] для получения пикселя изображения, который будет либо 8-битным значением для изображений grayscale/bayer, либо 16-битным значением для изображений RGB565/YUV. Бинарные изображения возвращают 1-битное значение.

Для изображений JPEG нотация «[]» позволяет получить доступ к сжатому блобу изображения JPEG как к байтовому массиву. Однако чтение и запись в массив данных непрозрачны, поскольку изображения JPEG являются сжатыми потоками байтов.

Изображения также поддерживают операции буфера чтения. Вы можете передавать изображения во всевозможные функции MicroPython, как если бы изображение было объектом байтового массива. В частности, если вы хотите передать изображение, вы можете просто передать его в функции записи UART/SPI/I2C для автоматической передачи.

Базовые методы

width() int

Возвращает ширину изображения в пикселях.

height() int

Возвращает высоту изображения в пикселях.

format() int

Возвращает image.GRAYSCALE для изображений в оттенках серого, image.RGB565 для изображений RGB565, image.BAYER для изображений с паттерном Байера и image.JPEG для изображений JPEG.

size() int

Возвращает размер изображения в байтах.

bytearray() bytearray

Возвращает объект bytearray, указывающий на данные изображения, для доступа к чтению/записи на уровне байтов.

Примечание

Объекты изображений автоматически приводятся к объектам bytes при передаче в драйвер MicroPython, который требует объект, подобный bytes. Это доступ только для чтения. Вызовите bytearray(), чтобы получить доступ для чтения/записи.

get_pixel(x: int, y: int, rgbtuple: bool | None = None) int | Tuple[int, int, int]

Для изображений в оттенках серого: возвращает значение пикселя в оттенках серого в позиции (x, y). Для изображений RGB565: возвращает кортеж пикселя RGB888 (r, g, b) в позиции (x, y). Для изображений с паттерном Байера: возвращает значение пикселя в позиции (x, y).

Возвращает None, если x или y находится за пределами изображения.

x и y могут передаваться либо независимо, либо в виде кортежа.

rgbtuple если True, заставляет этот метод возвращать кортеж RGB888. В противном случае этот метод возвращает целочисленное значение базового пикселя. То есть для изображений RGB565 этот метод возвращает значение RGB565. По умолчанию True для изображений RGB565 и False в остальных случаях.

Не поддерживается для сжатых изображений.

Примечание

Image.get_pixel() и Image.set_pixel() – единственные методы, которые позволяют манипулировать изображениями с паттерном Байера. Изображения с паттерном Байера – это буквальные изображения, в которых пиксели расположены R/G/R/G/и т.д. для чётных строк и G/B/G/B/и т.д. для нечётных строк. Каждый пиксель 8-битный. Если вы вызовете этот метод с установленным rgbtuple, то Image.get_pixel() выполнит дебайеризацию исходного изображения в этой позиции пикселя и вернёт корректный кортеж RGB888 для данной позиции пикселя.

set_pixel(x: int, y: int, pixel: int | Tuple[int, int, int]) Image

Для изображений в оттенках серого: устанавливает пиксель в позиции (x, y) в значение оттенка серого pixel. Для изображений RGB565: устанавливает пиксель в позиции (x, y) в кортеж RGB888 (r, g, b) pixel. Для изображений с паттерном Байера: устанавливает значение пикселя в позиции (x, y) в значение pixel.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

x и y могут передаваться либо независимо, либо в виде кортежа.

pixel может быть либо кортежем RGB888 (r, g, b), либо базовым значением пикселя (то есть значением RGB565 для изображений RGB565 или 8-битным значением для изображений в оттенках серого).

Не поддерживается для сжатых изображений.

Примечание

Image.get_pixel() и Image.set_pixel() – единственные методы, которые позволяют манипулировать изображениями с паттерном Байера. Изображения с паттерном Байера – это буквальные изображения, в которых пиксели расположены R/G/R/G/и т.д. для чётных строк и G/B/G/B/и т.д. для нечётных строк. Каждый пиксель 8-битный. Если вы вызовете этот метод с кортежем RGB888, значение оттенка серого этого кортежа RGB888 извлекается и устанавливается в позицию пикселя.

Методы преобразования

to_ndarray(dtype: str, buffer: bytes | bytearray | memoryview | None = None) ndarray

Возвращает объект ndarray, созданный из изображения. В настоящее время это работает только для изображений GRAYSCALE или RGB565.

dtype может быть b, B или f для создания знакового 8-битного, беззнакового 8-битного или 32-битного ndarray с плавающей точкой. Изображения GRAYSCALE напрямую преобразуются в беззнаковые 8-битные объекты ndarray. Для знаковых 8-битных объектов ndarray значения (0:255) отображаются в (-127:128). Для 32-битных объектов ndarray с плавающей точкой значения отображаются в (0.0:255.0). Изображения RGB565 преобразуются в 3-канальные объекты ndarray, и тот же процесс, описанный выше для изображений GRAYSCALE, применяется к каждому каналу в зависимости от dtype. Обратите внимание, что dtype также принимает целочисленные значения (например, через ord()) для b, B и f соответственно.

buffer если не None, является объектом bytearray для использования в качестве буфера для ndarray. Если None, новый буфер выделяется в куче для хранения данных изображения ndarray. Вы можете использовать аргумент buffer, чтобы напрямую выделить ndarray в предварительно выделенном буфере, экономя выделение в куче и операцию копирования.

Возвращаемый ndarray имеет форму (height, width) для изображений GRAYSCALE и (height, width, 3) для изображений RGB565.

to_bitmap(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Преобразует изображение в растровое изображение (1 бит на пиксель).

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Примечание

Растровые изображения подобны изображениям в оттенках серого, но имеют только два значения пикселей – 0 и 1. Кроме того, растровые изображения упакованы так, что хранят только 1 бит на пиксель, что делает их очень компактными. Библиотека изображений OpenMV позволяет использовать растровые изображения везде, где могут использоваться изображения sensor.GRAYSCALE и sensor.RGB565. Однако многие операции при применении к растровым изображениям не имеют смысла, поскольку растровые изображения имеют только 2 значения. OpenMV рекомендует использовать растровые изображения для значений mask в операциях и т.п., так как они довольно легко помещаются в куче MicroPython. Наконец, значения пикселей растрового изображения 0 и 1 интерпретируются как чёрный и белый при применении к изображениям sensor.GRAYSCALE или sensor.RGB565. Библиотека автоматически обрабатывает преобразование.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

to_grayscale(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Преобразует изображение в изображение в оттенках серого (8 бит на пиксель).

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

to_rgb565(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Преобразует изображение в изображение RGB565 (16 бит на пиксель).

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

to_rainbow(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image = PALETTE_RAINBOW, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Преобразует изображение в радужное изображение RGB565 (16 бит на пиксель).

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

to_ironbow(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image = PALETTE_IRONBOW, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Преобразует изображение в изображение RGB565 в палитре ironbow (16 бит на пиксель).

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

to_depth(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image = PALETTE_IRONBOW, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Преобразует изображение в изображение глубины RGB565 (16 бит на пиксель).

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть image.PALETTE_DEPTH или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

to_evt_dark(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image = PALETTE_IRONBOW, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Преобразует изображение в изображение тёмных событий RGB565 (16 бит на пиксель).

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

to_evt_light(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image = PALETTE_IRONBOW, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Преобразует изображение в изображение светлых событий RGB565 (16 бит на пиксель).

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

to_jpeg(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False, quality: int = 90, subsampling: int = 0) Image

Преобразует изображение в изображение JPEG.

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

quality управляет качеством сжатия изображения jpeg. Значение может быть от 0 до 100.

subsampling может быть:

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

to_png(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Преобразует изображение в изображение PNG.

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

compress(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False, quality: int = 90, subsampling: int = 0) Image

Преобразует изображение в изображение JPEG.

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

quality управляет качеством сжатия изображения jpeg. Значение может быть от 0 до 100.

subsampling может быть:

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Примечание

Image.compress является псевдонимом для Image.to_jpeg.

copy(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy_to_fb: bool = False) Image

Создаёт глубокую копию объекта изображения.

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

crop(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Изменяет изображение на месте без изменения базового типа изображения.

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

scale(x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, copy: bool = False, copy_to_fb: bool = False) Image

Изменяет изображение на месте без изменения базового типа изображения.

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (за исключением image.BLACK_BACKGROUND, который здесь не поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

copy если True, создаёт глубокую копию преобразованного изображения в куче вместо преобразования исходного изображения на месте.

copy_to_fb если True, изображение загружается непосредственно в буфер кадра. copy_to_fb имеет приоритет над copy. Это не имеет особого эффекта, если изображение уже находится в буфере кадра.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Примечание

Image.scale является псевдонимом для Image.crop.

save(path: str, roi: Tuple[int, int, int, int] | None = None, quality: int = 50) Image

Сохраняет копию изображения в файловой системе по пути path.

Поддерживает файлы изображений bmp/pgm/ppm/jpg/jpeg. Обратите внимание, что вы не можете сохранить сжатые jpeg-изображения в несжатый формат.

roi – это прямоугольник области интереса (x, y, w, h) для сохранения. Если не указан, он равен прямоугольнику изображения, что копирует всё изображение. Этот аргумент неприменим для изображений JPEG.

quality – это качество сжатия jpeg, используемое для сохранения изображения в формате jpeg, если изображение ещё не сжато (0-100) (int).

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

flush() None

Обновляет буфер кадра в IDE изображением из буфера кадра на камере.

Методы рисования

clear(mask: Image | None = None) Image

Устанавливает все пиксели изображения в ноль (очень быстро).

mask – это другое изображение, используемое в качестве маски на уровне пикселей для операции. Маска должна быть изображением только с чёрными или белыми пикселями и должна быть того же размера, что и обрабатываемое изображение. Изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений.

draw_line(x0: int, y0: int, x1: int, y1: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1) Image

Рисует линию от (x0, y0) до (x1, y1) на изображении. Вы можете передать x0, y0, x1, y1 по отдельности или в виде кортежа (x0, y0, x1, y1).

color – это кортеж RGB888 для изображений Grayscale или RGB565. По умолчанию белый. Однако вы также можете передать базовое значение пикселя (0-255) для изображений в оттенках серого или значение RGB565 для изображений RGB565.

thickness управляет толщиной линии в пикселях.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

draw_rectangle(x: int, y: int, w: int, h: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1, fill: bool = False) Image

Рисует прямоугольник на изображении. Вы можете передать x, y, w, h по отдельности или в виде кортежа (x, y, w, h).

color – это кортеж RGB888 для изображений Grayscale или RGB565. По умолчанию белый. Однако вы также можете передать базовое значение пикселя (0-255) для изображений в оттенках серого или значение RGB565 для изображений RGB565.

thickness управляет толщиной линий в пикселях.

Передайте fill равным True, чтобы заполнить прямоугольник.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

draw_circle(x: int, y: int, radius: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1, fill: bool = False) Image

Рисует окружность на изображении. Вы можете передать x, y, radius по отдельности или в виде кортежа (x, y, radius).

color – это кортеж RGB888 для изображений Grayscale или RGB565. По умолчанию белый. Однако вы также можете передать базовое значение пикселя (0-255) для изображений в оттенках серого или значение RGB565 для изображений RGB565.

thickness управляет толщиной краёв в пикселях.

Передайте fill равным True, чтобы заполнить окружность.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

draw_ellipse(cx: int, cy: int, rx: int, ry: int, rotation: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1, fill: bool = False) Image

Рисует эллипс на изображении. Вы можете передать cx, cy, rx, ry и поворот (в градусах) по отдельности или в виде кортежа (cx, yc, rx, ry, rotation).

color – это кортеж RGB888 для изображений Grayscale или RGB565. По умолчанию белый. Однако вы также можете передать базовое значение пикселя (0-255) для изображений в оттенках серого или значение RGB565 для изображений RGB565.

thickness управляет толщиной краёв в пикселях.

Передайте fill равным True, чтобы заполнить эллипс.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

draw_string(x: int, y: int, text: str, color: int | Tuple[int, int, int] | None = None, scale: float = 1, x_spacing: int = 0, y_spacing: int = 0, mono_space: bool = True, char_rotation: int = 0, char_hmirror: bool = False, char_vflip: bool = False, string_rotation: int = 0, string_hmirror: bool = False, string_vflip: bool = False) Image

Рисует текст 8x10, начиная с позиции (x, y) на изображении. Вы можете передать x, y по отдельности или в виде кортежа (x, y).

text – это строка для записи на изображение. Окончания строк \n, \r и \r\n перемещают курсор на следующую строку.

color – это кортеж RGB888 для изображений Grayscale или RGB565. По умолчанию белый. Однако вы также можете передать базовое значение пикселя (0-255) для изображений в оттенках серого или значение RGB565 для изображений RGB565.

scale может быть увеличен, чтобы увеличить/уменьшить размер текста на изображении. Вы можете передавать целочисленные значения больше 0 или значения с плавающей точкой.

x_spacing позволяет добавить (если положительное) или вычесть (если отрицательное) x пикселей между символами.

y_spacing позволяет добавить (если положительное) или вычесть (если отрицательное) y пикселей между символами (для многострочного текста).

mono_space по умолчанию True, что заставляет текст иметь фиксированное расстояние между символами. Для крупных масштабов текста это выглядит ужасно. Установите False, чтобы получить нефиксированное расстояние между символами, что выглядит ГОРАЗДО лучше.

char_rotation может быть 0, 90, 180, 270 для поворота каждого символа в строке на эту величину.

char_hmirror если True, горизонтально отражает все символы в строке.

char_vflip если True, вертикально переворачивает все символы в строке.

string_rotation может быть 0, 90, 180, 270 для поворота строки на эту величину.

string_hmirror если True, горизонтально отражает строку.

string_vflip если True, вертикально переворачивает строку.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

draw_cross(x: int, y: int, color: int | Tuple[int, int, int] | None = None, size: int = 5, thickness: int = 1) Image

Рисует крест в позиции x, y. Вы можете передать x, y по отдельности или в виде кортежа (x, y).

color – это кортеж RGB888 для изображений Grayscale или RGB565. По умолчанию белый. Однако вы также можете передать базовое значение пикселя (0-255) для изображений в оттенках серого или значение RGB565 для изображений RGB565.

size управляет длиной линий креста.

thickness управляет толщиной краёв в пикселях.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

draw_arrow(x0: int, y0: int, x1: int, y1: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1) Image

Рисует стрелку от (x0, y0) до (x1, y1) на изображении. Вы можете передать x0, y0, x1, y1 по отдельности или в виде кортежа (x0, y0, x1, y1).

color – это кортеж RGB888 для изображений Grayscale или RGB565. По умолчанию белый. Однако вы также можете передать базовое значение пикселя (0-255) для изображений в оттенках серого или значение RGB565 для изображений RGB565.

thickness управляет толщиной линии в пикселях.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

draw_detection(detection: Tuple[int, int, int, int, int, int], color1: int | Tuple[int, int, int] | None = None, color2: int | Tuple[int, int, int] | None = None, size: int = 5, thickness: int = 1, fill: bool = False, label: str | None = None, label_offset: Tuple[int, int] | None = None) Image

Рисует результат обнаружения на изображении. detection – это 6-элементный кортеж (rx, ry, rw, rh, cx, cy), описывающий ограничивающий прямоугольник и центроид (обычно возвращается кодом NN или цветового отслеживания).

color1 – цвет прямоугольника, а color2 – цвет креста центроида. size – размер креста центроида, thickness управляет шириной контура, а fill заполняет прямоугольник.

label если задан, рисуется рядом с прямоугольником со смещением label_offset (x, y).

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

draw_edges(corners: List[Tuple[int, int]], color: int | Tuple[int, int, int] | None = None, size: int = 0, thickness: int = 1, fill: bool = False) Image

Рисует линии-границы между точками списка углов, возвращаемого методами вроде blob.corners. Углы – это кортеж из четырёх значений, каждое из которых является кортежем из двух значений x/y. Например, [(x1,y1),(x2,y2),(x3,y3),(x4,y4)].

color – это кортеж RGB888 для изображений Grayscale или RGB565. По умолчанию белый. Однако вы также можете передать базовое значение пикселя (0-255) для изображений в оттенках серого или значение RGB565 для изображений RGB565.

size если больше 0, заставляет углы рисоваться в виде окружностей радиусом size.

thickness управляет толщиной линии в пикселях.

Передайте fill равным True, чтобы заполнить окружности углов, если они рисуются.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

draw_image(image: Image, x: int = 0, y: int = 0, x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, mask: Image | None = None) Image

Рисует изображение image, левый верхний угол которого начинается в позиции x, y. Вы можете передать x, y по отдельности или в виде кортежа (x, y). Этот метод автоматически обрабатывает отрисовку переданного изображения в правильном формате пикселей для изображения назначения, а также бесшовно обрабатывает обрезку.

Вы также можете передать путь вместо объекта изображения, чтобы этот метод автоматически загрузил изображение с диска и использовал его за один шаг. Например, draw_image("test.jpg").

x_scale управляет тем, насколько отображаемое изображение масштабируется в направлении x (float). Если это значение отрицательное, изображение будет отражено по горизонтали. Обратите внимание, что если y_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

y_scale управляет тем, насколько отображаемое изображение масштабируется в направлении y (float). Если это значение отрицательное, изображение будет перевёрнуто по вертикали. Обратите внимание, что если x_scale не указан, он будет соответствовать x_scale для сохранения соотношения сторон.

roi – это кортеж прямоугольника области интереса (x, y, w, h) исходного изображения для рисования. Это позволяет извлечь только пиксели в ROI для масштабирования и рисования на изображении назначения.

rgb_channel – это RGB-канал (0=R, G=1, B=2) для извлечения из изображения RGB565 (если передано) и отрисовки на изображении назначения. Например, если вы передадите rgb_channel=1, это извлечёт зелёный канал исходного изображения RGB565 и нарисует его в оттенках серого на изображении назначения.

alpha управляет тем, какая часть исходного изображения смешивается с изображением назначения. Значение 255 рисует непрозрачное исходное изображение, а значение ниже 255 создаёт смешение между исходным изображением и изображением назначения. 0 приводит к отсутствию изменений изображения назначения.

color_palette если не None, может быть перечислением цветовой палитры или изображением RGB565 размером 256 пикселей в общей сложности для использования в качестве таблицы поиска цвета по значению оттенка серого исходного изображения. Применяется после извлечения rgb_channel, если оно используется.

alpha_palette если не None, может быть изображением GRAYSCALE размером 256 пикселей в общей сложности для использования в качестве альфа-палитры, которая модулирует значение alpha рисуемого исходного изображения на уровне отдельных пикселей, позволяя точно управлять альфа-значением пикселей на основе их значения оттенка серого. Значение пикселя 255 в альфа-таблице поиска непрозрачно, а всё, что меньше 255, становится более прозрачным вплоть до 0. Применяется после извлечения rgb_channel, если оно используется.

hint – это логическое ИЛИ флагов, перечисленных в Флаги-подсказки (включая image.BLACK_BACKGROUND, который здесь поддерживается).

transform – это ndarray 3x3, который используется для выполнения перспективного преобразования изображения. В настоящее время поддерживается только на OpenMV Cam N6, так как у неё есть GPU, способный делать это аппаратно.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

draw_keypoints(keypoints: kp_desc | List[Tuple[int, int, int]], color: int | Tuple[int, int, int] | None = None, size: int = 10, thickness: int = 1, fill: bool = False) Image

Рисует ключевые точки объекта keypoints на изображении. Вы также можете передать список кортежей из трёх значений, содержащих (x, y, rotation_angle_in_degrees), чтобы повторно использовать этот метод для рисования глифов ключевых точек, которые представляют собой окружность с линией, указывающей в определённом направлении.

color – это кортеж RGB888 для изображений Grayscale или RGB565. По умолчанию белый. Однако вы также можете передать базовое значение пикселя (0-255) для изображений в оттенках серого или значение RGB565 для изображений RGB565.

size управляет тем, насколько большими являются ключевые точки.

thickness управляет толщиной линии в пикселях.

Передайте fill равным True, чтобы заполнить ключевые точки.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

flood_fill(x: int, y: int, seed_threshold: float = 0.05, floating_threshold: float = 0.05, color: int | Tuple[int, int, int] | None = None, invert: bool = False, clear_background: bool = False, mask: Image | None = None) Image

Выполняет заливку области изображения, начиная с позиции x, y. Вы можете передать x, y по отдельности или в виде кортежа (x, y).

seed_threshold управляет тем, насколько любой пиксель в области заливки может отличаться от исходного начального пикселя.

floating_threshold управляет тем, насколько любой пиксель в области заливки может отличаться от любых соседних пикселей.

color – это кортеж RGB888 для изображений Grayscale или RGB565. По умолчанию белый. Однако вы также можете передать базовое значение пикселя (0-255) для изображений в оттенках серого или значение RGB565 для изображений RGB565.

Передайте invert равным True, чтобы перекрасить всё за пределами связной области заливки.

Передайте clear_background равным True, чтобы обнулить остальные пиксели, которые заливка не перекрасила.

mask – это другое изображение, используемое в качестве маски на уровне пикселей для операции. Маска должна быть изображением только с чёрными или белыми пикселями и должна быть того же размера, что и обрабатываемое изображение. При заливке оцениваются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

Этот метод недоступен на OpenMV Cam M4.

draw_event_histogram(array: ndarray, clear: bool = True, brightness: int = 128, contrast: int = 16) Image

Растеризует ndarray событий (заполненный с помощью csi.IOCTL_GENX320_READ_EVENTS) на Image для визуализации. Буфер изображения должен быть изображением GRAYSCALE 320x320.

Для каждой строки csi.PIX_ON_EVENT к пикселю события добавляется +contrast; для каждой строки csi.PIX_OFF_EVENT из пикселя вычитается -contrast. События-триггеры игнорируются. Значения пикселей ограничиваются диапазоном 0-255.

clear если True, сбрасывает буфер изображения в brightness перед рисованием — каждый кадр становится свежей отрисовкой только событий. Установите в False, чтобы накапливать события в нескольких вызовах (полезно для следов движения с длинной выдержкой).

brightness управляет средне-серым базовым уровнем, в который сбрасывается буфер, когда clear равно True. По умолчанию 128 помещает события ON на яркий конец, а события OFF на тёмный конец с равным запасом.

contrast управляет тем, насколько каждое событие сдвигает свой пиксель — более высокие значения делают события заметнее ценой быстрого насыщения, когда много событий попадает в один и тот же пиксель.

Методы маскирования

mask_rectangle(x: int, y: int, w: int, h: int) Image

Обнуляет прямоугольную часть изображения. Если аргументы не предоставлены, этот метод обнуляет центр изображения.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

mask_circle(x: int, y: int, radius: int) Image

Обнуляет круглую часть изображения. Если аргументы не предоставлены, этот метод обнуляет центр изображения.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

mask_ellipse(x: int, y: int, radius_x: int, radius_y: int, rotation_angle_in_degrees: int) Image

Обнуляет эллиптическую часть изображения. Если аргументы не предоставлены, этот метод обнуляет центр изображения.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

Бинарные методы

binary(thresholds: List[Tuple[int, int]], invert: bool = False, zero: bool = False, mask: Image | None = None, to_bitmap: bool = False, copy: bool = False) Image

Устанавливает все пиксели изображения в чёрный или белый цвет в зависимости от того, находится ли каждый пиксель внутри одного из кортежей порогов в thresholds.

thresholds – это список кортежей (lo, hi) для изображений в оттенках серого или кортежей (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) для изображений RGB565. Перепутанные значения min/max исправляются автоматически; отсутствующие компоненты по умолчанию принимают максимальный диапазон.

invert инвертирует сопоставление порогов.

zero если True, обнуляет пиксели, прошедшие порог, и оставляет остальные нетронутыми.

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

to_bitmap если True, преобразует данные изображения в растровое изображение с 1 битом на пиксель. Для очень маленьких изображений это может потребовать copy=True.

copy если True, возвращает новое изображение в куче вместо изменения исходного изображения.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

invert() Image

Инвертирует все значения пикселей в изображении (каждый пиксель становится 255 - pixel для 8-битных каналов).

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

b_and(image: Image, mask: Image | None = None) Image

Выполняет логическое И этого изображения с другим изображением.

image может быть объектом изображения, путём к несжатому файлу изображения (bmp/pgm/ppm) или скалярным значением (кортеж RGB888 или базовое значение пикселя).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

b_nand(image: Image, mask: Image | None = None) Image

Выполняет логическое И-НЕ этого изображения с другим изображением.

image может быть объектом изображения, путём к несжатому файлу изображения (bmp/pgm/ppm) или скалярным значением (кортеж RGB888 или базовое значение пикселя).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

b_or(image: Image, mask: Image | None = None) Image

Выполняет логическое ИЛИ этого изображения с другим изображением.

image может быть объектом изображения, путём к несжатому файлу изображения (bmp/pgm/ppm) или скалярным значением (кортеж RGB888 или базовое значение пикселя).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

b_nor(image: Image, mask: Image | None = None) Image

Выполняет логическое ИЛИ-НЕ этого изображения с другим изображением.

image может быть объектом изображения, путём к несжатому файлу изображения (bmp/pgm/ppm) или скалярным значением (кортеж RGB888 или базовое значение пикселя).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

b_xor(image: Image, mask: Image | None = None) Image

Выполняет логическое исключающее ИЛИ этого изображения с другим изображением.

image может быть объектом изображения, путём к несжатому файлу изображения (bmp/pgm/ppm) или скалярным значением (кортеж RGB888 или базовое значение пикселя).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

b_xnor(image: Image, mask: Image | None = None) Image

Выполняет логическое исключающее ИЛИ-НЕ этого изображения с другим изображением.

image может быть объектом изображения, путём к несжатому файлу изображения (bmp/pgm/ppm) или скалярным значением (кортеж RGB888 или базовое значение пикселя).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

Методы ISP

awb(max: bool = False) Image

Выполняет автоматический баланс белого на изображении, используя алгоритм gray-world. Работает с изображениями RAW Bayer или RGB565. Не влияет на бинарные изображения / изображения в оттенках серого.

max если True, вместо этого использует алгоритм white-patch.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений yuv.

ccm(matrix: List[List[float]]) Image

Умножает переданную матрицу цветокоррекции с плавающей точкой на изображение. Матрицы могут быть 3x3 или 3x4 (со столбцом смещения), во вложенном списке или плоском списке:

[[rr, rg, rb], [gr, gg, gb], [br, bg, bb]]
[[rr, rg, rb, ro], [gr, gg, gb, go], [br, bg, bb, bo]]
[rr, rg, rb, ro, gr, gg, gb, go, br, bg, bb, bo]

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

gamma(gamma: float = 1.0, contrast: float = 1.0, brightness: float = 0.0) Image

Регулирует гамму, контраст и яркость изображения.

gamma применяет pow(pixel, 1/gamma) после нормализации. Значения больше 1.0 осветляют; меньше 1.0 затемняют.

contrast применяет pixel * contrast после нормализации.

brightness применяет pixel + brightness после нормализации.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

gamma_corr(gamma: float = 1.0, contrast: float = 1.0, brightness: float = 0.0) Image

Псевдоним для Image.gamma.

Математические методы

negate() Image

Псевдоним для Image.invert.

replace(image: Image | None = None, **kwargs) Image

Псевдоним для Image.draw_image(). Заменяет это изображение на image (или преобразует это изображение на месте, если image опущен), используя стандартные именованные аргументы draw_image. Аргумент transform – это ndarray 3x3, описывающий перспективное преобразование (поддерживается только на камерах OpenMV с включённым ULAB).

assign(image: Image | None = None, **kwargs) Image

Псевдоним для Image.replace().

set(image: Image | None = None, **kwargs) Image

Псевдоним для Image.replace().

add(image: Image, mask: Image | None = None) Image

Добавляет изображение к этому попиксельно.

image может быть объектом изображения, путём к несжатому файлу изображения (bmp/pgm/ppm) или скалярным значением (кортеж RGB888 или базовое значение пикселя).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

sub(image: Image, mask: Image | None = None) Image

Вычитает image попиксельно из этого изображения (self - image).

image может быть либо объектом изображения, путём к несжатому файлу изображения (bmp/pgm/ppm), либо скалярным значением (кортеж RGB888 или базовое значение пикселя).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Этот метод также принимает полный набор именованных аргументов Image.draw_image() (x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint, transform).

Не поддерживается для сжатых изображений или изображений bayer.

rsub(image: Image, mask: Image | None = None) Image

Обратное вычитание: заменяет это изображение на image - self попиксельно. В остальном идентично Image.sub().

min(image: Image, mask: Image | None = None) Image

Возвращает попиксельно минимальное изображение из двух изображений.

image может быть объектом изображения, путём к несжатому файлу изображения (bmp/pgm/ppm) или скалярным значением (кортеж RGB888 или базовое значение пикселя).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

max(image: Image, mask: Image | None = None) Image

Возвращает попиксельно максимальное изображение из двух изображений.

image может быть объектом изображения, путём к несжатому файлу изображения (bmp/pgm/ppm) или скалярным значением (кортеж RGB888 или базовое значение пикселя).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

difference(image: Image, mask: Image | None = None) Image

Возвращает изображение абсолютной разности между двумя изображениями (например, ||a-b||).

image может быть объектом изображения, путём к несжатому файлу изображения (bmp/pgm/ppm) или скалярным значением (кортеж RGB888 или базовое значение пикселя).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

blend(image: Image, x: int = 0, y: int = 0, alpha: int = 128, mask: Image | None = None, **kwargs) Image

Псевдоним для Image.draw_image(). Выполняет альфа-смешение image с этим изображением. alpha – это целое число 0-256; значения ближе к 256 отдают предпочтение исходному изображению. Принимает все именованные аргументы Image.draw_image().

histeq(adaptive: bool = False, clip_limit: float = -1, mask: Image | None = None) Image

Выполняет выравнивание гистограммы на изображении для нормализации контраста и яркости.

adaptive если True, выполняет адаптивное выравнивание гистограммы (медленнее, но обычно лучше).

clip_limit ограничивает контраст в адаптивном варианте (небольшое значение вроде 10 даёт хорошие результаты CLAHE).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

Методы фильтрации

erode(size: int, threshold: int | None = None, mask: Image | None = None) Image

Удаляет пиксели с краёв сегментированных областей. Свёртывает ядро ((size*2)+1)x((size*2)+1) по изображению, очищая центральный пиксель, если более threshold соседей очищены (действует как стандартная эрозия, если threshold равно None).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

dilate(size: int, threshold: int | None = None, mask: Image | None = None) Image

Добавляет пиксели к краям сегментированных областей. Свёртывает ядро ((size*2)+1)x((size*2)+1) по изображению, устанавливая центральный пиксель, если более threshold соседей установлены (действует как стандартная дилатация, если threshold равно None).

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

open(size: int, threshold: int | None = None, mask: Image | None = None) Image

Выполняет эрозию, затем дилатацию. См. Image.erode() и Image.dilate().

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Не поддерживается для сжатых изображений или изображений bayer/yuv.

close(size: int, threshold: int | None = None, mask: Image | None = None) Image

Выполняет дилатацию, затем эрозию. См. Image.dilate() и Image.erode().

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Не поддерживается для сжатых изображений или изображений bayer/yuv.

top_hat(size: int, threshold: int | None = None, mask: Image | None = None) Image

Возвращает разность изображения и изображения после Image.open().

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Не поддерживается для сжатых изображений или изображений bayer/yuv.

black_hat(size: int, threshold: int | None = None, mask: Image | None = None) Image

Возвращает разность изображения и изображения после Image.close().

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Не поддерживается для сжатых изображений или изображений bayer/yuv.

mean(size: int, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Стандартный фильтр усреднения с использованием блочного фильтра.

size – это размер ядра. Используйте 1 (ядро 3x3), 2 (ядро 5x5) и т.д.

threshold если True, адаптивно применяет пороговое разделение к выходу фильтра для получения бинарного изображения. offset сдвигает бинаризацию (отрицательное делает больше пикселей белыми, положительное делает меньше). invert инвертирует бинарный выход.

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

median(size: int, percentile: float | None = 0.5, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Выполняет процентильный фильтр на изображении (по умолчанию медианный).

size – это размер ядра. Используйте 1 (ядро 3x3), 2 (ядро 5x5) и т.д.

percentile – это процентиль для выбора из каждого ядра (0 = min, 0.5 = медиана, 1.0 = max). По умолчанию 0.5.

threshold если True, адаптивно применяет пороговое разделение к выходу фильтра для получения бинарного изображения. offset сдвигает бинаризацию (отрицательное делает больше пикселей белыми, положительное делает меньше). invert инвертирует бинарный выход.

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

mode(size: int, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Заменяет каждый пиксель модой его соседей. Может создавать артефакты на краях RGB-изображений из-за нелинейной операции.

size – это размер ядра. Используйте 1 (ядро 3x3), 2 (ядро 5x5) и т.д.

threshold если True, адаптивно применяет пороговое разделение к выходу фильтра для получения бинарного изображения. offset сдвигает бинаризацию (отрицательное делает больше пикселей белыми, положительное делает меньше). invert инвертирует бинарный выход.

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

midpoint(size: int, bias: float | None = 0.5, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Выполняет фильтр среднего значения (midpoint) на изображении. Этот фильтр находит среднюю точку ((max-min)/2) каждой окрестности пикселя в изображении.

size – это размер ядра. Используйте 1 (ядро 3x3), 2 (ядро 5x5) и т.д.

bias управляет смешением min/max. 0 для фильтрации только по min, 1.0 для фильтрации только по max. Используя bias, вы можете применять min/max-фильтрацию к изображению.

threshold если True, адаптивно применяет пороговое разделение к выходу фильтра для получения бинарного изображения. offset сдвигает бинаризацию (отрицательное делает больше пикселей белыми, положительное делает меньше). invert инвертирует бинарный выход.

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

morph(size: int, kernel: list, mul: float | None = 1.0, add: float | None = 0.0, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Свёртывает изображение с произвольным ядром фильтра.

size управляет размером ядра, которое должно содержать ((size*2)+1)x((size*2)+1) элементов.

kernel – это ядро для свёртки, в виде плоского одномерного списка/кортежа из ((size*2)+1)*((size*2)+1) элементов или в виде двумерного списка/кортежа с ((size*2)+1) строками по ((size*2)+1) элементов.

mul – это мультипликативный масштаб контраста (по умолчанию 1.0).

add – это аддитивное смещение яркости (по умолчанию 0.0).

threshold если True, адаптивно применяет пороговое разделение к выходу фильтра для получения бинарного изображения. offset сдвигает бинаризацию (отрицательное делает больше пикселей белыми, положительное делает меньше). invert инвертирует бинарный выход.

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

gaussian(size: int, unsharp: bool | None = False, mul: float | None = 1.0, add: float | None = 0.0, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Свёртывает изображение со сглаживающим гауссовым ядром.

size – это размер ядра. Используйте 1 (ядро 3x3), 2 (ядро 5x5) и т.д.

unsharp если True, выполняет операцию нерезкого маскирования (резкость краёв) вместо обычного гауссова сглаживания.

mul – это мультипликативный масштаб контраста (по умолчанию 1.0).

add – это аддитивное смещение яркости (по умолчанию 0.0).

threshold если True, адаптивно применяет пороговое разделение к выходу фильтра для получения бинарного изображения. offset сдвигает бинаризацию (отрицательное делает больше пикселей белыми, положительное делает меньше). invert инвертирует бинарный выход.

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

laplacian(size: int, sharpen: bool | None = False, mul: float | None = 1.0, add: float | None = 0.0, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Свёртывает изображение с лапласовым ядром обнаружения границ.

size – это размер ядра. Используйте 1 (ядро 3x3), 2 (ядро 5x5) и т.д.

sharpen если True, повышает резкость изображения вместо вывода сырого отклика границ без порогового разделения.

mul – это мультипликативный масштаб контраста (по умолчанию 1.0).

add – это аддитивное смещение яркости (по умолчанию 0.0).

threshold если True, адаптивно применяет пороговое разделение к выходу фильтра для получения бинарного изображения. offset сдвигает бинаризацию (отрицательное делает больше пикселей белыми, положительное делает меньше). invert инвертирует бинарный выход.

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

bilateral(size: int, color_sigma: float | None = 0.1, space_sigma: float | None = 1.0, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image

Свёртывает изображение с билатеральным фильтром (сглаживание с сохранением границ).

size – это размер ядра. Используйте 1 (ядро 3x3), 2 (ядро 5x5) и т.д.

color_sigma управляет допуском сопоставления цветов; большие значения дают больше размытия цвета.

space_sigma управляет пространственным размытием; большие значения дают больше размытия пикселей.

threshold если True, адаптивно применяет пороговое разделение к выходу фильтра для получения бинарного изображения. offset сдвигает бинаризацию (отрицательное делает больше пикселей белыми, положительное делает меньше). invert инвертирует бинарный выход.

mask – это бинарное изображение, используемое в качестве маски на уровне пикселей; изменяются только пиксели, установленные в маске.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer/yuv.

Геометрические методы

linpolar(reverse: bool = False, *, x: int | None = None, y: int | None = None) Image

Перепроецирует изображение из декартовых координат в линейные полярные координаты.

Установите reverse=True для перепроецирования в противоположном направлении.

x и y задают координату центра преобразования в пикселях изображения. Если x равно None (по умолчанию), он устанавливается в половину ширины изображения; аналогично y по умолчанию равен половине высоты изображения.

Линейное полярное перепроецирование превращает вращение изображения в смещение по x.

Не поддерживается для сжатых изображений или изображений bayer.

Этот метод недоступен на OpenMV Cam M4.

logpolar(reverse: bool = False, *, x: int | None = None, y: int | None = None) Image

Перепроецирует изображение из декартовых координат в логарифмические полярные координаты.

Установите reverse=True для перепроецирования в противоположном направлении.

x и y задают координату центра преобразования в пикселях изображения. Если x равно None (по умолчанию), он устанавливается в половину ширины изображения; аналогично y по умолчанию равен половине высоты изображения.

Логарифмическое полярное перепроецирование превращает вращение изображения в смещение по x, а масштабирование/зум в смещение по y.

Не поддерживается для сжатых изображений или изображений bayer.

Этот метод недоступен на OpenMV Cam M4.

lens_corr(strength: float = 1.8, zoom: float = 1.0, x_corr: float = 0.0, y_corr: float = 0.0) Image

Выполняет коррекцию объектива для устранения эффекта рыбьего глаза на изображении, вызванного искажением объектива.

strength – это float, определяющий, насколько устранять эффект рыбьего глаза на изображении. Попробуйте 1.8 по умолчанию, а затем увеличивайте или уменьшайте, пока изображение не будет выглядеть хорошо.

zoom – это величина приближения изображения. По умолчанию 1.0.

x_corr смещение пикселей с плавающей точкой от центра. Может быть отрицательным или положительным.

y_corr смещение пикселей с плавающей точкой от центра. Может быть отрицательным или положительным.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

rotation_corr(x_rotation: float = 0.0, y_rotation: float = 0.0, z_rotation: float = 0.0, x_translation: float = 0.0, y_translation: float = 0.0, zoom: float = 1.0, fov: float = 60.0, corners: List[Tuple[int, int]] | None = None) Image

Исправляет проблемы перспективы на изображении путём выполнения 3D-поворота буфера кадра.

x_rotation – это количество градусов для поворота изображения в буфере кадра вокруг оси x (то есть это вращает изображение вверх и вниз).

y_rotation – это количество градусов для поворота изображения в буфере кадра вокруг оси y (то есть это вращает изображение влево и вправо).

z_rotation – это количество градусов для поворота изображения в буфере кадра вокруг оси z (то есть это вращает изображение на месте).

x_translation – это количество единиц для перемещения изображения влево или вправо после поворота. Поскольку это перемещение применяется в 3D-пространстве, единицы не являются пикселями…

y_translation – это количество единиц для перемещения изображения вверх или вниз после поворота. Поскольку это перемещение применяется в 3D-пространстве, единицы не являются пикселями…

zoom – это величина приближения изображения. По умолчанию 1.0.

fov – это поле зрения, используемое для внутреннего проецирования 2D->3D. По мере приближения fov к 0 изображение помещается в бесконечность; по мере приближения к 180 изображение помещается внутри области просмотра.

corners – это список из четырёх кортежей (x, y), используемых для построения 4-точечной гомографии, отображающей углы в (0, 0), (image_width-1, 0), (image_width-1, image_height-1) и (0, image_height-1) перед применением 3D-поворота. Полезно для преобразований вида с высоты птичьего полёта.

Возвращает объект изображения, чтобы вы могли вызвать другой метод, используя нотацию ..

Не поддерживается для сжатых изображений или изображений bayer.

Этот метод недоступен на OpenMV Cam M4.

Методы получения данных

get_similarity(image: Image, x: int = 0, y: int = 0, x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 255, color_palette: int | Image | None = None, alpha_palette: Image | None = None, hint: int = 0, transform: ndarray | None = None, dssim: bool = False) Similarity

Вычисляет сходство между двумя изображениями, используя индекс структурного сходства (SSIM). SSIM находится в диапазоне от -1 (противоположные) до 1 (идентичные). Возвращает объект image.similarity.

image – это изображение для сравнения (объект изображения или строка пути, например "test.jpg").

x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint и transform принимают те же значения, что и Image.draw_image().

dssim если True, вместо этого возвращает индекс структурного несходства (DSSIM), где 0 означает идентичность, а 1 означает полное различие.

get_histogram(thresholds: List[Tuple[int, int]] | None = None, invert: bool = False, roi: Tuple[int, int, int, int] | None = None, bins: int = -1, l_bins: int = -1, a_bins: int = -1, b_bins: int = -1, difference: Image | None = None) histogram

Вычисляет нормализованную гистограмму по всем цветовым каналам для roi и возвращает объект image.histogram. Также доступно как Image.get_hist() или Image.histogram().

thresholds – это список кортежей (lo, hi) для изображений в оттенках серого или кортежей (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) для изображений RGB565. Если передан, гистограмма вычисляется только по пикселям в пределах порогов.

invert инвертирует сопоставление порогов.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

bins (grayscale) или l_bins/a_bins/b_bins (RGB565) задают количество интервалов гистограммы на канал. Должно быть больше 2. По умолчанию равно максимальному количеству интервалов на канал.

difference может быть установлен в объект изображения для работы с разностью между текущим изображением и этим изображением без дополнительного буфера.

Не поддерживается для сжатых изображений или изображений bayer.

get_statistics(thresholds: List[Tuple[int, int]] | None = None, invert: bool = False, roi: Tuple[int, int, int, int] | None = None, bins: int = -1, l_bins: int = -1, a_bins: int = -1, b_bins: int = -1, difference: Image | None = None) statistics

Вычисляет среднее, медиану, моду, стандартное отклонение, min, max, нижний квартиль и верхний квартиль для всех цветовых каналов для roi и возвращает объект image.statistics. Также доступно как Image.get_stats() или Image.statistics().

thresholds – это список кортежей (lo, hi) для изображений в оттенках серого или кортежей (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) для изображений RGB565. Если передан, статистика вычисляется только по пикселям в пределах порогов.

invert инвертирует сопоставление порогов.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

bins (grayscale) или l_bins/a_bins/b_bins (RGB565) задают количество интервалов гистограммы на канал. Должно быть больше 2. По умолчанию равно максимальному количеству интервалов на канал.

difference может быть установлен в объект изображения для работы с разностью между текущим изображением и этим изображением без дополнительного буфера.

Не поддерживается для сжатых изображений или изображений bayer.

get_regression(thresholds: List[Tuple[int, int]], invert: bool = False, roi: Tuple[int, int, int, int] | None = None, x_stride: int = 2, y_stride: int = 1, area_threshold: int = 10, pixels_threshold: int = 10, target_size: Tuple[int, int] = (80, 60)) line

Вычисляет линейную регрессию (Theil-Sen) по всем пикселям изображения, прошедшим пороговое разделение. Возвращает объект image.line или None, если линия не найдена.

thresholds – это список кортежей (lo, hi) для изображений в оттенках серого или кортежей (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) для изображений RGB565.

invert инвертирует сопоставление порогов.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

x_stride и y_stride управляют тем, сколько пикселей пропускается при оценке изображения.

area_threshold минимальная площадь ограничивающей рамки; меньшие результаты возвращают None.

pixels_threshold минимальное количество пикселей, прошедших порог; меньшие результаты возвращают None.

target_size – это кортеж (w, h). ROI масштабируется по площади до размера, помещающегося внутри этого размера, перед запуском алгоритма O(N^2). По умолчанию (80, 60).

Не поддерживается для сжатых изображений или изображений bayer.

Методы обнаружения

find_blobs(thresholds: List[Tuple[int, int]], invert: bool = False, roi: Tuple[int, int, int, int] | None = None, x_stride: int = 2, y_stride: int = 1, area_threshold: int = 10, pixels_threshold: int = 10, merge: bool = False, margin: int = 0, threshold_cb: Callable | None = None, merge_cb: Callable | None = None, x_hist_bins_max: int = 0, y_hist_bins_max: int = 0) List[blob]

Находит все блобы (связные области пикселей, прошедшие пороговый тест) на изображении и возвращает список объектов image.blob.

thresholds – это список кортежей (lo, hi) для изображений в оттенках серого или кортежей (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) для изображений RGB565 (каналы LAB). Может быть передано до 32 кортежей. Перепутанные значения min/max исправляются автоматически; отсутствующие компоненты по умолчанию принимают максимальный диапазон.

invert инвертирует сопоставление порогов.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

x_stride и y_stride управляют тем, сколько пикселей пропускается при поиске блоба. Увеличьте, если известно, что блобы большие.

area_threshold минимальная площадь ограничивающей рамки; меньшие блобы отфильтровываются.

pixels_threshold минимальное количество пикселей, прошедших порог; меньшие блобы отфильтровываются.

merge если True, объединяет блобы, чьи ограничивающие прямоугольники пересекаются. margin увеличивает/уменьшает ограничивающие прямоугольники, используемые для пересечения. Объединённые блобы выполняют логическое ИЛИ своих битовых векторов code (один бит на порог).

threshold_cb вызывается для каждого блоба после порогового разделения; верните True для сохранения, False для фильтрации.

merge_cb вызывается для каждой пары блобов, которые собираются объединить; верните True для разрешения объединения, False для его предотвращения.

x_hist_bins_max если ненулевое, заполняет каждый блоб проекцией x_histogram с этим количеством интервалов.

y_hist_bins_max если ненулевое, заполняет каждый блоб проекцией y_histogram с этим количеством интервалов.

Не поддерживается для сжатых изображений или изображений bayer.

find_lines(roi: Tuple[int, int, int, int] | None = None, x_stride: int = 2, y_stride: int = 1, threshold: int = 1000, theta_margin: int = 25, rho_margin: int = 25) List[line]

Находит все бесконечные линии на изображении, используя преобразование Хафа. Возвращает список объектов image.line.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

x_stride и y_stride управляют тем, сколько пикселей пропускается во время преобразования Хафа.

threshold минимальная величина линии (сумма величин Собеля вдоль линии); линии ниже этого значения отфильтровываются.

theta_margin и rho_margin управляют объединением: линии в пределах этих порогов объединяются.

Не поддерживается для сжатых изображений или изображений bayer.

Этот метод недоступен на OpenMV Cam M4.

find_line_segments(roi: Tuple[int, int, int, int] | None = None, merge_distance: int = 0, max_theta_difference: int = 15) List[line]

Находит сегменты линий на изображении. Возвращает список объектов image.line.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

merge_distance – это максимальное расстояние в пикселях между двумя сегментами для их объединения.

max_theta_difference – это максимальная разница theta в градусах между сегментами для их объединения.

Этот метод недоступен на OpenMV Cam M4.

find_circles(roi: Tuple[int, int, int, int] | None = None, x_stride: int = 2, y_stride: int = 1, threshold: int = 2000, x_margin: int = 10, y_margin: int = 10, r_margin: int = 10, r_min: int = 2, r_max: int | None = None, r_step: int = 2) List[circle]

Находит окружности на изображении, используя преобразование Хафа. Возвращает список объектов image.circle.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

x_stride и y_stride управляют тем, сколько пикселей пропускается во время преобразования Хафа.

threshold минимальная величина окружности (сумма величин Собеля вдоль окружности); окружности ниже этого значения отфильтровываются.

x_margin, y_margin и r_margin управляют объединением: окружности в пределах этих порогов объединяются.

r_min минимальный радиус окружности. По умолчанию 2.

r_max максимальный радиус окружности. По умолчанию min(roi.w/2, roi.h/2).

r_step размер шага радиуса. По умолчанию 2.

Этот метод недоступен на OpenMV Cam M4.

find_rects(roi: Tuple[int, int, int, int] | None = None, threshold: int = 1000) List[rect]

Находит прямоугольники на изображении, используя алгоритм обнаружения четырёхугольников apriltag. Возвращает список объектов image.rect.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

threshold минимальная величина границы (сумма величин Собеля вдоль границ прямоугольника); прямоугольники ниже этого значения отфильтровываются.

Этот метод недоступен на OpenMV Cam M4.

find_qrcodes(roi: Tuple[int, int, int, int] | None = None) List[qrcode]

Находит все qrcode в пределах roi и возвращает список объектов image.qrcode.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

Этот метод недоступен на OpenMV Cam M4.

find_apriltags(roi: Tuple[int, int, int, int] | None = None, families: int = TAG36H11, fx: float | None = None, fy: float | None = None, cx: float | None = None, cy: float | None = None) List[apriltag]

Находит все apriltag в пределах roi и возвращает список объектов image.apriltag.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

families – это битовая маска семейств тегов для декодирования. Это логическое ИЛИ:

По умолчанию image.TAG36H11. Время обнаружения масштабируется с количеством включённых семейств.

fx и fy – это фокусные расстояния камеры по X и Y в пикселях.

cx и cy – это центр изображения, обычно image.width()/2 и image.height()/2.

Не поддерживается для сжатых изображений.

Этот метод недоступен на OpenMV Cam M4.

find_datamatrices(roi: Tuple[int, int, int, int] | None = None, effort: int = 200) List[datamatrix]

Находит все datamatrix в пределах roi и возвращает список объектов image.datamatrix.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

effort управляет тем, сколько времени тратить на попытки найти совпадения data matrix. Более высокие значения улучшают обнаружение ценой частоты кадров. Значения ниже ~160 не обнаруживают; значения выше ~240 дают убывающую отдачу. По умолчанию 200.

Этот метод недоступен на OpenMV Cam M4.

find_barcodes(roi: Tuple[int, int, int, int] | None = None) List[barcode]

Находит все 1D-штрихкоды в пределах roi и возвращает список объектов image.barcode. Сканирует как горизонтально, так и вертикально.

Поддерживаемые типы штрихкодов: image.EAN2, image.EAN5, image.EAN8, image.UPCE, image.ISBN10, image.UPCA, image.EAN13, image.ISBN13, image.I25, image.DATABAR (RSS-14), image.DATABAR_EXP (RSS-Expanded), image.CODABAR, image.CODE39, image.PDF417, image.CODE93, image.CODE128.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

Этот метод недоступен на OpenMV Cam M4.

find_displacement(template: Image, roi: Tuple[int, int, int, int] | None = None, template_roi: Tuple[int, int, int, int] | None = None, logpolar: bool = False, fix_rotation_scale: bool = False) displacement

Находит смещение трансляции этого изображения от template, используя фазовую корреляцию. Возвращает объект image.displacement.

roi – это прямоугольник области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

template_roi – это область интереса шаблона. По умолчанию равна прямоугольнику изображения шаблона. roi и template_roi должны иметь одинаковую ширину и высоту.

logpolar если True, возвращает изменение поворота/масштаба вместо смещения по x/y.

fix_rotation_scale если True, вычисляет смещение после выравнивания поворота и масштаба (имеет смысл только при logpolar=False).

Примечание

Используйте этот метод на размерах изображения, являющихся степенью 2 (например, sensor.B64X64).

Не поддерживается для сжатых изображений или изображений bayer. Недоступно на OpenMV Cam M4.

find_template(template: Image, threshold: float, roi: Tuple[int, int, int, int] | None = None, step: int = 2, search: int = SEARCH_EX) Tuple[int, int, int, int] | None

Пытается найти первое местоположение на изображении, где template совпадает, используя нормализованную взаимную корреляцию. Возвращает кортеж ограничивающей рамки (x, y, w, h) или None.

template – это изображение в оттенках серого для сопоставления с этим изображением.

threshold – это значение (0.0-1.0). Более высокие значения уменьшают ложные срабатывания и обнаружения; более низкие значения делают обратное.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

step – это количество пикселей для пропуска во время поиска (используется только в режиме image.SEARCH_EX).

search – это image.SEARCH_DS (более быстрый алмазный поиск) или image.SEARCH_EX (исчерпывающий поиск).

Работает только с изображениями в оттенках серого.

find_features(cascade: Cascade, threshold: float = 0.5, scale: float = 1.5, roi: Tuple[int, int, int, int] | None = None) List[Tuple[int, int, int, int]]

Ищет на изображении области, соответствующие переданному каскаду Хаара, и возвращает список кортежей ограничивающих рамок (x, y, w, h). Возвращает пустой список, если признаки не найдены.

cascade – это объект Haar Cascade (см. image.HaarCascade()).

threshold (0.0-1.0). Более низкие значения повышают частоту обнаружения и частоту ложных срабатываний.

scale должен быть больше 1.0. Более высокие значения работают быстрее, но дают худшие совпадения.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

find_eye(roi: Tuple[int, int, int, int]) Tuple[int, int]

Ищет зрачок в кортеже области интереса (x, y, w, h) вокруг глаза. Возвращает местоположение (x, y) зрачка или (0, 0), если ничего не найдено.

roi – это кортеж прямоугольника области интереса (x, y, w, h).

Работает только с изображениями в оттенках серого.

find_lbp(roi: Tuple[int, int, int, int]) lbp_descriptor

Извлекает ключевые точки LBP (local-binary-patterns) из области интереса. Используйте image.match_descriptor() для сравнения двух дескрипторов.

roi – это кортеж прямоугольника области интереса (x, y, w, h).

Работает только с изображениями в оттенках серого.

find_keypoints(roi: Tuple[int, int, int, int] | None = None, threshold: int = 20, normalized: bool = False, scale_factor: float = 1.5, max_keypoints: int = 100, corner_detector: int = CORNER_AGAST) kp_descriptor | None

Извлекает ключевые точки ORB из области интереса. Используйте image.match_descriptor() для сравнения двух дескрипторов. Возвращает None, если ключевые точки не найдены.

roi – это кортеж прямоугольника области интереса (x, y, w, h). По умолчанию равен прямоугольнику изображения.

threshold (0-255) управляет количеством извлекаемых углов. Более низкие пороги дают больше углов. Используйте ~20 для AGAST, ~60-80 для FAST.

normalized если True, отключает многоразрешающее извлечение ключевых точек.

scale_factor должен быть больше 1.0. Более высокие значения работают быстрее, но дают худшие совпадения.

max_keypoints – это максимальное количество ключевых точек для сохранения.

corner_detector – это image.CORNER_FAST или image.CORNER_AGAST.

Работает только с изображениями в оттенках серого.

find_edges(edge_type: int, threshold: Tuple[int, int] = (100, 200)) Image

Превращает изображение в чёрно-белое, оставляя только границы в виде белых пикселей.

  • image.EDGE_SIMPLE - Простой алгоритм высокочастотного фильтра с пороговым разделением.

  • image.EDGE_CANNY - Алгоритм обнаружения границ Канни.

threshold – это кортеж из двух значений, содержащий нижний и верхний порог. Вы можете управлять качеством границ, регулируя эти значения. По умолчанию (100, 200).

Работает только с изображениями в оттенках серого.

find_hog(roi: Tuple[int, int, int, int] | None = None, size: int = 8) Image

Заменяет пиксели в ROI линиями HOG (histogram of orientated gradients).

roi – это кортеж прямоугольника области интереса (x, y, w, h). Если не указан, он равен прямоугольнику изображения. Операции выполняются только над пикселями в пределах roi.

Работает только с изображениями в оттенках серого.

Этот метод недоступен на OpenMV Cam M4.

stereo_disparity(reversed: bool = False, max_disparity: int = 64, threshold: int = 64) Image

Принимает изображение двойной ширины в оттенках серого, содержащее вывод двух расположенных рядом датчиков камеры, и заменяет одну половину изображением стереодиспаратности (каждый пиксель представляет глубину). Например, для двух камер 320x240 передайте изображение 640x240.

reversed По умолчанию левое изображение сравнивается с правым, и правое изображение заменяется. Установите True, чтобы сравнивать справа->налево и заменять левое изображение.

max_disparity – это максимальное расстояние (1-255) для поиска совпадающего блока пикселей с использованием суммы абсолютных разностей. Большие значения занимают экспоненциально больше времени, но дают более качественный вывод.

threshold если сумма абсолютных разностей между двумя блоками меньше или равна этому порогу, они считаются совпадающими.

Выполняет выборочный поиск на изображении и возвращает список кортежей ограничивающих рамок (x, y, w, h) предложений объектов.

threshold – это порог сегментации; более высокие значения дают меньше/больше областей.

size – это минимальный размер области после объединения.

a1, a2, a3 – это веса сходства цвета/текстуры/размера, используемые при объединении областей.