class Image – Image 객체¶
Image 은 image 모듈의 핵심 데이터 타입으로, 모든 그리기 루틴, 모든 필터, 모든 기하 변환, 모든 특징 추출 루틴이 동작하는 메모리 내 픽셀 버퍼입니다. 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가 참이면 이미지가 힙에 할당되는 대신 프레임 버퍼로 복사됩니다.arg가ndarray이면 그ndarray로부터 새 이미지 객체를 생성합니다. 형상이(w, h)인ndarray객체는 그레이스케일 이미지로,(w, h, 3)인 객체는 RGB565 이미지로 처리됩니다. 현재로서는 float32 부동소수점ndarrays만 지원됩니다. 이 방식으로 이미지를 생성할 때buffer인자를 전달하면 힙에 공간을 할당하는 대신 그 버퍼가 이미지 데이터를 저장하는 데 사용됩니다.copy_to_fb가 참이면 이미지가 힙에 할당되거나buffer를 사용하는 대신 프레임 버퍼로 복사됩니다.arg가int이면 새 이미지의 너비로 간주되며, 새 빈 이미지 객체를 생성하기 위해height값과format값이 뒤따라야 합니다.format은image.GRAYSCALE과 같은 임의의 이미지 pixformat 값일 수 있습니다. 이미지는 모두 0으로 초기화됩니다. 압축 이미지 포맷의 경우buffer값이 필요함에 유의하십시오. 이 방식으로 이미지를 생성할 때buffer는 이미지 데이터의 소스로 간주됩니다.copy_to_fb와 함께 사용하면buffer의 데이터가 프레임 버퍼로 복사됩니다. JPEGbytes()또는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 쓰기 함수에 그냥 전달하기만 하면 자동으로 전송됩니다.
기본 메서드¶
- format() int¶
그레이스케일 이미지의 경우
image.GRAYSCALE, RGB565 이미지의 경우image.RGB565, 베이어 패턴 이미지의 경우image.BAYER, JPEG 이미지의 경우image.JPEG을 반환합니다.
- 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을 반환합니다.x와y는 개별적으로 또는 튜플로 전달할 수 있습니다.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값으로 설정합니다..표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.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은 부호 있는 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())도 받음에 유의하십시오.buffer가None이 아니면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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.copy가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.copy_to_fb가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다.copy_to_fb는copy보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.참고
비트맵 이미지는 0과 1이라는 두 가지 픽셀 값만 갖는다는 점에서 그레이스케일 이미지와 비슷합니다. 또한 비트맵 이미지는 픽셀당 1비트만 저장하도록 패킹되어 매우 작습니다. OpenMV 이미지 라이브러리는
sensor.GRAYSCALE및sensor.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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.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는 그릴 소스 이미지의 관심 영역(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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.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는 그릴 소스 이미지의 관심 영역(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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.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 아이언보우 이미지(픽셀당 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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.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는 그릴 소스 이미지의 관심 영역(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_palette가None이 아니면image.PALETTE_DEPTH이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.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는 그릴 소스 이미지의 관심 영역(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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.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는 그릴 소스 이미지의 관심 영역(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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.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는 그릴 소스 이미지의 관심 영역(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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.copy가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.copy_to_fb가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다.copy_to_fb는copy보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.quality는 jpeg 이미지 압축 품질을 제어합니다. 값은 0과 100 사이일 수 있습니다.subsampling은 다음 중 하나가 될 수 있습니다:image.JPEG_SUBSAMPLING_AUTO: 품질에 기반하여 이미지에 가장 적합한 서브샘플링을 사용합니다.image.JPEG_SUBSAMPLING_444: 4:4:4 서브샘플링을 사용합니다.image.JPEG_SUBSAMPLING_422: 4:2:2 서브샘플링을 사용합니다.image.JPEG_SUBSAMPLING_420: 4:2:0 서브샘플링을 사용합니다.
.표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.
- 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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.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는 그릴 소스 이미지의 관심 영역(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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.copy가 True이면 원본 이미지를 제자리에서 변환하는 대신 변환된 이미지의 깊은 복사본을 힙에 생성합니다.copy_to_fb가 True이면 이미지가 프레임 버퍼로 직접 불러와집니다.copy_to_fb는copy보다 우선합니다. 이미지가 이미 프레임 버퍼에 있으면 특별한 효과가 없습니다.quality는 jpeg 이미지 압축 품질을 제어합니다. 값은 0과 100 사이일 수 있습니다.subsampling은 다음 중 하나가 될 수 있습니다:image.JPEG_SUBSAMPLING_AUTO: 품질에 기반하여 이미지에 가장 적합한 서브샘플링을 사용합니다.image.JPEG_SUBSAMPLING_444: 4:4:4 서브샘플링을 사용합니다.image.JPEG_SUBSAMPLING_422: 4:2:2 서브샘플링을 사용합니다.image.JPEG_SUBSAMPLING_420: 4:2:0 서브샘플링을 사용합니다.
.표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.참고
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는 그릴 소스 이미지의 관심 영역(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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.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는 그릴 소스 이미지의 관심 영역(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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되지 않는image.BLACK_BACKGROUND는 제외).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 GPU를 갖춘 OpenMV Cam N6에서만 지원됩니다.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는 저장할 관심 영역(ROI) 직사각형 (x, y, w, h)입니다. 지정하지 않으면 전체 이미지를 복사하는 이미지 직사각형과 같습니다. 이 인자는 JPEG 이미지에는 적용되지 않습니다.quality는 이미지가 아직 압축되지 않은 경우 이미지를 jpeg 포맷으로 저장하는 데 사용할 jpeg 압축 품질입니다(0-100)(int)..표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.
그리기 메서드¶
- 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_palette가None이 아니면 색상 팔레트 enum이거나 소스 이미지가 무엇이든 그 그레이스케일 값에 대한 색상 룩업 테이블로 사용할 총 256픽셀 RGB565 이미지일 수 있습니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.alpha_palette가None이 아니면 알파 팔레트로 사용할 총 256픽셀 GRAYSCALE 이미지일 수 있으며, 이는 그려지는 소스 이미지의alpha값을 픽셀 단위로 변조하여 픽셀의 그레이스케일 값에 기반해 픽셀의 알파 값을 정밀하게 제어할 수 있게 합니다. 알파 룩업 테이블에서 픽셀 값 255는 불투명이며, 255보다 작은 값은 0까지 점점 더 투명해집니다. 사용된 경우rgb_channel추출 이후에 적용됩니다.hint는 Hint flags 에 나열된 플래그들의 논리적 OR입니다(여기서 지원되는image.BLACK_BACKGROUND포함).transform은 이미지에 원근 변환을 수행하는 데 사용되는 3x3ndarray입니다. 현재로서는 이를 하드웨어로 수행할 수 있는 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로 설정하십시오(장노출 모션 트레일에 유용).brightness는clear가 True일 때 버퍼가 재설정되는 중간 회색 기준선을 제어합니다. 기본값 128은 ON 이벤트를 밝은 쪽 끝에, OFF 이벤트를 어두운 쪽 끝에 동일한 여유로 배치합니다.contrast는 각 이벤트가 자신의 픽셀을 얼마나 이동시키는지를 제어합니다 — 값이 높을수록 이벤트가 두드러지지만, 많은 이벤트가 같은 픽셀에 들어올 때 빠르게 포화되는 대가가 따릅니다.
마스킹 메서드¶
- mask_rectangle(x: int, y: int, w: int, h: 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는 픽셀 단위 마스크로 사용되는 이진 이미지입니다. 마스크에 설정된 픽셀만 수정됩니다..표기법으로 다른 메서드를 호출할 수 있도록 이미지 객체를 반환합니다.압축 이미지나 베이어 이미지에서는 지원되지 않습니다.
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 이미지에서는 지원되지 않습니다.
수학 메서드¶
- negate() Image¶
Image.invert의 별칭입니다.
- replace(image: Image | None = None, **kwargs) Image¶
Image.draw_image()의 별칭입니다. 표준draw_image키워드 인자를 사용하여 이 이미지를image로 대체합니다(또는image가 생략된 경우 이 이미지를 제자리에서 변환합니다).transform인자는 원근 변환을 기술하는 3x3ndarray입니다(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로 설정하십시오.x와y는 변환의 중심 좌표를 이미지 픽셀 단위로 지정합니다.x가None(기본값)이면 이미지 너비의 절반으로 설정됩니다. 마찬가지로y의 기본값은 이미지 높이의 절반입니다.선형 극좌표 다시 투영은 이미지의 회전을 x-이동으로 바꿉니다.
압축 이미지나 베이어 이미지에서는 지원되지 않습니다.
이 메서드는 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-이동으로 바꿉니다.
압축 이미지나 베이어 이미지에서는 지원되지 않습니다.
이 메서드는 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,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)튜플 목록이거나, 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_stride와y_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_stride와y_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_stride와y_stride는 허프 변환 동안 건너뛸 픽셀 수를 제어합니다.threshold는 최소 선 크기(선을 따라가는 소벨 크기의 합)입니다. 이보다 낮은 선은 필터링됩니다.theta_margin과rho_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_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는 관심 영역(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입니다. 검출 시간은 활성화된 패밀리 수에 따라 늘어납니다.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]¶
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는 템플릿의 관심 영역입니다. 기본값은 템플릿 이미지 직사각형입니다.roi와template_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모드에서만 사용됨).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]]¶
전달된 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_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 - 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두 블록 간의 절대 차이의 합이 이 임계값 이하이면 매치되는 것으로 간주됩니다.
- selective_search(threshold: int = 500, size: int = 20, a1: float = 1.0, a2: float = 1.0, a3: float = 1.0) List[Tuple[int, int, int, int]]¶
이미지에 선택적 검색을 실행하여 객체 제안의 경계 상자 튜플 (x, y, w, h) 목록을 반환합니다.
threshold는 세그멘테이션 임계값입니다. 값이 높을수록 더 적고/더 큰 영역을 만듭니다.size는 병합 후 최소 영역 크기입니다.a1,a2,a3은 영역을 병합할 때 사용되는 색상/질감/크기 유사성 가중치입니다.