class Image – Image 객체

Imageimage 모듈의 핵심 데이터 타입으로, 모든 그리기 루틴, 모든 필터, 모든 기하 변환, 모든 특징 추출 루틴이 동작하는 메모리 내 픽셀 버퍼입니다. csi.CSI.snapshot() 에서 나오는 모든 프레임은 Image 입니다. 디스크에서 불러온 프레임, JPEG 또는 PNG에서 디코딩한 프레임, numpy 스타일의 ndarray 에서 할당한 프레임, 빈 그리기 캔버스로 생성한 프레임도 마찬가지입니다.

Image 은 세 개의 숫자 – width, height, pixformat – 와 연속된 픽셀 버퍼로 기술됩니다. 픽셀 포맷은 메모리 내 레이아웃과 사용 가능한 연산을 모두 결정합니다:

  • BINARY (1 bpp) – 픽셀당 1비트; 모폴로지와 임계값 처리에 사용됩니다.

  • GRAYSCALE (8 bpp) – 픽셀당 1바이트; 대부분의 CV(AprilTag, 에지, ORB, 옵티컬 플로우)를 위한 표준 포맷입니다.

  • RGB565 (16 bpp) – 픽셀당 2바이트(5R/6G/5B); 기본 색상 포맷입니다.

  • BAYER (8 bpp) – 센서에서 바로 나오는 원본 베이어 모자이크 데이터입니다. 대부분의 CV 메서드는 베이어 이미지에서 사용할 수 없으므로 먼저 GRAYSCALE / RGB565로 디베이어하십시오.

  • YUV422 (16 bpp) – 4:2:2 크로마 서브샘플링 색상으로, 픽셀당 2바이트입니다. 일부 메서드만 YUV422에서 직접 동작합니다.

  • JPEG / PNG – 압축된 버퍼입니다. 픽셀 단위 연산을 하려면 먼저 to_grayscale() 또는 to_rgb565() 가 필요합니다.

Image 객체가 어디에서 오는가

