class Image – obiectul imagine

Image este tipul de date central al modulului image – un tampon de pixeli în memorie pe care operează fiecare rutină de desenare, fiecare filtru, fiecare transformare geometrică și fiecare rutină de extragere a caracteristicilor. Fiecare cadru produs de csi.CSI.snapshot() este un Image; la fel sunt și fiecare cadru încărcat de pe disc, decodat din JPEG sau PNG, alocat dintr-un ndarray în stil numpy sau construit ca o pânză de desen goală.

Un Image este descris de trei numere – width, height și pixformat – plus un tampon de pixeli contiguu. Formatul de pixeli determină atât dispunerea în memorie, cât și operațiile disponibile:

  • BINARY (1 bpp) – 1 bit per pixel; folosit de morfologie și prag.

  • GRAYSCALE (8 bpp) – 1 octet per pixel; formatul canonic pentru majoritatea operațiilor CV (AprilTag, muchii, ORB, flux optic).

  • RGB565 (16 bpp) – 2 octeți per pixel (5R/6G/5B); formatul de culoare implicit.

  • BAYER (8 bpp) – date brute în mozaic Bayer direct de la senzor. Majoritatea metodelor CV nu sunt disponibile pe imaginile Bayer; mai întâi efectuați debayer la GRAYSCALE / RGB565.

  • YUV422 (16 bpp) – culoare cu subeșantionare cromatică 4:2:2, doi octeți per pixel. Doar unele metode funcționează direct pe YUV422.

  • JPEG / PNG – tampoane comprimate. Operațiile la nivel de pixel necesită mai întâi to_grayscale() sau to_rgb565().

De unde provin obiectele Image

Există patru moduri de a obține un Image:

  • Din tamponul de cadre al camereicsi.CSI().snapshot() returnează următorul cadru capturat. Obiectul returnat este un înveliș subțire în jurul memoriei tamponului de cadre al camerei, astfel încât orice operație de desenare / filtrare asupra lui modifică ceea ce este trimis către previzualizarea din IDE și către afișaj.

  • Dintr-un fișier – transmiteți un șir de cale către constructorul Image. BMP, PGM, PPM, JPEG și PNG sunt decodate direct în RAM (sau în tamponul de cadre al camerei dacă copy_to_fb=True).

  • Dintr-un ndarray – transmiteți un tablou float32 de forma (h, w) sau (h, w, 3). Pixelii sunt scalați de la 0.0 -- 255.0 în GRAYSCALE, respectiv RGB565.

  • Goală – transmiteți (width, height, pixformat) pentru a aloca o suprafață de desen umplută cu zerouri. Pentru formatele de pixeli comprimate (JPEG / PNG) este necesar un argument buffer= care conține fluxul de octeți comprimat.

Bucla tipică de captură-procesare-afișare

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.

Indexare, lungime, iterare și acces de tip bytes

  • Indexareimg[i] citește pixelul i (liniar, ordine pe rânduri). img[i] = value îl scrie. Pixelii grayscale / Bayer sunt numere întregi pe 8 biți, pixelii RGB565 / YUV422 sunt numere întregi împachetate pe 16 biți, pixelii binari sunt 0 / 1. Pentru imaginile JPEG / PNG spațiul de indexare este fluxul de octeți comprimat, nu pixelii.

  • Lungimelen(img) returnează numărul de pixeli pentru formatele necomprimate sau numărul de octeți pentru formatele comprimate.

  • Iterarefor px in img: ... parcurge tabloul de pixeli în aceeași ordine ca indexarea cu [].

  • Tip bytesImage expune protocolul de tampon de citire, astfel încât îl puteți transmite direct oricărui element care acceptă un obiect bytes / bytearray (de exemplu uart.write(img), socket.send(img), hashlib.sha256(img)). Folosiți în schimb bytearray() pentru a obține o vizualizare de citire/scriere.

Indicatoare hint

Multe metode Image acceptă un argument hint care este un SAU logic al următoarelor indicatoare:

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

Dacă arg este un șir, atunci aceasta creează un nou obiect imagine dintr-un fișier de la calea arg. Suportă încărcarea fișierelor de imagine bmp/pgm/ppm/jpg/jpeg/png de pe disc. Dacă copy_to_fb este adevărat, imaginea este copiată în tamponul de cadre în loc să fie alocată pe heap.

Dacă arg este un ndarray, atunci aceasta creează un nou obiect imagine din ndarray. Obiectele ndarray cu o formă de (w, h) sunt tratate ca imagini grayscale, iar (w, h, 3) sunt tratate ca imagini RGB565. Doar ndarrays de tip float32 sunt suportate în prezent. La crearea unei imagini în acest mod, dacă transmiteți un argument buffer, acesta va fi folosit pentru a stoca datele imaginii în loc să se aloce spațiu pe heap. Dacă copy_to_fb este adevărat, imaginea este copiată în tamponul de cadre în loc să fie alocată pe heap sau să folosească buffer.

Dacă arg este un int, atunci este considerat lățimea unei noi imagini, iar o valoare height și o valoare format trebuie să urmeze pentru a crea un nou obiect imagine goală. format poate fi orice valoare pixformat de imagine, precum image.GRAYSCALE. Imaginea va fi inițializată cu zerouri. Rețineți că o valoare buffer este așteptată pentru formatele de imagine comprimate. buffer este considerat sursa datelor de imagine pentru crearea imaginilor în acest mod. Dacă este folosit împreună cu copy_to_fb, datele din buffer sunt copiate în tamponul de cadre. Dacă doriți să creați o imagine JPEG dintr-un obiect JPEG bytes() sau bytearray(), puteți transmite width, height, image.JPEG pentru JPEG împreună cu setarea buffer la fluxul de octeți JPEG pentru a crea o imagine JPEG.

Imaginile suportă notația „[]”. Folosiți image[index] = 8/16-bit value pentru a atribui un pixel de imagine sau image[index] pentru a obține un pixel de imagine, care va fi fie o valoare pe 8 biți pentru imaginile grayscale/bayer, fie o valoare pe 16 biți pentru imaginile RGB565/YUV. Imaginile binare returnează o valoare pe 1 bit.

Pentru imaginile JPEG, notația „[]” vă permite să accesați blob-ul de imagine JPEG comprimat ca un tablou de octeți. Citirea și scrierea în tabloul de date sunt însă opace, deoarece imaginile JPEG sunt fluxuri de octeți comprimate.

Imaginile suportă, de asemenea, operații de tampon de citire. Puteți transmite imagini către tot felul de funcții MicroPython ca și cum imaginea ar fi un obiect tablou de octeți. În particular, dacă doriți să transmiteți o imagine, o puteți transmite pur și simplu funcțiilor de scriere UART/SPI/I2C pentru a fi transmisă automat.

Metode de bază

width() int

Returnează lățimea imaginii în pixeli.

height() int

Returnează înălțimea imaginii în pixeli.

