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()sauto_rgb565().
De unde provin obiectele Image¶
Există patru moduri de a obține un Image:
Din tamponul de cadre al camerei –
csi.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 la0.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 argumentbuffer=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¶
Indexare –
img[i]citește pixeluli(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.Lungime –
len(img)returnează numărul de pixeli pentru formatele necomprimate sau numărul de octeți pentru formatele comprimate.Iterare –
for px in img: ...parcurge tabloul de pixeli în aceeași ordine ca indexarea cu[].Tip bytes –
Imageexpune protocolul de tampon de citire, astfel încât îl puteți transmite direct oricărui element care acceptă un obiectbytes/bytearray(de exempluuart.write(img),socket.send(img),hashlib.sha256(img)). Folosiți în schimbbytearray()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:
image.AREA: Folosește scalarea pe arie la micșorare, în locul valorii implicite de cel mai apropiat vecin.
image.BILINEAR: Folosește scalarea biliniară în locul scalării implicite de cel mai apropiat vecin.
image.BICUBIC: Folosește scalarea bicubică în locul scalării implicite de cel mai apropiat vecin.
image.CENTER: Centrează imaginea desenată pe afișaj. Aceasta se aplică după scalare.
image.HMIRROR: Oglindește imaginea pe orizontală.
image.VFLIP: Răstoarnă imaginea pe verticală.
image.TRANSPOSE: Transpune imaginea (schimbă x/y).
image.EXTRACT_RGB_CHANNEL_FIRST: Efectuează extragerea rgb_channel înainte de scalare.
image.APPLY_COLOR_PALETTE_FIRST: Aplică paleta de culori înainte de scalare.
image.SCALE_ASPECT_KEEP: Scalează imaginea desenată pentru a încăpea în afișaj.
image.SCALE_ASPECT_EXPAND: Scalează imaginea desenată pentru a umple afișajul (rezultă în decupare)
image.SCALE_ASPECT_IGNORE: Scalează imaginea desenată pentru a umple afișajul (rezultă în întindere).
image.ROTATE_90: Rotește imaginea cu 90 de grade (este doar VFLIP | TRANSPOSE).
image.ROTATE_180: Rotește imaginea cu 180 de grade (este doar HMIRROR | VFLIP).
image.ROTATE_270: Rotește imaginea cu 270 de grade (este doar HMIRROR | TRANSPOSE).
image.BLACK_BACKGROUND: Presupune că imaginea de fundal pe care se desenează este neagră, accelerând amestecarea. Suportat doar deImage.draw_image()șiImage.get_similarity().
- class image.Image(arg: str | int | ndarray, height: int = -1, pixformat: int = -1, *, buffer: bytes | bytearray | memoryview | None = None, copy_to_fb: bool = False)¶
Dacă
argeste un șir, atunci aceasta creează un nou obiect imagine dintr-un fișier de la caleaarg. Suportă încărcarea fișierelor de imagine bmp/pgm/ppm/jpg/jpeg/png de pe disc. Dacăcopy_to_fbeste adevărat, imaginea este copiată în tamponul de cadre în loc să fie alocată pe heap.Dacă
argeste unndarray, atunci aceasta creează un nou obiect imagine dinndarray. Obiectelendarraycu o formă de(w, h)sunt tratate ca imagini grayscale, iar(w, h, 3)sunt tratate ca imagini RGB565. Doarndarraysde tip float32 sunt suportate în prezent. La crearea unei imagini în acest mod, dacă transmiteți un argumentbuffer, acesta va fi folosit pentru a stoca datele imaginii în loc să se aloce spațiu pe heap. Dacăcopy_to_fbeste adevărat, imaginea este copiată în tamponul de cadre în loc să fie alocată pe heap sau să foloseascăbuffer.Dacă
argeste unint, atunci este considerat lățimea unei noi imagini, iar o valoareheightși o valoareformattrebuie să urmeze pentru a crea un nou obiect imagine goală.formatpoate fi orice valoare pixformat de imagine, precumimage.GRAYSCALE. Imaginea va fi inițializată cu zerouri. Rețineți că o valoarebuffereste așteptată pentru formatele de imagine comprimate.buffereste considerat sursa datelor de imagine pentru crearea imaginilor în acest mod. Dacă este folosit împreună cucopy_to_fb, datele dinbuffersunt copiate în tamponul de cadre. Dacă doriți să creați o imagine JPEG dintr-un obiect JPEGbytes()saubytearray(), puteți transmitewidth,height,image.JPEGpentru JPEG împreună cu setareabufferla fluxul de octeți JPEG pentru a crea o imagine JPEG.Imaginile suportă notația „[]”. Folosiți
image[index] = 8/16-bit valuepentru a atribui un pixel de imagine sauimage[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ă¶
- format() int¶
Returnează
image.GRAYSCALEpentru imaginile grayscale,image.RGB565pentru imaginile RGB565,image.BAYERpentru imaginile cu model bayer șiimage.JPEGpentru imaginile JPEG.
- bytearray() bytearray¶
Returnează un obiect
bytearraycare indică spre datele imaginii pentru acces de citire/scriere la nivel de octet.Notă
Obiectele imagine sunt convertite automat în obiecte
bytescând sunt transmise unui driver MicroPython care necesită un obiect de tipbytes. Acesta este un acces doar pentru citire. Apelațibytearray()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ă
xsauyeste în afara imaginii.xșiypot fi transmise fie independent, fie ca un tuplu.rgbtupledacă 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()șiImage.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ă curgbtuplesetat, atunciImage.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 valoareapixel.Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația
..xșiypot fi transmise fie independent, fie ca un tuplu.pixelpoate 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()șiImage.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
ndarraycreat din imagine. Acest lucru funcționează în prezent doar pentru imaginile GRAYSCALE sau RGB565.dtypepoate fib,Bsaufpentru a crea unndarraycu 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 obiectendarrayfără semn pe 8 biți. Pentru obiectelendarraycu semn pe 8 biți, valorile (0:255) sunt mapate la (-127:128). Pentru obiectelendarrayfloat pe 32 de biți, valorile sunt mapate la (0.0:255.0). Imaginile RGB565 sunt convertite în obiectendarraycu 3 canale, iar același proces descris mai sus pentru imaginile GRAYSCALE este aplicat fiecărui canal în funcție dedtype. Rețineți cădtypeacceptă și valorile întregi (de exempluord()) ale luib,Bșifrespectiv.bufferdacă nu esteNoneeste un obiectbytearraycare va fi folosit ca tampon pentrundarray. Dacă esteNone, un nou tampon este alocat pe heap pentru a stoca datele imaginiindarray. Puteți folosi argumentulbufferpentru a aloca directndarrayîntr-un tampon pre-alocat, economisind o alocare pe heap și o operație de copiere.ndarrayreturnat 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. 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șisensor.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 valorilemaskî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 imaginilorsensor.GRAYSCALEsausensor.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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate fiimage.PALETTE_DEPTHsau 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.qualitycontrolează calitatea compresiei imaginii jpeg. Valoarea poate fi între 0 și 100.subsamplingpoate fi:image.JPEG_SUBSAMPLING_AUTO: Folosește cea mai bună subeșantionare pentru imagine în funcție de calitate.image.JPEG_SUBSAMPLING_444: Folosește subeșantionarea 4:4:4.image.JPEG_SUBSAMPLING_422: Folosește subeșantionarea 4:2:2.image.JPEG_SUBSAMPLING_420: Folosește subeșantionarea 4:2:0.
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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. Acest lucru nu are niciun efect special dacă imaginea se află deja în tamponul de cadre.qualitycontrolează calitatea compresiei imaginii jpeg. Valoarea poate fi între 0 și 100.subsamplingpoate fi:image.JPEG_SUBSAMPLING_AUTO: Folosește cea mai bună subeșantionare pentru imagine în funcție de calitate.image.JPEG_SUBSAMPLING_444: Folosește subeșantionarea 4:4:4.image.JPEG_SUBSAMPLING_422: Folosește subeșantionarea 4:2:2.image.JPEG_SUBSAMPLING_420: Folosește subeșantionarea 4:2:0.
Returnează obiectul imagine, astfel încât să puteți apela altă metodă folosind notația
..Notă
Image.compresseste un alias pentruImage.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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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_fbdacă 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (excluzândimage.BLACK_BACKGROUNDcare nu este suportat aici).transformeste unndarray3x3 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.copydacă este True creează o copie completă pe heap a imaginii care a fost convertită, în loc să convertească imaginea originală pe loc.copy_to_fbdacă este True imaginea este încărcată direct în tamponul de cadre.copy_to_fbare prioritate față decopy. 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.scaleeste un alias pentruImage.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.
roieste 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.qualityeste 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
..
Metode de desenare¶
- clear(mask: Image | None = None) Image¶
Setează toți pixelii din imagine la zero (foarte rapid).
maskeste 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).
coloreste 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.thicknesscontrolează 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).
coloreste 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.thicknesscontrolează cât de groase sunt liniile în pixeli.Transmiteți
fillsetat 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).
coloreste 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.thicknesscontrolează cât de groase sunt marginile în pixeli.Transmiteți
fillsetat 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).
coloreste 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.thicknesscontrolează cât de groase sunt marginile în pixeli.Transmiteți
fillsetat 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).
texteste un șir de scris în imagine. Terminatoarele de linie\n,\rși\r\nmută cursorul la următoarea linie.coloreste 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.scalepoate 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_spacingvă permite să adăugați (dacă este pozitiv) sau să scădeți (dacă este negativ) pixeli x între caractere.y_spacingvă 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_spaceimplicit 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_rotationpoate fi 0, 90, 180, 270 pentru a roti fiecare caracter din șir cu această valoare.char_hmirrordacă este True oglindește pe orizontală toate caracterele din șir.char_vflipdacă este True răstoarnă pe verticală toate caracterele din șir.string_rotationpoate fi 0, 90, 180, 270 pentru a roti șirul cu această valoare.string_hmirrordacă este True oglindește pe orizontală șirul.string_vflipdacă 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).
coloreste 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.sizecontrolează cât de lungi se extind liniile crucii.thicknesscontrolează 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).
coloreste 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.thicknesscontrolează 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.
detectioneste 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).color1este culoarea dreptunghiului, iarcolor2este culoarea crucii centroidului.sizeeste dimensiunea crucii centroidului,thicknesscontrolează lățimea conturului, iarfillumple dreptunghiul.labeldacă este furnizat este desenat lângă dreptunghi, decalat culabel_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)].coloreste 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.sizedacă este mai mare decât 0 face ca colțurile să fie desenate ca cercuri de razăsize.thicknesscontrolează cât de groasă este linia în pixeli.Transmiteți
fillsetat 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
imageal 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_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.y_scalecontrolează 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_scalenu este specificat, acesta va corespunde luix_scalepentru a menține raportul de aspect.roieste 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_channeleste 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țirgb_channel=1, aceasta va extrage canalul verde al imaginii sursă RGB565 și îl va desena în tonuri de gri pe imaginea de destinație.alphacontrolează 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_palettedacă nu esteNonepoate 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ă extragereargb_channeldacă este folosită.alpha_palettedacă nu esteNonepoate fi o imagine GRAYSCALE de 256 de pixeli în total, folosită ca paletă alpha care modulează valoareaalphaa 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ă extragereargb_channeldacă este folosită.hinteste un SAU logic al indicatoarelor enumerate în Indicatoare hint (inclusivimage.BLACK_BACKGROUNDcare este suportat aici).transformeste unndarray3x3 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.
coloreste 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.sizecontrolează cât de mari sunt punctele-cheie.thicknesscontrolează cât de groasă este linia în pixeli.Transmiteți
fillsetat 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_thresholdcontrolează cât de diferit poate fi orice pixel din zona de umplere față de pixelul inițial de pornire.floating_thresholdcontrolează cât de diferit poate fi orice pixel din zona de umplere față de orice pixeli vecini.coloreste 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
invertca True pentru a re-colora tot ce se află în afara zonei conectate de umplere prin inundare.Transmiteți
clear_backgroundca True pentru a anula restul pixelilor pe care umplerea prin inundare nu i-a re-colorat.maskeste 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 unImagepentru vizualizare. Tamponul imaginii trebuie să fie o imagine GRAYSCALE de 320x320.Pentru fiecare rând
csi.PIX_ON_EVENTpixelului evenimentului i se adaugă+contrast; pentru fiecare rândcsi.PIX_OFF_EVENTpixelului i se adaugă-contrast. Evenimentele de declanșare sunt ignorate. Valorile pixelilor sunt limitate la 0-255.cleardacă este True resetează tamponul imaginii labrightnessî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ă).brightnesscontrolează linia de bază de gri mediu la care este resetat tamponul cândcleareste True. Valoarea implicită 128 plasează evenimentele ON la capătul luminos și evenimentele OFF la capătul întunecat cu rezervă egală.contrastcontrolează 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.thresholdseste 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.invertinversează potrivirea pragului.zerodacă este True, anulează pixelii care trec de prag și îi lasă pe ceilalți neatinși.maskeste o imagine binară folosită ca mască la nivel de pixel; doar pixelii setați în mască sunt modificați.to_bitmapdacă este True, convertește datele imaginii într-un bitmap de 1 bit per pixel. Pentru imaginile foarte mici acest lucru poate necesitacopy=True.copydacă 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 - pixelpentru 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.
imagepoate 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).maskeste 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.
imagepoate 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).maskeste 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.
imagepoate 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).maskeste 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.
imagepoate 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).maskeste 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.
imagepoate 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).maskeste 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.
imagepoate 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).maskeste 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.
maxdacă 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.
gammaaplicăpow(pixel, 1/gamma)după normalizare. Valorile mai mari decât 1.0 luminează; cele mai mici decât 1.0 întunecă.contrastaplicăpixel * contrastdupă normalizare.brightnessaplicăpixel + brightnessdupă 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.
Metode matematice¶
- negate() Image¶
Alias pentru
Image.invert.
- replace(image: Image | None = None, **kwargs) Image¶
Alias pentru
Image.draw_image(). Înlocuiește această imagine cuimage(sau transformă această imagine pe loc dacăimageeste omis) folosind argumentele-cheie standard aledraw_image. Argumentultransformeste unndarray3x3 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.
imagepoate 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).maskeste 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
imagepixel cu pixel din această imagine (self - image).imagepoate 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).maskeste 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 - selfpixel cu pixel. Altfel identic cuImage.sub().
- min(image: Image, mask: Image | None = None) Image¶
Returnează imaginea minimă a două imagini, pixel cu pixel.
imagepoate 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).maskeste 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.
imagepoate 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).maskeste 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||).
imagepoate 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).maskeste 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ă alphaimageîn această imagine.alphaeste un întreg 0-256; valorile mai apropiate de 256 favorizează imaginea sursă. Acceptă toate argumentele-cheie aleImage.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.
adaptivedacă este True, rulează egalizarea adaptivă a histogramei (mai lentă, dar în general mai bună).clip_limitlimitează contrastul în varianta adaptivă (o valoare mică precum 10 produce rezultate CLAHE bune).maskeste 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 dethresholdvecini sunt anulați (acționează ca o eroziune standard dacăthresholdeste None).maskeste 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 dethresholdvecini sunt setați (acționează ca o dilatare standard dacăthresholdeste None).maskeste 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()șiImage.dilate().maskeste 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()șiImage.erode().maskeste 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().maskeste 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().maskeste 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.
sizeeste dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.thresholddacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară.offsetdeplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini).invertinversează ieșirea binară.maskeste 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).
sizeeste dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.percentileeste percentila de selectat din fiecare kernel (0 = min, 0.5 = mediană, 1.0 = max). Implicit este 0.5.thresholddacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară.offsetdeplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini).invertinversează ieșirea binară.maskeste 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.
sizeeste dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.thresholddacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară.offsetdeplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini).invertinversează ieșirea binară.maskeste 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.
sizeeste dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.biascontrolează amestecarea min/max. 0 pentru filtrare doar min, 1.0 pentru filtrare doar max. Folosindbiasputeți filtra imaginea după min/max.thresholddacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară.offsetdeplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini).invertinversează ieșirea binară.maskeste 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.
sizecontrolează dimensiunea kernelului, care trebuie să fie de((size*2)+1)x((size*2)+1)elemente.kerneleste 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.muleste o scară multiplicativă de contrast (implicit 1.0).addeste un offset aditiv de luminozitate (implicit 0.0).thresholddacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară.offsetdeplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini).invertinversează ieșirea binară.maskeste 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.
sizeeste dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.unsharpdacă este True, efectuează o operație de mască de neclaritate (accentuează muchiile) în loc de un gaussian simplu.muleste o scară multiplicativă de contrast (implicit 1.0).addeste un offset aditiv de luminozitate (implicit 0.0).thresholddacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară.offsetdeplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini).invertinversează ieșirea binară.maskeste 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.
sizeeste dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.sharpendacă este True, accentuează imaginea în loc să producă răspunsul brut neaplicat de prag al muchiilor.muleste o scară multiplicativă de contrast (implicit 1.0).addeste un offset aditiv de luminozitate (implicit 0.0).thresholddacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară.offsetdeplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini).invertinversează ieșirea binară.maskeste 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).
sizeeste dimensiunea kernelului. Folosiți 1 (kernel 3x3), 2 (kernel 5x5), etc.color_sigmacontrolează toleranța de potrivire a culorilor; valorile mai mari produc mai multă estompare a culorilor.space_sigmacontrolează estomparea spatială; valorile mai mari produc mai multă estompare a pixelilor.thresholddacă este True, aplică un prag adaptiv ieșirii filtrului pentru a obține o imagine binară.offsetdeplasează binarizarea (negativ face mai mulți pixeli albi, pozitiv mai puțini).invertinversează ieșirea binară.maskeste 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=Truepentru a re-proiecta în direcția opusă.xșiyspecifică coordonata centrală a transformării în pixeli de imagine. DacăxesteNone(valoarea implicită) este setat la jumătate din lățimea imaginii; la fel,yia 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=Truepentru a re-proiecta în direcția opusă.xșiyspecifică coordonata centrală a transformării în pixeli de imagine. DacăxesteNone(valoarea implicită) este setat la jumătate din lățimea imaginii; la fel,yia 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.
strengtheste 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.zoomeste cantitatea cu care se face zoom în imagine. Implicit 1.0.x_corroffset de pixeli în virgulă mobilă față de centru. Poate fi negativ sau pozitiv.y_corroffset 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_rotationeste 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_rotationeste 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_rotationeste 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_translationeste 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_translationeste 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…zoomeste cantitatea cu care se face zoom în imagine. Implicit 1.0.foveste câmpul vizual folosit pentru proiecția internă 2D->3D. Pe măsură cefovse apropie de 0, imaginea este plasată la infinit; pe măsură ce se apropie de 180, imaginea este plasată în interiorul ferestrei de vizualizare.cornerseste 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.imageeste 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șitransformacceptă aceleași valori caImage.draw_image().dssimdacă 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 obiectimage.histogram. Disponibilă și caImage.get_hist()sauImage.histogram().thresholdseste 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.invertinversează potrivirea pragului.roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.bins(grayscale) saul_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.differencepoate 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 obiectimage.statistics. Disponibilă și caImage.get_stats()sauImage.statistics().thresholdseste 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.invertinversează potrivirea pragului.roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.bins(grayscale) saul_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.differencepoate 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.linesau None dacă nu a fost găsită nicio linie.thresholdseste 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.invertinversează potrivirea pragului.roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.x_strideșiy_stridecontrolează câți pixeli sunt săriți în timpul evaluării imaginii.area_thresholdaria minimă a dreptunghiului de încadrare; rezultatele mai mici returnează None.pixels_thresholdnumărul minim de pixeli care trec de prag; rezultatele mai mici returnează None.target_sizeeste 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.thresholdseste 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.invertinversează potrivirea pragului.roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.x_strideșiy_stridecontrolează 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_thresholdaria minimă a dreptunghiului de încadrare; blob-urile mai mici sunt filtrate.pixels_thresholdnumărul minim de pixeli care trec de prag; blob-urile mai mici sunt filtrate.mergedacă este True îmbină blob-urile ale căror dreptunghiuri de încadrare se intersectează.marginmărește/micșorează dreptunghiurile de încadrare folosite pentru intersecție. Blob-urile îmbinate combină prin SAU vectorii lor de bițicode(câte un bit per prag).threshold_cbeste apelat pentru fiecare blob după aplicarea pragului; returnați True pentru a-l păstra, False pentru a-l filtra.merge_cbeste 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_maxdacă este diferit de zero, populează fiecare blob cu o proiecție x_histogram folosind acest număr de intervale.y_hist_bins_maxdacă 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.roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.x_strideșiy_stridecontrolează câți pixeli sunt săriți în timpul transformării Hough.thresholdmagnitudinea minimă a liniei (suma magnitudinilor sobel de-a lungul liniei); liniile sub această valoare sunt filtrate.theta_marginșirho_margincontrolează î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.roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.merge_distanceeste separarea maximă în pixeli dintre două segmente pentru a fi îmbinate.max_theta_differenceeste 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.roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.x_strideșiy_stridecontrolează câți pixeli sunt săriți în timpul transformării Hough.thresholdmagnitudinea minimă a cercului (suma magnitudinilor sobel de-a lungul cercului); cercurile sub această valoare sunt filtrate.x_margin,y_marginșir_margincontrolează îmbinarea: cercurile aflate în aceste praguri sunt îmbinate.r_minraza minimă a cercului. Implicit este 2.r_maxraza maximă a cercului. Implicit estemin(roi.w/2, roi.h/2).r_stepdimensiunea 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.roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.thresholdmagnitudinea 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 obiecteimage.qrcode.roieste 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 obiecteimage.apriltag.roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.familieseste 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șifysunt distanțele focale X și Y ale camerei în pixeli.cxșicysunt centrul imaginii, de obiceiimage.width()/2șiimage.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 obiecteimage.datamatrix.roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.effortcontrolează 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 obiecteimage.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.roieste 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
templatefolosind corelația de fază. Returnează un obiectimage.displacement.roieste dreptunghiul regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.template_roieste regiunea de interes a șablonului. Implicit este dreptunghiul imaginii șablon.roișitemplate_roitrebuie să aibă aceeași lățime și înălțime.logpolardacă este True returnează schimbarea de rotație/scară în loc de translația x/y.fix_rotation_scaledacă este True, calculează deplasarea după alinierea rotației și scării (relevant doar cândlogpolar=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
templatefolosind corelația încrucișată normalizată. Returnează un tuplu dreptunghi de încadrare (x, y, w, h) sau None.templateeste o imagine grayscale de potrivit cu această imagine.thresholdeste o valoare (0.0-1.0). Valorile mai mari reduc rezultatele fals pozitive și detectările; valorile mai mici fac opusul.roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Implicit este dreptunghiul imaginii.stepeste numărul de pixeli de sărit în timpul căutării (folosit doar în modulimage.SEARCH_EX).searchesteimage.SEARCH_DS(căutare diamond mai rapidă) sauimage.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.
cascadeeste un obiect Cascadă Haar (vedețiimage.HaarCascade()).threshold(0.0-1.0). Valorile mai mici cresc rata de detectare și rata de fals pozitive.scaletrebuie să fie mai mare decât 1.0. Valorile mai mari rulează mai rapid, dar produc potriviri mai slabe.roieste 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ă.
roieste 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.roieste 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.roieste 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.normalizeddacă este True, dezactivează extragerea punctelor-cheie cu multi-rezoluție.scale_factortrebuie să fie mai mare decât 1.0. Valorile mai mari rulează mai rapid, dar produc potriviri mai slabe.max_keypointseste numărul maxim de puncte-cheie de reținut.corner_detectoresteimage.CORNER_FASTsauimage.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.
thresholdeste 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).
roieste tuplul dreptunghiular al regiunii de interes (x, y, w, h). Dacă nu este specificat, este egal cu dreptunghiul imaginii. Doar pixelii din interiorulroisunt 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_disparityeste 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ă.thresholddacă suma diferențelor absolute dintre două blocuri este mai mică sau egală cu acest prag, ele sunt considerate că se potrivesc.
- selective_search(threshold: int = 500, size: int = 20, a1: float = 1.0, a2: float = 1.0, a3: float = 1.0) List[Tuple[int, int, int, int]]¶
Rulează căutarea selectivă pe imagine și returnează o listă de tupluri dreptunghi de încadrare (x, y, w, h) ale propunerilor de obiecte.
thresholdeste pragul de segmentare; valorile mai mari produc regiuni mai puține/mai mari.sizeeste dimensiunea minimă a regiunii după îmbinare.a1,a2,a3sunt ponderile de similaritate culoare/textură/dimensiune folosite la îmbinarea regiunilor.