Image 을 얻는 방법은 네 가지가 있습니다:

  • 카메라 프레임 버퍼에서csi.CSI().snapshot() 은 다음에 캡처된 프레임을 반환합니다. 반환된 객체는 카메라의 프레임 버퍼 메모리를 감싼 얇은 래퍼이므로, 그 위에서 수행하는 모든 그리기 / 필터 연산은 IDE 미리보기와 디스플레이로 전송되는 내용을 변경합니다.

  • 파일에서Image 생성자에 경로 문자열을 전달합니다. BMP, PGM, PPM, JPEG, PNG는 RAM으로 직접(또는 copy_to_fb=True 인 경우 카메라 프레임 버퍼로) 디코딩됩니다.

  • ndarray에서(h, w) 또는 (h, w, 3) float32 배열을 전달합니다. 픽셀은 0.0 -- 255.0 에서 각각 GRAYSCALE 또는 RGB565로 스케일링됩니다.

  • 빈 이미지(width, height, pixformat) 을 전달하여 0으로 채워진 그리기 표면을 할당합니다. 압축 픽셀 포맷(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.

인덱싱, 길이, 반복, 바이트류 접근

  • 인덱싱img[i] 는 픽셀 i 를 읽습니다(선형, 행 우선). img[i] = value 는 픽셀을 씁니다. 그레이스케일 / 베이어 픽셀은 8비트 정수이고, RGB565 / YUV422 픽셀은 16비트로 패킹된 정수이며, 이진 픽셀은 0 / 1입니다. JPEG / PNG 이미지의 경우 인덱스 공간은 픽셀이 아니라 압축된 바이트 스트림입니다.

  • 길이len(img) 는 비압축 포맷의 경우 픽셀 수를, 압축 포맷의 경우 바이트 수를 반환합니다.

  • 반복for px in img: ...[] 인덱싱과 동일한 순서로 픽셀 배열을 순회합니다.

  • 바이트류Image 은 읽기 버퍼 프로토콜을 노출하므로 bytes / bytearray 를 받는 모든 곳에 직접 전달할 수 있습니다(예: uart.write(img), socket.send(img), hashlib.sha256(img)). 읽기/쓰기 뷰를 얻으려면 대신 bytearray() 를 사용하십시오.

힌트 플래그

많은 Image 메서드는 다음 플래그들의 논리적 OR인 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 가 참이면 이미지가 힙에 할당되는 대신 프레임 버퍼로 복사됩니다.

argndarray 이면 그 ndarray 로부터 새 이미지 객체를 생성합니다. 형상이 (w, h)ndarray 객체는 그레이스케일 이미지로, (w, h, 3) 인 객체는 RGB565 이미지로 처리됩니다. 현재로서는 float32 부동소수점 ndarrays 만 지원됩니다. 이 방식으로 이미지를 생성할 때 buffer 인자를 전달하면 힙에 공간을 할당하는 대신 그 버퍼가 이미지 데이터를 저장하는 데 사용됩니다. copy_to_fb 가 참이면 이미지가 힙에 할당되거나 buffer 를 사용하는 대신 프레임 버퍼로 복사됩니다.

argint 이면 새 이미지의 너비로 간주되며, 새 빈 이미지 객체를 생성하기 위해 height 값과 format 값이 뒤따라야 합니다. formatimage.GRAYSCALE 과 같은 임의의 이미지 pixformat 값일 수 있습니다. 이미지는 모두 0으로 초기화됩니다. 압축 이미지 포맷의 경우 buffer 값이 필요함에 유의하십시오. 이 방식으로 이미지를 생성할 때 buffer 는 이미지 데이터의 소스로 간주됩니다. copy_to_fb 와 함께 사용하면 buffer 의 데이터가 프레임 버퍼로 복사됩니다. JPEG bytes() 또는 bytearray() 객체로부터 JPEG 이미지를 생성하려면 JPEG에 대해 width, height, image.JPEG 를 전달하고 buffer 를 JPEG 바이트 스트림으로 설정하여 JPEG 이미지를 생성할 수 있습니다.

이미지는 “[]” 표기법을 지원합니다. image[index] = 8/16-bit value 으로 이미지 픽셀을 할당하거나 image[index] 로 이미지 픽셀을 가져올 수 있으며, 이 값은 그레이스케일/베이어 이미지의 경우 8비트 값, RGB565/YUV 이미지의 경우 16비트 값입니다. 이진 이미지는 1비트 값을 반환합니다.

JPEG 이미지의 경우 “[]” 는 압축된 JPEG 이미지 블롭을 바이트 배열로 접근하게 해줍니다. 다만 JPEG 이미지는 압축된 바이트 스트림이므로 데이터 배열에 대한 읽기와 쓰기는 불투명합니다.

이미지는 읽기 버퍼 연산도 지원합니다. 이미지가 바이트 배열 객체인 것처럼 온갖 종류의 MicroPython 함수에 전달할 수 있습니다. 특히 이미지를 전송하고 싶다면 UART/SPI/I2C 쓰기 함수에 그냥 전달하기만 하면 자동으로 전송됩니다.

기본 메서드

width() int

이미지 너비를 픽셀 단위로 반환합니다.

height() int

이미지 높이를 픽셀 단위로 반환합니다.

format() int

그레이스케일 이미지의 경우 image.GRAYSCALE, RGB565 이미지의 경우 image.RGB565, 베이어 패턴 이미지의 경우 image.BAYER, JPEG 이미지의 경우 image.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 이미지의 경우: (x, y) 위치의 RGB888 픽셀 튜플 (r, g, b)을 반환합니다. 베이어 패턴 이미지의 경우: (x, y) 위치의 픽셀 값을 반환합니다.

x 또는 y 가 이미지 밖에 있으면 None을 반환합니다.

xy 는 개별적으로 또는 튜플로 전달할 수 있습니다.

rgbtuple 가 True이면 이 메서드는 RGB888 튜플을 반환합니다. 그렇지 않으면 이 메서드는 기저 픽셀의 정수 값을 반환합니다. 즉, RGB565 이미지의 경우 이 메서드는 RGB565 값을 반환합니다. RGB565 이미지에서는 True가, 그 외에는 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 값으로 설정합니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

xy 는 개별적으로 또는 튜플로 전달할 수 있습니다.

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 은 부호 있는 8비트, 부호 없는 8비트, 32비트 부동소수점 ndarray 를 생성하기 위해 b, B, 또는 f 가 될 수 있습니다. GRAYSCALE 이미지는 부호 없는 8비트 ndarray 객체로 직접 변환됩니다. 부호 있는 8비트 ndarray 객체의 경우 값 (0:255)이 (-127:128)로 매핑됩니다. float 32비트 ndarray 객체의 경우 값이 (0.0:255.0)로 매핑됩니다. RGB565 이미지는 3채널 ndarray 객체로 변환되며, 위에서 GRAYSCALE 이미지에 대해 설명한 동일한 과정이 dtype 에 따라 각 채널에 적용됩니다. dtype 은 각각 b, B, f 의 정수 값(예: ord())도 받음에 유의하십시오.

bufferNone 이 아니면 ndarray 의 버퍼로 사용할 bytearray 객체입니다. None 이면 ndarray 이미지 데이터를 저장하기 위해 힙에 새 버퍼가 할당됩니다. buffer 인자를 사용하여 미리 할당된 버퍼에 ndarray 를 직접 할당함으로써 힙 할당과 복사 연산을 절약할 수 있습니다.

반환되는 ndarray 는 GRAYSCALE 이미지의 경우 (height, width) 형상을, RGB565 이미지의 경우 (height, width, 3) 형상을 갖습니다.

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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

참고

비트맵 이미지는 0과 1이라는 두 가지 픽셀 값만 갖는다는 점에서 그레이스케일 이미지와 비슷합니다. 또한 비트맵 이미지는 픽셀당 1비트만 저장하도록 패킹되어 매우 작습니다. OpenMV 이미지 라이브러리는 sensor.GRAYSCALEsensor.RGB565 이미지를 사용할 수 있는 모든 곳에서 비트맵 이미지를 사용할 수 있게 합니다. 다만 비트맵 이미지는 값이 2개뿐이므로 비트맵 이미지에 적용할 때 많은 연산은 의미가 없습니다. OpenMV는 비트맵 이미지를 MicroPython 힙에 매우 쉽게 들어맞으므로 연산 등에서 mask 값으로 사용하기를 권장합니다. 마지막으로, 비트맵 이미지 픽셀 값 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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

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 아이언보우 이미지(픽셀당 16비트)로 변환합니다.

x_scale 은 표시되는 이미지가 x 방향으로 얼마나 스케일링되는지를 제어합니다(float). 이 값이 음수이면 이미지가 수평으로 반전됩니다. y_scale 이 지정되지 않으면 종횡비를 유지하기 위해 x_scale 과 일치함에 유의하십시오.

y_scale 은 표시되는 이미지가 y 방향으로 얼마나 스케일링되는지를 제어합니다(float). 이 값이 음수이면 이미지가 수직으로 반전됩니다. x_scale 이 지정되지 않으면 종횡비를 유지하기 위해 x_scale 과 일치함에 유의하십시오.

roi 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 image.PALETTE_DEPTH 이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

quality 는 jpeg 이미지 압축 품질을 제어합니다. 값은 0과 100 사이일 수 있습니다.

subsampling 은 다음 중 하나가 될 수 있습니다:

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

참고

Image.compressImage.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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는 image.BLACK_BACKGROUND 는 제외).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