format() int

Returnează image.GRAYSCALE pentru imaginile grayscale, image.RGB565 pentru imaginile RGB565, image.BAYER pentru imaginile cu model bayer și image.JPEG pentru imaginile JPEG.

size() int

Returnează dimensiunea imaginii în octeți.

bytearray() bytearray

Returnează un obiect bytearray care indică spre datele imaginii pentru acces de citire/scriere la nivel de octet.

Notă

Obiectele imagine sunt convertite automat în obiecte bytes când sunt transmise unui driver MicroPython care necesită un obiect de tip bytes. Acesta este un acces doar pentru citire. Apelați bytearray() pentru a obține acces de citire/scriere.

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

Pentru imaginile grayscale: Returnează valoarea pixelului grayscale la locația (x, y). Pentru imaginile RGB565: Returnează tuplul de pixeli RGB888 (r, g, b) la locația (x, y). Pentru imaginile cu model bayer: Returnează valoarea pixelului la locația (x, y).

Returnează None dacă x sau y este în afara imaginii.

x și y pot fi transmise fie independent, fie ca un tuplu.

rgbtuple dacă este True face ca această metodă să returneze un tuplu RGB888. Altfel, această metodă returnează valoarea întreagă a pixelului subiacent. De exemplu, pentru imaginile RGB565 această metodă returnează o valoare RGB565. Implicit este True pentru imaginile RGB565 și False în rest.

Nu este suportat pe imaginile comprimate.

Notă

Image.get_pixel() și Image.set_pixel() sunt singurele metode care vă permit să manipulați imaginile cu model bayer. Imaginile cu model bayer sunt imagini literale în care pixelii sunt R/G/R/G/etc. pentru rândurile pare și G/B/G/B/etc. pentru rândurile impare. Fiecare pixel este pe 8 biți. Dacă apelați această metodă cu rgbtuple setat, atunci Image.get_pixel() va efectua debayer pe imaginea sursă la acea locație de pixel și va returna un tuplu RGB888 valid pentru locația pixelului.

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

Pentru imaginile grayscale: Setează pixelul la locația (x, y) la valoarea grayscale pixel. Pentru imaginile RGB565: Setează pixelul la locația (x, y) la tuplul RGB888 (r, g, b) pixel. Pentru imaginile cu model bayer: Setează valoarea pixelului la locația (x, y) la valoarea pixel.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

x și y pot fi transmise fie independent, fie ca un tuplu.

pixel poate fi fie un tuplu RGB888 (r, g, b), fie valoarea pixelului subiacent (de exemplu, o valoare RGB565 pentru imaginile RGB565 sau o valoare pe 8 biți pentru imaginile grayscale).

Nu este suportat pe imaginile comprimate.

Notă

Image.get_pixel() și Image.set_pixel() sunt singurele metode care vă permit să manipulați imaginile cu model bayer. Imaginile cu model bayer sunt imagini literale în care pixelii sunt R/G/R/G/etc. pentru rândurile pare și G/B/G/B/etc. pentru rândurile impare. Fiecare pixel este pe 8 biți. Dacă apelați această metodă cu un tuplu RGB888, valoarea grayscale a acelui tuplu RGB888 este extrasă și setată la locația pixelului.

Metode de conversie

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

Returnează un obiect ndarray creat din imagine. Acest lucru funcționează în prezent doar pentru imaginile GRAYSCALE sau RGB565.

dtype poate fi b, B sau f pentru a crea un ndarray cu semn pe 8 biți, fără semn pe 8 biți sau în virgulă mobilă pe 32 de biți. Imaginile GRAYSCALE sunt convertite direct în obiecte ndarray fără semn pe 8 biți. Pentru obiectele ndarray cu semn pe 8 biți, valorile (0:255) sunt mapate la (-127:128). Pentru obiectele ndarray float pe 32 de biți, valorile sunt mapate la (0.0:255.0). Imaginile RGB565 sunt convertite în obiecte ndarray cu 3 canale, iar același proces descris mai sus pentru imaginile GRAYSCALE este aplicat fiecărui canal în funcție de dtype. Rețineți că dtype acceptă și valorile întregi (de exemplu ord()) ale lui b, B și f respectiv.

buffer dacă nu este None este un obiect bytearray care va fi folosit ca tampon pentru ndarray. Dacă este None, un nou tampon este alocat pe heap pentru a stoca datele imaginii ndarray. Puteți folosi argumentul buffer pentru a aloca direct ndarray într-un tampon pre-alocat, economisind o alocare pe heap și o operație de copiere.

ndarray returnat are forma (height, width) pentru imaginile GRAYSCALE și (height, width, 3) pentru imaginile RGB565.

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

Convertește o imagine într-o imagine bitmap (1 bit per pixel).

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Notă

Imaginile bitmap sunt asemănătoare imaginilor grayscale, dar cu doar două valori de pixel - 0 și 1. În plus, imaginile bitmap sunt împachetate astfel încât stochează doar 1 bit per pixel, ceea ce le face foarte mici. Biblioteca de imagini OpenMV permite folosirea imaginilor bitmap în toate locurile în care pot fi folosite imaginile sensor.GRAYSCALE și sensor.RGB565. Cu toate acestea, multe operații aplicate pe imaginile bitmap nu au niciun sens, deoarece imaginile bitmap au doar 2 valori. OpenMV recomandă folosirea imaginilor bitmap pentru valorile mask în operații și altele, deoarece încap foarte ușor pe heap-ul MicroPython. În cele din urmă, valorile de pixel 0 și 1 ale imaginii bitmap sunt interpretate ca negru și alb atunci când sunt aplicate imaginilor sensor.GRAYSCALE sau sensor.RGB565. Biblioteca gestionează automat conversia.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Convertește o imagine într-o imagine grayscale (8 biți per pixel).

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Convertește o imagine într-o imagine RGB565 (16 biți per pixel).

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Convertește o imagine într-o imagine RGB565 rainbow (16 biți per pixel).

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Convertește o imagine într-o imagine RGB565 ironbow (16 biți per pixel).

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Convertește o imagine într-o imagine RGB565 de adâncime (16 biți per pixel).

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi image.PALETTE_DEPTH sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Convertește o imagine într-o imagine RGB565 Dark Event (16 biți per pixel).

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Convertește o imagine într-o imagine RGB565 Light Event (16 biți per pixel).

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Convertește o imagine într-o imagine JPEG.

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

quality controlează calitatea compresiei imaginii jpeg. Valoarea poate fi între 0 și 100.

subsampling poate fi:

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Convertește o imagine într-o imagine PNG.

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Convertește o imagine într-o imagine JPEG.

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

quality controlează calitatea compresiei imaginii jpeg. Valoarea poate fi între 0 și 100.

subsampling poate fi:

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Notă

Image.compress este un alias pentru 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