copy 가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.

copy_to_fb 가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다. copy_to_fbcopy 보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

참고

Image.scaleImage.crop 의 별칭입니다.

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

이미지의 복사본을 파일 시스템의 path 에 저장합니다.

bmp/pgm/ppm/jpg/jpeg 이미지 파일을 지원합니다. jpeg 압축 이미지는 비압축 포맷으로 저장할 수 없음에 유의하십시오.

roi 는 저장할 관심 영역(ROI) 직사각형 (x, y, w, h)입니다. 지정하지 않으면 전체 이미지를 복사하는 이미지 직사각형과 같습니다. 이 인자는 JPEG 이미지에는 적용되지 않습니다.

quality 는 이미지가 아직 압축되지 않은 경우 이미지를 jpeg 포맷으로 저장하는 데 사용할 jpeg 압축 품질입니다(0-100)(int).

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

flush() None

카메라의 프레임 버퍼에 있는 이미지로 IDE의 프레임 버퍼를 업데이트합니다.

그리기 메서드

clear(mask: Image | None = None) Image

이미지의 모든 픽셀을 0으로 설정합니다(매우 빠름).

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 는 그레이스케일 또는 RGB565 이미지를 위한 RGB888 튜플입니다. 기본값은 흰색입니다. 다만 그레이스케일 이미지의 경우 기저 픽셀 값(0-255)을, RGB565 이미지의 경우 RGB565 값을 전달할 수도 있습니다.

thickness 는 선이 픽셀 단위로 얼마나 두꺼운지를 제어합니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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 는 그레이스케일 또는 RGB565 이미지를 위한 RGB888 튜플입니다. 기본값은 흰색입니다. 다만 그레이스케일 이미지의 경우 기저 픽셀 값(0-255)을, RGB565 이미지의 경우 RGB565 값을 전달할 수도 있습니다.

thickness 는 선이 픽셀 단위로 얼마나 두꺼운지를 제어합니다.

fill 을 True로 전달하여 직사각형을 채웁니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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 는 그레이스케일 또는 RGB565 이미지를 위한 RGB888 튜플입니다. 기본값은 흰색입니다. 다만 그레이스케일 이미지의 경우 기저 픽셀 값(0-255)을, RGB565 이미지의 경우 RGB565 값을 전달할 수도 있습니다.

thickness 는 에지가 픽셀 단위로 얼마나 두꺼운지를 제어합니다.

fill 을 True로 전달하여 원을 채웁니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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 는 그레이스케일 또는 RGB565 이미지를 위한 RGB888 튜플입니다. 기본값은 흰색입니다. 다만 그레이스케일 이미지의 경우 기저 픽셀 값(0-255)을, RGB565 이미지의 경우 RGB565 값을 전달할 수도 있습니다.

thickness 는 에지가 픽셀 단위로 얼마나 두꺼운지를 제어합니다.

fill 을 True로 전달하여 타원을 채웁니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

이미지의 (x, y) 위치에서 시작하여 8x10 텍스트를 그립니다. x, y를 개별적으로 또는 튜플 (x, y)로 전달할 수 있습니다.

text 는 이미지에 쓸 문자열입니다. \n, \r, \r\n 줄 끝 문자는 커서를 다음 줄로 이동시킵니다.