Creează o copie completă a obiectului imagine.

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Modifică o imagine pe loc fără a schimba tipul subiacent al imaginii.

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Modifică o imagine pe loc fără a schimba tipul subiacent al imaginii.

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzând image.BLACK_BACKGROUND care nu este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

copy dacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.

copy_to_fb dacă este True imaginea este încărcată direct în tamponul de cadre. copy_to_fb are prioritate față de copy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Notă

Image.scale este un alias pentru Image.crop.

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

Salvează o copie a imaginii în sistemul de fișiere la path.

Suportă fișiere de imagine bmp/pgm/ppm/jpg/jpeg. Rețineți că nu puteți salva imagini comprimate jpeg într-un format necomprimat.

roi este dreptunghiul regiunii de interes (x, y, w, h) de unde se salvează. Dacă nu este specificat, este egal cu dreptunghiul imaginii, ceea ce copiază întreaga imagine. Acest argument nu este aplicabil imaginilor JPEG.

quality este calitatea compresiei jpeg de folosit pentru a salva imaginea în format jpeg dacă imaginea nu este deja comprimată (0-100) (int).

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

flush() None

Actualizează tamponul de cadre din IDE cu imaginea din tamponul de cadre de pe cameră.

Metode de desenare

clear(mask: Image | None = None) Image

Setează toți pixelii din imagine la zero (foarte rapid).

mask este o altă imagine folosită ca mască la nivel de pixel pentru operație. Masca ar trebui să fie o imagine cu pixeli doar negri sau albi și ar trebui să aibă aceeași dimensiune ca imaginea asupra căreia se operează. Doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate.

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

Desenează o linie de la (x0, y0) la (x1, y1) pe imagine. Puteți transmite x0, y0, x1, y1 separat sau ca un tuplu (x0, y0, x1, y1).

color este un tuplu RGB888 pentru imaginile grayscale sau RGB565. Implicit este alb. Cu toate acestea, puteți transmite și valoarea pixelului subiacent (0-255) pentru imaginile grayscale sau o valoare RGB565 pentru imaginile RGB565.

thickness controlează cât de groasă este linia în pixeli.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Desenează un dreptunghi pe imagine. Puteți transmite x, y, w, h separat sau ca un tuplu (x, y, w, h).

color este un tuplu RGB888 pentru imaginile grayscale sau RGB565. Implicit este alb. Cu toate acestea, puteți transmite și valoarea pixelului subiacent (0-255) pentru imaginile grayscale sau o valoare RGB565 pentru imaginile RGB565.

thickness controlează cât de groase sunt liniile în pixeli.

Transmiteți fill setat la True pentru a umple dreptunghiul.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Desenează un cerc pe imagine. Puteți transmite x, y, radius separat sau ca un tuplu (x, y, radius).

color este un tuplu RGB888 pentru imaginile grayscale sau RGB565. Implicit este alb. Cu toate acestea, puteți transmite și valoarea pixelului subiacent (0-255) pentru imaginile grayscale sau o valoare RGB565 pentru imaginile RGB565.

thickness controlează cât de groase sunt marginile în pixeli.

Transmiteți fill setat la True pentru a umple cercul.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Desenează o elipsă pe imagine. Puteți transmite cx, cy, rx, ry și rotația (în grade) separat sau ca un tuplu (cx, yc, rx, ry, rotation).

color este un tuplu RGB888 pentru imaginile grayscale sau RGB565. Implicit este alb. Cu toate acestea, puteți transmite și valoarea pixelului subiacent (0-255) pentru imaginile grayscale sau o valoare RGB565 pentru imaginile RGB565.

thickness controlează cât de groase sunt marginile în pixeli.

Transmiteți fill setat la True pentru a umple elipsa.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Desenează text 8x10 începând de la locația (x, y) în imagine. Puteți transmite x, y separat sau ca un tuplu (x, y).

text este un șir de scris în imagine. Terminatoarele de linie \n, \r și \r\n mută cursorul la următoarea linie.

color este un tuplu RGB888 pentru imaginile grayscale sau RGB565. Implicit este alb. Cu toate acestea, puteți transmite și valoarea pixelului subiacent (0-255) pentru imaginile grayscale sau o valoare RGB565 pentru imaginile RGB565.

scale poate fi mărit pentru a crește/scădea dimensiunea textului din imagine. Puteți transmite valori întregi sau în virgulă mobilă mai mari decât 0.

x_spacing vă permite să adăugați (dacă este pozitiv) sau să scădeți (dacă este negativ) pixeli x între caractere.

y_spacing vă permite să adăugați (dacă este pozitiv) sau să scădeți (dacă este negativ) pixeli y între caractere (pentru text pe mai multe linii).

mono_space implicit este True, ceea ce forțează textul să aibă spațiere fixă. Pentru scalări mari ale textului acest lucru arată îngrozitor. Setați la False pentru a obține o spațiere a caracterelor cu lățime variabilă, care arată MULT mai bine.

char_rotation poate fi 0, 90, 180, 270 pentru a roti fiecare caracter din șir cu această valoare.

char_hmirror dacă este True oglindește pe orizontală toate caracterele din șir.

char_vflip dacă este True răstoarnă pe verticală toate caracterele din șir.

string_rotation poate fi 0, 90, 180, 270 pentru a roti șirul cu această valoare.

string_hmirror dacă este True oglindește pe orizontală șirul.

string_vflip dacă este True răstoarnă pe verticală șirul.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Desenează o cruce la locația x, y. Puteți transmite x, y separat sau ca un tuplu (x, y).

color este un tuplu RGB888 pentru imaginile grayscale sau RGB565. Implicit este alb. Cu toate acestea, puteți transmite și valoarea pixelului subiacent (0-255) pentru imaginile grayscale sau o valoare RGB565 pentru imaginile RGB565.

size controlează cât de lungi se extind liniile crucii.

thickness controlează cât de groase sunt marginile în pixeli.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Desenează o săgeată de la (x0, y0) la (x1, y1) pe imagine. Puteți transmite x0, y0, x1, y1 separat sau ca un tuplu (x0, y0, x1, y1).

color este un tuplu RGB888 pentru imaginile grayscale sau RGB565. Implicit este alb. Cu toate acestea, puteți transmite și valoarea pixelului subiacent (0-255) pentru imaginile grayscale sau o valoare RGB565 pentru imaginile RGB565.

thickness controlează cât de groasă este linia în pixeli.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Desenează un rezultat de detectare pe imagine. detection este un tuplu cu 6 elemente (rx, ry, rw, rh, cx, cy) care descrie un dreptunghi de încadrare și un centroid (returnat de obicei de cod NN sau de urmărire a culorilor).

color1 este culoarea dreptunghiului, iar color2 este culoarea crucii centroidului. size este dimensiunea crucii centroidului, thickness controlează lățimea conturului, iar fill umple dreptunghiul.

label dacă este furnizat este desenat lângă dreptunghi, decalat cu label_offset (x, y).

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Desenează muchii de linie între o listă de colțuri returnată de metode precum blob.corners. Corners este un tuplu cu patru valori formate din tupluri x/y cu două valori. De exemplu, [(x1,y1),(x2,y2),(x3,y3),(x4,y4)].

color este un tuplu RGB888 pentru imaginile grayscale sau RGB565. Implicit este alb. Cu toate acestea, puteți transmite și valoarea pixelului subiacent (0-255) pentru imaginile grayscale sau o valoare RGB565 pentru imaginile RGB565.

size dacă este mai mare decât 0 face ca colțurile să fie desenate ca cercuri de rază size.

thickness controlează cât de groasă este linia în pixeli.

Transmiteți fill setat la True pentru a umple cercurile colțurilor dacă sunt desenate.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Desenează o image al cărei colț din stânga sus începe la locația x, y. Puteți transmite x, y separat sau ca un tuplu (x, y). Această metodă gestionează automat redarea imaginii transmise în formatul de pixeli corect pentru imaginea de destinație, gestionând în același timp decuparea fără probleme.

Puteți transmite, de asemenea, o cale în loc de un obiect imagine pentru ca această metodă să încarce automat imaginea de pe disc și să o folosească într-un singur pas. De exemplu, draw_image("test.jpg").

x_scale controlează cât de mult este scalată imaginea afișată în direcția x (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe orizontală. Rețineți că, dacă y_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

y_scale controlează cât de mult este scalată imaginea afișată în direcția y (float). Dacă această valoare este negativă, imaginea va fi răsturnată pe verticală. Rețineți că, dacă x_scale nu este specificat, acesta va corespunde lui x_scale pentru a menține raportul de aspect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h) din imaginea sursă de desenat. Acest lucru vă permite să extrageți doar pixelii din ROI pentru a-i scala și desena pe imaginea de destinație.

rgb_channel este canalul RGB (0=R, G=1, B=2) de extras dintr-o imagine RGB565 (dacă este transmisă) și de redat pe imaginea de destinație. De exemplu, dacă transmiteți rgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.

alpha controlează cât din imaginea sursă să fie amestecat în imaginea de destinație. O valoare de 255 desenează o imagine sursă opacă, în timp ce o valoare mai mică decât 255 produce un amestec între imaginea sursă și cea de destinație. 0 nu produce nicio modificare a imaginii de destinație.

color_palette dacă nu este None poate fi un enum de paletă de culori sau o imagine RGB565 de 256 de pixeli în total, folosită ca tabel de căutare a culorilor pe valoarea grayscale a oricărei imagini sursă. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

alpha_palette dacă nu este None poate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoarea alpha a imaginii sursă desenate la nivel de pixel, permițându-vă să controlați precis valoarea alpha a pixelilor în funcție de valoarea lor grayscale. O valoare de pixel de 255 în tabelul de căutare alpha este opacă, iar orice valoare mai mică decât 255 devine mai transparentă până la 0. Aceasta se aplică după extragerea rgb_channel dacă este folosită.

hint este un SAU logic al indicatoarelor enumerate în Indicatoare hint (inclusiv image.BLACK_BACKGROUND care este suportat aici).

transform este un ndarray 3x3 folosit pentru a efectua o transformare de perspectivă asupra imaginii. Suportat în prezent doar pe OpenMV Cam N6, deoarece are un GPU care poate face acest lucru hardware.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

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

Desenează punctele-cheie ale unui obiect keypoints pe imagine. Puteți transmite, de asemenea, o listă de tupluri cu trei valori care conțin (x, y, rotation_angle_in_degrees) pentru a reutiliza această metodă la desenarea glifelor de puncte-cheie, care sunt un cerc cu o linie ce indică într-o anumită direcție.

color este un tuplu RGB888 pentru imaginile grayscale sau RGB565. Implicit este alb. Cu toate acestea, puteți transmite și valoarea pixelului subiacent (0-255) pentru imaginile grayscale sau o valoare RGB565 pentru imaginile RGB565.

size controlează cât de mari sunt punctele-cheie.

thickness controlează cât de groasă este linia în pixeli.

Transmiteți fill setat la True pentru a umple punctele-cheie.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Umple prin inundare o regiune a imaginii începând de la locația x, y. Puteți transmite x, y separat sau ca un tuplu (x, y).

seed_threshold controlează cât de diferit poate fi orice pixel din zona de umplere față de pixelul inițial de pornire.

floating_threshold controlează cât de diferit poate fi orice pixel din zona de umplere față de orice pixeli vecini.

color este un tuplu RGB888 pentru imaginile grayscale sau RGB565. Implicit este alb. Cu toate acestea, puteți transmite și valoarea pixelului subiacent (0-255) pentru imaginile grayscale sau o valoare RGB565 pentru imaginile RGB565.

Transmiteți invert ca True pentru a re-colora tot ce se află în afara zonei conectate de umplere prin inundare.

Transmiteți clear_background ca True pentru a anula restul pixelilor pe care umplerea prin inundare nu i-a re-colorat.

mask este o altă imagine folosită ca mască la nivel de pixel pentru operație. Masca ar trebui să fie o imagine cu pixeli doar negri sau albi și ar trebui să aibă aceeași dimensiune ca imaginea asupra căreia se operează. Doar pixelii setați în mască sunt evaluați la umplerea prin inundare.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

Această metodă nu este disponibilă pe OpenMV Cam M4.

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

Rasterizează un ndarray de evenimente (așa cum este umplut de csi.IOCTL_GENX320_READ_EVENTS) pe un Image pentru vizualizare. Tamponul imaginii trebuie să fie o imagine GRAYSCALE de 320x320.

Pentru fiecare rând csi.PIX_ON_EVENT pixelului evenimentului i se adaugă +contrast; pentru fiecare rând csi.PIX_OFF_EVENT pixelului i se adaugă -contrast. Evenimentele de declanșare sunt ignorate. Valorile pixelilor sunt limitate la 0-255.

clear dacă este True resetează tamponul imaginii la brightness înainte de desenare — fiecare cadru devine o redare proaspătă doar a evenimentelor. Setați la False pentru a acumula evenimente pe parcursul mai multor apeluri (util pentru dârele de mișcare cu expunere lungă).

brightness controlează linia de bază de gri mediu la care este resetat tamponul când clear este True. Valoarea implicită 128 plasează evenimentele ON la capătul luminos și evenimentele OFF la capătul întunecat cu rezervă egală.

contrast controlează cât de mult deplasează fiecare eveniment pixelul său — valorile mai mari fac evenimentele să iasă în evidență, cu costul saturării rapide când multe evenimente cad pe același pixel.

Metode de mascare

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

Anulează o parte dreptunghiulară a imaginii. Dacă nu sunt furnizate argumente, această metodă anulează centrul imaginii.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Anulează o parte circulară a imaginii. Dacă nu sunt furnizate argumente, această metodă anulează centrul imaginii.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Anulează o parte în formă de elipsă a imaginii. Dacă nu sunt furnizate argumente, această metodă anulează centrul imaginii.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