color 는 그레이스케일 또는 RGB565 이미지를 위한 RGB888 튜플입니다. 기본값은 흰색입니다. 다만 그레이스케일 이미지의 경우 기저 픽셀 값(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이면 문자열을 수직으로 뒤집습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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 는 그레이스케일 또는 RGB565 이미지를 위한 RGB888 튜플입니다. 기본값은 흰색입니다. 다만 그레이스케일 이미지의 경우 기저 픽셀 값(0-255)을, RGB565 이미지의 경우 RGB565 값을 전달할 수도 있습니다.

size 는 십자의 선이 얼마나 길게 뻗는지를 제어합니다.

thickness 는 에지가 픽셀 단위로 얼마나 두꺼운지를 제어합니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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 는 그레이스케일 또는 RGB565 이미지를 위한 RGB888 튜플입니다. 기본값은 흰색입니다. 다만 그레이스케일 이미지의 경우 기저 픽셀 값(0-255)을, RGB565 이미지의 경우 RGB565 값을 전달할 수도 있습니다.

thickness 는 선이 픽셀 단위로 얼마나 두꺼운지를 제어합니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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) 만큼 오프셋되어 그려집니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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 와 같은 메서드가 반환한 모서리 목록 사이에 선 에지를 그립니다. Corners는 두 값짜리 x/y 튜플들로 이루어진 네 값짜리 튜플입니다. 예: [(x1,y1),(x2,y2),(x3,y3),(x4,y4)].

color 는 그레이스케일 또는 RGB565 이미지를 위한 RGB888 튜플입니다. 기본값은 흰색입니다. 다만 그레이스케일 이미지의 경우 기저 픽셀 값(0-255)을, RGB565 이미지의 경우 RGB565 값을 전달할 수도 있습니다.

size 가 0보다 크면 모서리가 반지름 size 의 원으로 그려집니다.

thickness 는 선이 픽셀 단위로 얼마나 두꺼운지를 제어합니다.

그려진 경우 모서리 원을 채우려면 fill 을 True로 전달하십시오.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

왼쪽 위 모서리가 x, y 위치에서 시작하는 image 를 그립니다. 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 는 그릴 소스 이미지의 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 이를 통해 ROI 내의 픽셀만 추출하여 대상 이미지에 스케일링하여 그릴 수 있습니다.

rgb_channel 은 (전달된 경우) RGB565 이미지에서 추출하여 대상 이미지에 렌더링할 RGB 채널(0=R, G=1, B=2)입니다. 예를 들어 rgb_channel=1 을 전달하면 소스 RGB565 이미지의 녹색 채널을 추출하여 대상 이미지에 그레이스케일로 그립니다.

alpha 는 소스 이미지를 대상 이미지에 얼마나 많이 블렌딩할지를 제어합니다. 값이 255이면 불투명한 소스 이미지를 그리고, 255보다 낮은 값이면 소스 이미지와 대상 이미지 간의 블렌드를 생성합니다. 0이면 대상 이미지가 수정되지 않습니다.

color_paletteNone 이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

alpha_paletteNone 이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의 alpha 값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우 rgb_channel 추출 이후에 적용됩니다.

hintHint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되는 image.BLACK_BACKGROUND 포함).

transform 은 이미지에 원근 변환을 수행하는 데 사용되는 3x3 ndarray 입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

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 는 그레이스케일 또는 RGB565 이미지를 위한 RGB888 튜플입니다. 기본값은 흰색입니다. 다만 그레이스케일 이미지의 경우 기저 픽셀 값(0-255)을, RGB565 이미지의 경우 RGB565 값을 전달할 수도 있습니다.

size 는 키포인트가 얼마나 큰지를 제어합니다.

thickness 는 선이 픽셀 단위로 얼마나 두꺼운지를 제어합니다.

fill 을 True로 전달하여 키포인트를 채웁니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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 는 그레이스케일 또는 RGB565 이미지를 위한 RGB888 튜플입니다. 기본값은 흰색입니다. 다만 그레이스케일 이미지의 경우 기저 픽셀 값(0-255)을, RGB565 이미지의 경우 RGB565 값을 전달할 수도 있습니다.

플러드 필 연결 영역 바깥의 모든 것을 다시 색칠하려면 invert 를 True로 전달하십시오.

플러드 필이 다시 색칠하지 않은 나머지 픽셀을 0으로 만들려면 clear_background 를 True로 전달하십시오.

mask 는 연산을 위한 픽셀 단위 마스크로 사용할 또 다른 이미지입니다. 마스크는 검은색 또는 흰색 픽셀만 있는 이미지여야 하며 연산 대상 이미지와 같은 크기여야 합니다. 플러드 필 시 마스크에 설정된 픽셀만 평가됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

이 메서드는 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 에 래스터화합니다. 이미지 버퍼는 320x320 GRAYSCALE 이미지여야 합니다.

csi.PIX_ON_EVENT 행에 대해 이벤트의 픽셀에 +contrast 가 더해지고, 각 csi.PIX_OFF_EVENT 행에 대해 픽셀에 -contrast 가 더해집니다. 트리거 이벤트는 무시됩니다. 픽셀 값은 0-255로 클램핑됩니다.

clear 가 True이면 그리기 전에 이미지 버퍼를 brightness 로 재설정합니다 — 모든 프레임이 새로운 이벤트 전용 렌더가 됩니다. 여러 호출에 걸쳐 이벤트를 누적하려면 False로 설정하십시오(장노출 모션 트레일에 유용).

brightnessclear 가 True일 때 버퍼가 재설정되는 중간 회색 기준선을 제어합니다. 기본값 128은 ON 이벤트를 밝은 쪽 끝에, OFF 이벤트를 어두운 쪽 끝에 동일한 여유로 배치합니다.

contrast 는 각 이벤트가 자신의 픽셀을 얼마나 이동시키는지를 제어합니다 — 값이 높을수록 이벤트가 두드러지지만, 많은 이벤트가 같은 픽셀에 들어올 때 빠르게 포화되는 대가가 따릅니다.

마스킹 메서드

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

이미지의 직사각형 부분을 0으로 만듭니다. 인자가 제공되지 않으면 이 메서드는 이미지의 중앙을 0으로 만듭니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

이미지의 원형 부분을 0으로 만듭니다. 인자가 제공되지 않으면 이 메서드는 이미지의 중앙을 0으로 만듭니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

이미지의 타원 모양 부분을 0으로 만듭니다. 인자가 제공되지 않으면 이 메서드는 이미지의 중앙을 0으로 만듭니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

이진 메서드

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) 튜플 목록이거나, RGB565 이미지의 경우 (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) 튜플 목록입니다. 뒤바뀐 min/max 값은 자동으로 수정되며, 누락된 구성 요소는 기본적으로 최대 범위가 됩니다.

invert 는 임계값 매칭을 반전합니다.

zero 가 True이면 임계값에 든 픽셀을 0으로 만들고 나머지는 그대로 둡니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

to_bitmap 가 True이면 이미지 데이터를 픽셀당 1비트 비트맵으로 변환합니다. 매우 작은 이미지의 경우 copy=True 가 필요할 수 있습니다.

copy 가 True이면 소스 이미지를 수정하는 대신 힙에 새 이미지를 반환합니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

invert() Image

이미지의 모든 픽셀 값을 반전합니다(8비트 채널의 경우 각 픽셀이 255 - pixel 이 됨).

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/yuv 이미지에서는 지원되지 않습니다.

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

이 이미지를 다른 이미지와 논리적으로 AND합니다.

image 는 이미지 객체, 비압축 이미지 파일(bmp/pgm/ppm)의 경로, 또는 스칼라 값(RGB888 튜플 또는 기저 픽셀 값)일 수 있습니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

이 이미지를 다른 이미지와 논리적으로 NAND합니다.

image 는 이미지 객체, 비압축 이미지 파일(bmp/pgm/ppm)의 경로, 또는 스칼라 값(RGB888 튜플 또는 기저 픽셀 값)일 수 있습니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

이 이미지를 다른 이미지와 논리적으로 OR합니다.

image 는 이미지 객체, 비압축 이미지 파일(bmp/pgm/ppm)의 경로, 또는 스칼라 값(RGB888 튜플 또는 기저 픽셀 값)일 수 있습니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

이 이미지를 다른 이미지와 논리적으로 NOR합니다.

image 는 이미지 객체, 비압축 이미지 파일(bmp/pgm/ppm)의 경로, 또는 스칼라 값(RGB888 튜플 또는 기저 픽셀 값)일 수 있습니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

이 이미지를 다른 이미지와 논리적으로 XOR합니다.

image 는 이미지 객체, 비압축 이미지 파일(bmp/pgm/ppm)의 경로, 또는 스칼라 값(RGB888 튜플 또는 기저 픽셀 값)일 수 있습니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

이 이미지를 다른 이미지와 논리적으로 XNOR합니다.

image 는 이미지 객체, 비압축 이미지 파일(bmp/pgm/ppm)의 경로, 또는 스칼라 값(RGB888 튜플 또는 기저 픽셀 값)일 수 있습니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

ISP 메서드

awb(max: bool = False) Image

그레이 월드 알고리즘을 사용하여 이미지에 자동 화이트 밸런스를 수행합니다. RAW 베이어 또는 RGB565 이미지에서 동작합니다. 이진/그레이스케일 이미지에는 효과가 없습니다.

max 가 True이면 대신 화이트 패치 알고리즘을 사용합니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 또는 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]

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/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 를 적용합니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 또는 베이어/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() 의 별칭입니다. 표준 draw_image 키워드 인자를 사용하여 이 이미지를 image 로 대체합니다(또는 image 가 생략된 경우 이 이미지를 제자리에서 변환합니다). transform 인자는 원근 변환을 기술하는 3x3 ndarray 입니다(ULAB가 활성화된 OpenMV 카메라에서만 지원됨).

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 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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)도 받습니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

두 이미지의 픽셀 단위 최댓값 이미지를 반환합니다.

image 는 이미지 객체, 비압축 이미지 파일(bmp/pgm/ppm)의 경로, 또는 스칼라 값(RGB888 튜플 또는 기저 픽셀 값)일 수 있습니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

두 이미지 간의 절대 차이 이미지를 반환합니다(예: ||a-b||).

image 는 이미지 객체, 비압축 이미지 파일(bmp/pgm/ppm)의 경로, 또는 스칼라 값(RGB888 튜플 또는 기저 픽셀 값)일 수 있습니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