Metode binare

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

Setează toți pixelii din imagine la negru sau alb în funcție de faptul dacă fiecare pixel se află în interiorul unuia dintre tuplurile de prag din thresholds.

thresholds este o listă de tupluri (lo, hi) pentru imaginile grayscale sau tupluri (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) pentru imaginile RGB565. Valorile min/max inversate sunt corectate automat; componentele lipsă iau implicit intervalul maxim.

invert inversează potrivirea pragului.

zero dacă este True, anulează pixelii care trec de prag și îi lasă pe ceilalți neatinși.

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

to_bitmap dacă este True, convertește datele imaginii într-un bitmap de 1 bit per pixel. Pentru imaginile foarte mici acest lucru poate necesita copy=True.

copy dacă este True, returnează o nouă imagine pe heap în loc să modifice imaginea sursă.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

invert() Image

Inversează toate valorile pixelilor din imagine (fiecare pixel devine 255 - pixel pentru canalele pe 8 biți).

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Efectuează ȘI logic între această imagine și o altă imagine.

image poate fi un obiect imagine, o cale către un fișier de imagine necomprimat (bmp/pgm/ppm) sau o valoare scalară (tuplu RGB888 sau valoarea pixelului subiacent).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Efectuează ȘI-NU (NAND) logic între această imagine și o altă imagine.

image poate fi un obiect imagine, o cale către un fișier de imagine necomprimat (bmp/pgm/ppm) sau o valoare scalară (tuplu RGB888 sau valoarea pixelului subiacent).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Efectuează SAU logic între această imagine și o altă imagine.

image poate fi un obiect imagine, o cale către un fișier de imagine necomprimat (bmp/pgm/ppm) sau o valoare scalară (tuplu RGB888 sau valoarea pixelului subiacent).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Efectuează SAU-NU (NOR) logic între această imagine și o altă imagine.

image poate fi un obiect imagine, o cale către un fișier de imagine necomprimat (bmp/pgm/ppm) sau o valoare scalară (tuplu RGB888 sau valoarea pixelului subiacent).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Efectuează SAU-EXCLUSIV (XOR) logic între această imagine și o altă imagine.

image poate fi un obiect imagine, o cale către un fișier de imagine necomprimat (bmp/pgm/ppm) sau o valoare scalară (tuplu RGB888 sau valoarea pixelului subiacent).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Efectuează SAU-EXCLUSIV-NU (XNOR) logic între această imagine și o altă imagine.

image poate fi un obiect imagine, o cale către un fișier de imagine necomprimat (bmp/pgm/ppm) sau o valoare scalară (tuplu RGB888 sau valoarea pixelului subiacent).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

Metode ISP

awb(max: bool = False) Image

Efectuează balansul automat de alb pe imagine folosind algoritmul gray-world. Operează pe imagini RAW Bayer sau RGB565. Nu are niciun efect pe imaginile binare/grayscale.

max dacă este True, folosește în schimb algoritmul white-patch.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau yuv.

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

Înmulțește matricea de corecție a culorilor în virgulă mobilă transmisă cu imaginea. Matricele pot fi 3x3 sau 3x4 (cu coloană de offset), în formă de listă imbricată sau de listă plată:

[[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]

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Ajustează gamma, contrastul și luminozitatea imaginii.

gamma aplică pow(pixel, 1/gamma) după normalizare. Valorile mai mari decât 1.0 luminează; cele mai mici decât 1.0 întunecă.

contrast aplică pixel * contrast după normalizare.

brightness aplică pixel + brightness după normalizare.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Alias pentru Image.gamma.

Metode matematice

negate() Image

Alias pentru Image.invert.

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

Alias pentru Image.draw_image(). Înlocuiește această imagine cu image (sau transformă această imagine pe loc dacă image este omis) folosind argumentele-cheie standard ale draw_image. Argumentul transform este un ndarray 3x3 care descrie o transformare de perspectivă (suportat doar pe camerele OpenMV cu ULAB activat).

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

Alias pentru Image.replace().

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

Alias pentru Image.replace().

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

Adună o imagine pixel cu pixel la aceasta.

image poate fi un obiect imagine, o cale către un fișier de imagine necomprimat (bmp/pgm/ppm) sau o valoare scalară (tuplu RGB888 sau valoarea pixelului subiacent).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Scade image pixel cu pixel din această imagine (self - image).

image poate fi fie un obiect imagine, fie o cale către un fișier de imagine necomprimat (bmp/pgm/ppm), fie o valoare scalară (tuplu RGB888 sau valoarea pixelului subiacent).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Această metodă acceptă, de asemenea, setul complet de argumente-cheie ale Image.draw_image() (x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint, transform).

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Scădere inversă: înlocuiește această imagine cu image - self pixel cu pixel. Altfel identic cu Image.sub().

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

Returnează imaginea minimă a două imagini, pixel cu pixel.

image poate fi un obiect imagine, o cale către un fișier de imagine necomprimat (bmp/pgm/ppm) sau o valoare scalară (tuplu RGB888 sau valoarea pixelului subiacent).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Returnează imaginea maximă a două imagini, pixel cu pixel.

image poate fi un obiect imagine, o cale către un fișier de imagine necomprimat (bmp/pgm/ppm) sau o valoare scalară (tuplu RGB888 sau valoarea pixelului subiacent).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Returnează imaginea diferenței absolute dintre două imagini (de exemplu ||a-b||).

image poate fi un obiect imagine, o cale către un fișier de imagine necomprimat (bmp/pgm/ppm) sau o valoare scalară (tuplu RGB888 sau valoarea pixelului subiacent).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Alias pentru Image.draw_image(). Amestecă alpha image în această imagine. alpha este un întreg 0-256; valorile mai apropiate de 256 favorizează imaginea sursă. Acceptă toate argumentele-cheie ale Image.draw_image().

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

Rulează egalizarea histogramei pe imagine pentru a normaliza contrastul și luminozitatea.

adaptive dacă este True, rulează egalizarea adaptivă a histogramei (mai lentă, dar în general mai bună).

clip_limit limitează contrastul în varianta adaptivă (o valoare mică precum 10 produce rezultate CLAHE bune).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

Metode de filtrare

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

Elimină pixeli de pe marginile zonelor segmentate. Convoluează un kernel ((size*2)+1)x((size*2)+1) peste imagine, anulând pixelul central dacă mai mult de threshold vecini sunt anulați (acționează ca o eroziune standard dacă threshold este None).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Adaugă pixeli pe marginile zonelor segmentate. Convoluează un kernel ((size*2)+1)x((size*2)+1) peste imagine, setând pixelul central dacă mai mult de threshold vecini sunt setați (acționează ca o dilatare standard dacă threshold este None).

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Efectuează eroziune apoi dilatare. Vedeți Image.erode() și Image.dilate().

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Efectuează dilatare apoi eroziune. Vedeți Image.dilate() și Image.erode().

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Returnează diferența de imagine dintre imagine și imaginea procesată cu Image.open().

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Returnează diferența de imagine dintre imagine și imaginea procesată cu Image.close().

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Filtru standard de estompare prin medie folosind un filtru de tip box.

size este dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.

threshold dacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară. offset deplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini). invert inversează ieșirea binară.

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Rulează un filtru de percentilă pe imagine (mediană în mod implicit).