필터링 메서드

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

세그먼트화된 영역의 가장자리에서 픽셀을 제거합니다. ((size*2)+1)x((size*2)+1) 커널을 이미지 전체에 컨볼루션하여, threshold 개보다 많은 이웃이 비어 있으면 중앙 픽셀을 비웁니다(threshold 가 None이면 표준 침식으로 동작).

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/yuv 이미지에서는 지원되지 않습니다.

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

세그먼트화된 영역의 가장자리에 픽셀을 추가합니다. ((size*2)+1)x((size*2)+1) 커널을 이미지 전체에 컨볼루션하여, threshold 개보다 많은 이웃이 설정되어 있으면 중앙 픽셀을 설정합니다(threshold 가 None이면 표준 팽창으로 동작).

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/yuv 이미지에서는 지원되지 않습니다.

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

침식 후 팽창을 수행합니다. Image.erode()Image.dilate() 를 참조하십시오.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

압축 이미지나 베이어/yuv 이미지에서는 지원되지 않습니다.

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

팽창 후 침식을 수행합니다. Image.dilate()Image.erode() 를 참조하십시오.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

압축 이미지나 베이어/yuv 이미지에서는 지원되지 않습니다.

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

이미지와 Image.open() 처리된 이미지의 이미지 차이를 반환합니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

압축 이미지나 베이어/yuv 이미지에서는 지원되지 않습니다.

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

이미지와 Image.close() 처리된 이미지의 이미지 차이를 반환합니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

압축 이미지나 베이어/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 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/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 = 최소, 0.5 = 중앙값, 1.0 = 최대). 기본값은 0.5입니다.

threshold 가 True이면 필터 출력을 이진 이미지로 적응형 임계값 처리합니다. offset 은 이진화를 이동시킵니다(음수는 흰색 픽셀을 더 많이, 양수는 더 적게 만듦). invert 는 이진 출력을 반전합니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/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 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/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

이미지에 중간점 필터를 실행합니다. 이 필터는 이미지에서 각 픽셀 이웃의 중간점 ((max-min)/2)을 찾습니다.

size 는 커널 크기입니다. 1(3x3 커널), 2(5x5 커널) 등을 사용하십시오.

bias 는 min/max 혼합을 제어합니다. min 필터링만 하려면 0, max 필터링만 하려면 1.0입니다. bias 를 사용하여 이미지를 min/max 필터링할 수 있습니다.

threshold 가 True이면 필터 출력을 이진 이미지로 적응형 임계값 처리합니다. offset 은 이진화를 이동시킵니다(음수는 흰색 픽셀을 더 많이, 양수는 더 적게 만듦). invert 는 이진 출력을 반전합니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/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) 개 요소의 평면 1D 리스트/튜플이거나, ((size*2)+1) 개 요소의 ((size*2)+1) 개 행으로 된 2D 리스트/튜플입니다.

mul 은 곱셈 대비 스케일입니다(기본값 1.0).

add 는 덧셈 밝기 오프셋입니다(기본값 0.0).

threshold 가 True이면 필터 출력을 이진 이미지로 적응형 임계값 처리합니다. offset 은 이진화를 이동시킵니다(음수는 흰색 픽셀을 더 많이, 양수는 더 적게 만듦). invert 는 이진 출력을 반전합니다.

mask 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/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 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/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 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/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 는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어/yuv 이미지에서는 지원되지 않습니다.

기하 메서드

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

이미지를 데카르트 좌표에서 선형 극좌표로 다시 투영합니다.

반대 방향으로 다시 투영하려면 reverse=True 로 설정하십시오.

xy 는 변환의 중심 좌표를 이미지 픽셀 단위로 지정합니다. xNone (기본값)이면 이미지 너비의 절반으로 설정됩니다. 마찬가지로 y 의 기본값은 이미지 높이의 절반입니다.

선형 극좌표 다시 투영은 이미지의 회전을 x-이동으로 바꿉니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

이 메서드는 OpenMV Cam M4에서는 사용할 수 없습니다.

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

이미지를 데카르트 좌표에서 로그 극좌표로 다시 투영합니다.

반대 방향으로 다시 투영하려면 reverse=True 로 설정하십시오.

xy 는 변환의 중심 좌표를 이미지 픽셀 단위로 지정합니다. xNone (기본값)이면 이미지 너비의 절반으로 설정됩니다. 마찬가지로 y 의 기본값은 이미지 높이의 절반입니다.

로그 극좌표 다시 투영은 이미지의 회전을 x-이동으로, 스케일링/줌을 y-이동으로 바꿉니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

이 메서드는 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 는 중심으로부터의 부동소수점 픽셀 오프셋입니다. 음수 또는 양수가 될 수 있습니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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 는 3D 회전을 적용하기 전에 모서리를 (0, 0), (image_width-1, 0), (image_width-1, image_height-1), (0, image_height-1)에 매핑하는 4점 호모그래피를 구성하는 데 사용되는 네 개의 (x, y) 튜플 목록입니다. 조감도 변환에 유용합니다.

. 표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

이 메서드는 OpenMV Cam M4에서는 사용할 수 없습니다.

Get 메서드

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, transformImage.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) 튜플 목록이거나, RGB565 이미지의 경우 (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) 튜플 목록입니다. 전달된 경우 히스토그램은 임계값 내의 픽셀에 대해서만 계산됩니다.

invert 는 임계값 매칭을 반전합니다.

roi 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

bins (그레이스케일) 또는 l_bins/a_bins/b_bins (RGB565)는 채널당 히스토그램 빈의 개수를 설정합니다. 2보다 커야 합니다. 기본값은 채널당 최대 빈 개수입니다.

difference 는 추가 버퍼 없이 현재 이미지와 그 이미지 간의 차이에 대해 동작하도록 이미지 객체로 설정될 수 있습니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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

roi 에 대해 모든 색상 채널의 평균, 중앙값, 최빈값, 표준편차, 최소, 최대, 하위 사분위수, 상위 사분위수를 계산하고 image.statistics 객체를 반환합니다. Image.get_stats() 또는 Image.statistics() 로도 사용할 수 있습니다.

thresholds 는 그레이스케일 이미지의 경우 (lo, hi) 튜플 목록이거나, RGB565 이미지의 경우 (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) 튜플 목록입니다. 전달된 경우 통계는 임계값 내의 픽셀에 대해서만 계산됩니다.

invert 는 임계값 매칭을 반전합니다.

roi 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

bins (그레이스케일) 또는 l_bins/a_bins/b_bins (RGB565)는 채널당 히스토그램 빈의 개수를 설정합니다. 2보다 커야 합니다. 기본값은 채널당 최대 빈 개수입니다.

difference 는 추가 버퍼 없이 현재 이미지와 그 이미지 간의 차이에 대해 동작하도록 이미지 객체로 설정될 수 있습니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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) 튜플 목록이거나, RGB565 이미지의 경우 (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) 튜플 목록입니다.

invert 는 임계값 매칭을 반전합니다.

roi 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

x_stridey_stride 는 이미지를 평가하는 동안 건너뛸 픽셀 수를 제어합니다.

area_threshold 는 최소 경계 상자 면적입니다. 그보다 작은 결과는 None을 반환합니다.

pixels_threshold 는 최소 임계값 픽셀 수입니다. 그보다 작은 결과는 None을 반환합니다.

target_size(w, h) 튜플입니다. O(N^2) 알고리즘을 실행하기 전에 ROI가 이 크기 안에 들어맞도록 영역 스케일링으로 축소됩니다. 기본값은 (80, 60) 입니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

검출 메서드

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) 튜플 목록이거나, RGB565 이미지의 경우 (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) 튜플(LAB 채널) 목록입니다. 최대 32개의 튜플을 전달할 수 있습니다. 뒤바뀐 min/max 값은 자동으로 수정되며, 누락된 구성 요소는 기본적으로 최대 범위가 됩니다.

invert 는 임계값 매칭을 반전합니다.

roi 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

x_stridey_stride 는 블롭을 검색하는 동안 건너뛸 픽셀 수를 제어합니다. 블롭이 크다고 알려진 경우 늘리십시오.

area_threshold 는 최소 경계 상자 면적입니다. 그보다 작은 블롭은 필터링됩니다.

pixels_threshold 는 최소 임계값 픽셀 수입니다. 그보다 작은 블롭은 필터링됩니다.

merge 가 True이면 경계 직사각형이 교차하는 블롭을 병합합니다. margin 은 교차에 사용되는 경계 직사각형을 키우거나 줄입니다. 병합된 블롭은 자신의 code 비트 벡터를 함께 OR합니다(임계값당 1비트).

threshold_cb 는 임계값 처리 후 블롭마다 호출됩니다. 유지하려면 True를, 필터링하려면 False를 반환하십시오.

merge_cb 는 병합될 블롭 쌍마다 호출됩니다. 병합을 허용하려면 True를, 방지하려면 False를 반환하십시오.

x_hist_bins_max 가 0이 아니면 이만큼의 빈을 사용하는 x_histogram 투영으로 각 블롭을 채웁니다.

y_hist_bins_max 가 0이 아니면 이만큼의 빈을 사용하는 y_histogram 투영으로 각 블롭을 채웁니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

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 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

x_stridey_stride 는 허프 변환 동안 건너뛸 픽셀 수를 제어합니다.

threshold 는 최소 선 크기(선을 따라가는 소벨 크기의 합)입니다. 이보다 낮은 선은 필터링됩니다.

theta_marginrho_margin 은 병합을 제어합니다. 이 임계값 내의 선들은 병합됩니다.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다.

이 메서드는 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 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

merge_distance 는 병합될 두 선분 사이의 최대 픽셀 간격입니다.

max_theta_difference 는 병합될 선분 사이의 최대 세타 차이(도 단위)입니다.

이 메서드는 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 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

x_stridey_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 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