size este dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.

percentile este percentila de selectat din fiecare kernel (0 = min, 0.5 = mediană, 1.0 = max). Implicit este 0.5.

threshold dacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară. offset deplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini). invert inversează ieșirea binară.

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Înlocuiește fiecare pixel cu modul vecinilor săi. Poate produce artefacte pe marginile imaginilor RGB din cauza operației neliniare.

size este dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.

threshold dacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară. offset deplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini). invert inversează ieșirea binară.

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Rulează filtrul de punct median pe imagine. Acest filtru găsește punctul median ((max-min)/2) al fiecărei vecinătăți de pixeli din imagine.

size este dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.

bias controlează amestecarea min/max. 0 pentru filtrare doar min, 1.0 pentru filtrare doar max. Folosind bias puteți filtra imaginea după min/max.

threshold dacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară. offset deplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini). invert inversează ieșirea binară.

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Convoluează imaginea cu un kernel de filtru arbitrar.

size controlează dimensiunea kernelului, care trebuie să fie de ((size*2)+1)x((size*2)+1) elemente.

kernel este kernelul cu care se convoluează, sub forma unei liste/tuplu 1D plat de ((size*2)+1)*((size*2)+1) elemente sau ca o listă/tuplu 2D cu ((size*2)+1) rânduri de ((size*2)+1) elemente.

mul este o scară multiplicativă de contrast (implicit 1.0).

add este un offset aditiv de luminozitate (implicit 0.0).

threshold dacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară. offset deplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini). invert inversează ieșirea binară.

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Convoluează imaginea cu un kernel gaussian de netezire.

size este dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.

unsharp dacă este True, efectuează o operație de mască de neclaritate (accentuează muchiile) în loc de un gaussian simplu.

mul este o scară multiplicativă de contrast (implicit 1.0).

add este un offset aditiv de luminozitate (implicit 0.0).

threshold dacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară. offset deplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini). invert inversează ieșirea binară.

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Convoluează imaginea cu un kernel laplacian de detectare a muchiilor.

size este dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.

sharpen dacă este True, accentuează imaginea în loc să producă răspunsul brut neaplicat de prag al muchiilor.

mul este o scară multiplicativă de contrast (implicit 1.0).

add este un offset aditiv de luminozitate (implicit 0.0).

threshold dacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară. offset deplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini). invert inversează ieșirea binară.

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

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

Convoluează imaginea cu un filtru bilateral (netezire cu păstrarea muchiilor).

size este dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.

color_sigma controlează toleranța de potrivire a culorilor; valorile mai mari produc mai multă estompare a culorilor.

space_sigma controlează estomparea spatială; valorile mai mari produc mai multă estompare a pixelilor.

threshold dacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară. offset deplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini). invert inversează ieșirea binară.

mask este o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer/yuv.

Metode geometrice

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

Re-proiectează o imagine din coordonate carteziene în coordonate polare liniare.

Setați reverse=True pentru a re-proiecta în direcția opusă.

x și y specifică coordonata centrală a transformării în pixeli de imagine. Dacă x este None (valoarea implicită) este setat la jumătate din lățimea imaginii; la fel, y ia implicit jumătate din înălțimea imaginii.

Re-proiecția polară liniară transformă rotația unei imagini în translație pe x.

Nu este suportat pe imaginile comprimate sau imaginile bayer.

Această metodă nu este disponibilă pe OpenMV Cam M4.

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

Re-proiectează o imagine din coordonate carteziene în coordonate polare logaritmice.

Setați reverse=True pentru a re-proiecta în direcția opusă.

x și y specifică coordonata centrală a transformării în pixeli de imagine. Dacă x este None (valoarea implicită) este setat la jumătate din lățimea imaginii; la fel, y ia implicit jumătate din înălțimea imaginii.

Re-proiecția polară logaritmică transformă rotația unei imagini în translație pe x, iar scalarea/zoom-ul în translație pe y.

Nu este suportat pe imaginile comprimate sau imaginile bayer.

Această metodă nu este disponibilă pe OpenMV Cam M4.

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

Efectuează corecția obiectivului pentru a elimina efectul fisheye al imaginii cauzat de distorsiunea obiectivului.

strength este un float care definește cât de mult să se elimine efectul fisheye al imaginii. Încercați implicit 1.8, apoi creșteți sau scădeți de acolo până când imaginea arată bine.

zoom este cantitatea cu care se face zoom în imagine. Implicit 1.0.

x_corr offset de pixeli în virgulă mobilă față de centru. Poate fi negativ sau pozitiv.

y_corr offset de pixeli în virgulă mobilă față de centru. Poate fi negativ sau pozitiv.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Corectează problemele de perspectivă din imagine efectuând o rotație 3D a tamponului de cadre.

x_rotation este numărul de grade cu care se rotește imaginea din tamponul de cadre în jurul axei x (adică aceasta rotește imaginea în sus și în jos).

y_rotation este numărul de grade cu care se rotește imaginea din tamponul de cadre în jurul axei y (adică aceasta rotește imaginea la stânga și la dreapta).

z_rotation este numărul de grade cu care se rotește imaginea din tamponul de cadre în jurul axei z (adică aceasta rotește imaginea pe loc).

x_translation este numărul de unități cu care se mută imaginea la stânga sau la dreapta după rotație. Deoarece această translație se aplică în spațiul 3D, unitățile nu sunt pixeli…

y_translation este numărul de unități cu care se mută imaginea în sus sau în jos după rotație. Deoarece această translație se aplică în spațiul 3D, unitățile nu sunt pixeli…

zoom este cantitatea cu care se face zoom în imagine. Implicit 1.0.

fov este câmpul vizual folosit pentru proiecția internă 2D->3D. Pe măsură ce fov se apropie de 0, imaginea este plasată la infinit; pe măsură ce se apropie de 180, imaginea este plasată în interiorul ferestrei de vizualizare.

corners este o listă de patru tupluri (x, y) folosite pentru a construi o omografie cu 4 puncte care mapează colțurile la (0, 0), (image_width-1, 0), (image_width-1, image_height-1) și (0, image_height-1) înainte de aplicarea rotației 3D. Util pentru transformările de tip vedere de sus.

Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația ..

Nu este suportat pe imaginile comprimate sau imaginile bayer.

Această metodă nu este disponibilă pe OpenMV Cam M4.

Metode 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