threshold 는 최소 에지 크기(직사각형 가장자리를 따라가는 소벨 크기의 합)입니다. 이보다 낮은 직사각형은 필터링됩니다.

이 메서드는 OpenMV Cam M4에서는 사용할 수 없습니다.

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

roi 내의 모든 qrcode를 찾아 image.qrcode 객체 목록을 반환합니다.

roi 는 관심 영역(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]

roi 내의 모든 apriltag를 찾아 image.apriltag 객체 목록을 반환합니다.

roi 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

families 는 디코딩할 태그 패밀리의 비트마스크입니다. 다음의 논리적 OR입니다:

기본값은 image.TAG36H11 입니다. 검출 시간은 활성화된 패밀리 수에 따라 늘어납니다.

fxfy 는 카메라 X 및 Y 초점 거리를 픽셀 단위로 나타냅니다.

cxcy 는 이미지 중심으로, 일반적으로 image.width()/2image.height()/2 입니다.

압축 이미지에서는 지원되지 않습니다.

이 메서드는 OpenMV Cam M4에서는 사용할 수 없습니다.

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

roi 내의 모든 datamatrix를 찾아 image.datamatrix 객체 목록을 반환합니다.

roi 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

effort 는 데이터 매트릭스 매치를 찾는 데 얼마나 많은 시간을 쓸지를 제어합니다. 값이 높을수록 프레임 속도를 희생하여 검출을 개선합니다. ~160 미만의 값은 검출에 실패하고, ~240을 초과하는 값은 수확 체감을 보입니다. 기본값은 200입니다.

이 메서드는 OpenMV Cam M4에서는 사용할 수 없습니다.

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

roi 내의 모든 1D 바코드를 찾아 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 는 관심 영역(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 는 관심 영역(ROI) 직사각형 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

template_roi 는 템플릿의 관심 영역입니다. 기본값은 템플릿 이미지 직사각형입니다. roitemplate_roi 는 같은 너비와 높이를 가져야 합니다.

logpolar 가 True이면 x/y 이동 대신 회전/스케일 변화를 반환합니다.

fix_rotation_scale 가 True이면 회전과 스케일을 정렬한 후 변위를 계산합니다(logpolar=False 일 때만 의미가 있음).

참고

이 메서드는 2의 거듭제곱 이미지 크기(예: sensor.B64X64)에서 사용하십시오.

압축 이미지나 베이어 이미지에서는 지원되지 않습니다. 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 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

step 은 검색하는 동안 건너뛸 픽셀 수입니다(image.SEARCH_EX 모드에서만 사용됨).

searchimage.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]]

전달된 Haar 캐스케이드와 매치되는 영역을 이미지에서 검색하여 경계 상자 튜플 (x, y, w, h) 목록을 반환합니다. 특징을 찾지 못하면 빈 목록을 반환합니다.

cascade 는 Haar 캐스케이드 객체입니다(image.HaarCascade() 참조).

threshold (0.0-1.0). 값이 낮을수록 검출률과 오탐지율이 높아집니다.

scale 은 1.0보다 커야 합니다. 값이 높을수록 더 빠르게 실행되지만 더 나쁜 매치를 만듭니다.

roi 는 관심 영역(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 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다.

그레이스케일 이미지에서만 동작합니다.

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

관심 영역에서 LBP(local-binary-patterns) 키포인트를 추출합니다. 두 디스크립터를 비교하려면 image.match_descriptor() 를 사용하십시오.

roi 는 관심 영역(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 는 관심 영역(ROI) 직사각형 튜플 (x, y, w, h)입니다. 기본값은 이미지 직사각형입니다.

threshold (0-255)는 추출되는 코너의 개수를 제어합니다. 임계값이 낮을수록 더 많은 코너가 생성됩니다. AGAST에는 약 20, FAST에는 약 60-80을 사용하십시오.

normalized 가 True이면 다중 해상도 키포인트 추출을 비활성화합니다.

scale_factor 는 1.0보다 커야 합니다. 값이 높을수록 더 빠르게 실행되지만 더 나쁜 매치를 만듭니다.

max_keypoints 는 유지할 키포인트의 최대 수입니다.

corner_detectorimage.CORNER_FAST 또는 image.CORNER_AGAST 입니다.

그레이스케일 이미지에서만 동작합니다.

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

에지만 흰색 픽셀로 남기고 이미지를 흑백으로 만듭니다.

  • image.EDGE_SIMPLE - 단순 임계값 처리 고역 통과 필터 알고리즘.

  • image.EDGE_CANNY - Canny 에지 검출 알고리즘.

threshold 는 낮은 임계값과 높은 임계값을 담은 두 값짜리 튜플입니다. 이 값들을 조정하여 에지의 품질을 제어할 수 있습니다. 기본값은 (100, 200)입니다.

그레이스케일 이미지에서만 동작합니다.

find_hog(roi: Tuple[int, int, int, int] | None = None, size: int = 8) Image

ROI의 픽셀을 HOG(histogram of orientated graidients) 선으로 대체합니다.

roi 는 관심 영역(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 은 영역을 병합할 때 사용되는 색상/질감/크기 유사성 가중치입니다.