Calculează similaritatea dintre două imagini folosind indicele de similaritate structurală (SSIM). SSIM variază de la -1 (opus) la 1 (identic). Returnează un obiect image.similarity.

image este imaginea cu care se compară (un obiect imagine sau un șir de cale, de exemplu "test.jpg").

x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint și transform acceptă aceleași valori ca Image.draw_image().

dssim dacă este True, returnează în schimb indicele de disimilaritate structurală (DSSIM), unde 0 înseamnă identic și 1 înseamnă complet diferit.

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

Calculează histograma normalizată pe toate canalele de culoare pentru un roi și returnează un obiect image.histogram. Disponibilă și ca Image.get_hist() sau Image.histogram().

thresholds este o listă de tupluri (lo, hi) pentru imaginile grayscale sau tupluri (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) pentru imaginile RGB565. Dacă este transmis, histograma este calculată doar peste pixelii aflați în interiorul pragurilor.

invert inversează potrivirea pragului.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

bins (grayscale) sau l_bins/a_bins/b_bins (RGB565) stabilesc numărul de intervale ale histogramei per canal. Trebuie să fie mai mare decât 2. Implicit este numărul maxim de intervale per canal.

difference poate fi setat la un obiect imagine pentru a opera pe diferența dintre imaginea curentă și acea imagine fără un tampon suplimentar.

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Calculează media, mediana, modul, abaterea standard, min, max, cuartila inferioară și cuartila superioară pentru toate canalele de culoare pentru un roi și returnează un obiect image.statistics. Disponibilă și ca Image.get_stats() sau Image.statistics().

thresholds este o listă de tupluri (lo, hi) pentru imaginile grayscale sau tupluri (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) pentru imaginile RGB565. Dacă este transmis, statisticile sunt calculate doar peste pixelii aflați în interiorul pragurilor.

invert inversează potrivirea pragului.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

bins (grayscale) sau l_bins/a_bins/b_bins (RGB565) stabilesc numărul de intervale ale histogramei per canal. Trebuie să fie mai mare decât 2. Implicit este numărul maxim de intervale per canal.

difference poate fi setat la un obiect imagine pentru a opera pe diferența dintre imaginea curentă și acea imagine fără un tampon suplimentar.

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Calculează o regresie liniară (Theil-Sen) pe toți pixelii din imagine care trec de prag. Returnează un obiect image.line sau None dacă nu a fost găsită nicio linie.

thresholds este o listă de tupluri (lo, hi) pentru imaginile grayscale sau tupluri (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) pentru imaginile RGB565.

invert inversează potrivirea pragului.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

x_stride și y_stride controlează câți pixeli sunt săriți în timpul evaluării imaginii.

area_threshold aria minimă a dreptunghiului de încadrare; rezultatele mai mici returnează None.

pixels_threshold numărul minim de pixeli care trec de prag; rezultatele mai mici returnează None.

target_size este un tuplu (w, h). ROI-ul este scalat pe arie pentru a încăpea în această dimensiune înainte de a rula algoritmul O(N^2). Implicit este (80, 60).

Nu este suportat pe imaginile comprimate sau imaginile bayer.

Metode de detectare

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]

Găsește toate blob-urile (regiuni de pixeli conectate care trec un test de prag) din imagine și returnează o listă de obiecte image.blob.

thresholds este o listă de tupluri (lo, hi) pentru imaginile grayscale sau tupluri (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) pentru imaginile RGB565 (canale LAB). Se pot transmite până la 32 de tupluri. Valorile min/max inversate sunt corectate automat; componentele lipsă iau implicit intervalul maxim.

invert inversează potrivirea pragului.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

x_stride și y_stride controlează câți pixeli sunt săriți în timpul căutării unui blob. Creșteți dacă se știe că blob-urile sunt mari.

area_threshold aria minimă a dreptunghiului de încadrare; blob-urile mai mici sunt filtrate.

pixels_threshold numărul minim de pixeli care trec de prag; blob-urile mai mici sunt filtrate.

merge dacă este True îmbină blob-urile ale căror dreptunghiuri de încadrare se intersectează. margin mărește/micșorează dreptunghiurile de încadrare folosite pentru intersecție. Blob-urile îmbinate combină prin SAU vectorii lor de biți code (câte un bit per prag).

threshold_cb este apelat pentru fiecare blob după aplicarea pragului; returnați True pentru a-l păstra, False pentru a-l filtra.

merge_cb este apelat pentru fiecare pereche de blob-uri pe cale de a fi îmbinate; returnați True pentru a permite îmbinarea, False pentru a o împiedica.

x_hist_bins_max dacă este diferit de zero, populează fiecare blob cu o proiecție x_histogram folosind acest număr de intervale.

y_hist_bins_max dacă este diferit de zero, populează fiecare blob cu o proiecție y_histogram folosind acest număr de intervale.

Nu este suportat pe imaginile comprimate sau imaginile bayer.

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

Găsește toate liniile infinite din imagine folosind transformarea Hough. Returnează o listă de obiecte image.line.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

x_stride și y_stride controlează câți pixeli sunt săriți în timpul transformării Hough.

threshold magnitudinea minimă a liniei (suma magnitudinilor sobel de-a lungul liniei); liniile sub această valoare sunt filtrate.

theta_margin și rho_margin controlează îmbinarea: liniile aflate în aceste praguri sunt îmbinate.

Nu este suportat pe imaginile comprimate sau imaginile bayer.

Această metodă nu este disponibilă pe 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]

Găsește segmente de linie în imagine. Returnează o listă de obiecte image.line.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

merge_distance este separarea maximă în pixeli dintre două segmente pentru a fi îmbinate.

max_theta_difference este diferența maximă de theta în grade dintre segmente pentru a fi îmbinate.

Această metodă nu este disponibilă pe 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]

Găsește cercuri în imagine folosind transformarea Hough. Returnează o listă de obiecte image.circle.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

x_stride și y_stride controlează câți pixeli sunt săriți în timpul transformării Hough.

threshold magnitudinea minimă a cercului (suma magnitudinilor sobel de-a lungul cercului); cercurile sub această valoare sunt filtrate.

x_margin, y_margin și r_margin controlează îmbinarea: cercurile aflate în aceste praguri sunt îmbinate.

r_min raza minimă a cercului. Implicit este 2.

r_max raza maximă a cercului. Implicit este min(roi.w/2, roi.h/2).

r_step dimensiunea pasului de rază. Implicit este 2.

Această metodă nu este disponibilă pe OpenMV Cam M4.

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

Găsește dreptunghiuri în imagine folosind algoritmul de detectare a cvadrilaterelor apriltag. Returnează o listă de obiecte image.rect.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

threshold magnitudinea minimă a muchiei (suma magnitudinilor sobel de-a lungul muchiilor dreptunghiului); dreptunghiurile sub această valoare sunt filtrate.

Această metodă nu este disponibilă pe OpenMV Cam M4.

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

Găsește toate codurile qr din roi și returnează o listă de obiecte image.qrcode.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

Această metodă nu este disponibilă pe 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]

Găsește toate etichetele apriltag din roi și returnează o listă de obiecte image.apriltag.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

families este o mască de biți a familiilor de etichete de decodat. Este SAU-ul logic al:

Implicit este image.TAG36H11. Timpul de detectare crește cu numărul de familii activate.

fx și fy sunt distanțele focale X și Y ale camerei în pixeli.

cx și cy sunt centrul imaginii, de obicei image.width()/2 și image.height()/2.

Nu este suportat pe imaginile comprimate.

Această metodă nu este disponibilă pe OpenMV Cam M4.

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

Găsește toate matricele de date din roi și returnează o listă de obiecte image.datamatrix.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

effort controlează cât timp se petrece încercând să se găsească potriviri de matrice de date. Valorile mai mari îmbunătățesc detectarea cu costul ratei de cadre. Valorile sub ~160 nu reușesc să detecteze; valorile peste ~240 produc randamente descrescătoare. Implicit este 200.

Această metodă nu este disponibilă pe OpenMV Cam M4.

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

Găsește toate codurile de bare 1D din roi și returnează o listă de obiecte image.barcode. Scanează atât pe orizontală, cât și pe verticală.

Tipuri de coduri de bare suportate: 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 este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

Această metodă nu este disponibilă pe 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

Găsește offsetul de translație al acestei imagini față de template folosind corelația de fază. Returnează un obiect image.displacement.

roi este dreptunghiul regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

template_roi este regiunea de interes a șablonului. Implicit este dreptunghiul imaginii șablon. roi și template_roi trebuie să aibă aceeași lățime și înălțime.

logpolar dacă este True returnează schimbarea de rotație/scară în loc de translația x/y.

fix_rotation_scale dacă este True, calculează deplasarea după alinierea rotației și scării (relevant doar când logpolar=False).

Notă

Folosiți această metodă pe dimensiuni de imagine putere a lui 2 (de exemplu sensor.B64X64).

Nu este suportat pe imaginile comprimate sau imaginile bayer. Nu este disponibil pe 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

Încearcă să găsească prima locație din imagine unde se potrivește template folosind corelația încrucișată normalizată. Returnează un tuplu dreptunghi de încadrare (x, y, w, h) sau None.

template este o imagine grayscale de potrivit cu această imagine.

threshold este o valoare (0.0-1.0). Valorile mai mari reduc rezultatele fals pozitive și detectările; valorile mai mici fac opusul.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

step este numărul de pixeli de sărit în timpul căutării (folosit doar în modul image.SEARCH_EX).

search este image.SEARCH_DS (căutare diamond mai rapidă) sau image.SEARCH_EX (căutare exhaustivă).

Funcționează doar pe imaginile grayscale.

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

Caută în imagine zone care se potrivesc cu cascada Haar transmisă și returnează o listă de tupluri dreptunghi de încadrare (x, y, w, h). Returnează o listă goală dacă nu sunt găsite caracteristici.

cascade este un obiect Cascadă Haar (vedeți image.HaarCascade()).

threshold (0.0-1.0). Valorile mai mici cresc rata de detectare și rata de fals pozitive.

scale trebuie să fie mai mare decât 1.0. Valorile mai mari rulează mai rapid, dar produc potriviri mai slabe.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

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

Caută pupila într-un tuplu de regiune de interes (x, y, w, h) din jurul unui ochi. Returnează locația (x, y) a pupilei sau (0, 0) dacă nu este găsită.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h).

Funcționează doar pe imaginile grayscale.

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

Extrage puncte-cheie LBP (local-binary-patterns) din regiunea de interes. Folosiți image.match_descriptor() pentru a compara doi descriptori.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h).

Funcționează doar pe imaginile grayscale.

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

Extrage puncte-cheie ORB din regiunea de interes. Folosiți image.match_descriptor() pentru a compara doi descriptori. Returnează None dacă nu au fost găsite puncte-cheie.

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.

threshold (0-255) controlează numărul de colțuri extrase. Pragurile mai mici produc mai multe colțuri. Folosiți ~20 pentru AGAST, ~60-80 pentru FAST.

normalized dacă este True, dezactivează extragerea punctelor-cheie cu multi-rezoluție.

scale_factor trebuie să fie mai mare decât 1.0. Valorile mai mari rulează mai rapid, dar produc potriviri mai slabe.

max_keypoints este numărul maxim de puncte-cheie de reținut.

corner_detector este image.CORNER_FAST sau image.CORNER_AGAST.

Funcționează doar pe imaginile grayscale.

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

Transformă imaginea în alb-negru, lăsând doar muchiile ca pixeli albi.

  • image.EDGE_SIMPLE - Algoritm simplu de filtru trece-sus cu prag.

  • image.EDGE_CANNY - Algoritmul de detectare a muchiilor Canny.

threshold este un tuplu cu două valori care conține un prag inferior și un prag superior. Puteți controla calitatea muchiilor ajustând aceste valori. Implicit este (100, 200).

Funcționează doar pe imaginile grayscale.

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

Înlocuiește pixelii din ROI cu linii HOG (histogram of oriented gradients).

roi este tuplul dreptunghiular al regiunii de interes (x, y, w, h). Dacă nu este specificat, este egal cu dreptunghiul imaginii. Doar pixelii din interiorul roi sunt prelucrați.

Funcționează doar pe imaginile grayscale.

Această metodă nu este disponibilă pe OpenMV Cam M4.

stereo_disparity(reversed: bool = False, max_disparity: int = 64, threshold: int = 64) Image

Preia o imagine grayscale de lățime dublă care conține ieșirea a doi senzori de cameră alăturați și înlocuiește o jumătate cu imaginea de disparitate stereo (fiecare pixel reprezintă adâncimea). De exemplu, pentru două camere de 320x240 transmiteți o imagine de 640x240.

reversed În mod implicit imaginea din stânga este comparată cu cea din dreapta, iar imaginea din dreapta este înlocuită. Setați True pentru a compara dreapta->stânga și a înlocui imaginea din stânga.

max_disparity este distanța maximă (1-255) de căutat pentru un bloc de pixeli care se potrivește folosind suma diferențelor absolute. Valorile mai mari durează exponențial mai mult, dar produc o ieșire de calitate mai înaltă.

threshold dacă suma diferențelor absolute dintre două blocuri este mai mică sau egală cu acest prag, ele sunt considerate că se potrivesc.

Rulează căutarea selectivă pe imagine și returnează o listă de tupluri dreptunghi de încadrare (x, y, w, h) ale propunerilor de obiecte.

threshold este pragul de segmentare; valorile mai mari produc regiuni mai puține/mai mari.

size este dimensiunea minimă a regiunii după îmbinare.

a1, a2, a3 sunt ponderile de similaritate culoare/textură/dimensiune folosite la îmbinarea regiunilor.