class Image – Image-objekt¶
Image är den centrala datatypen i modulen image – en pixelbuffert i minnet som varje ritrutin, varje filter, varje geometrisk transform och varje rutin för särdragsextraktion arbetar på. Varje bildruta som kommer ut ur csi.CSI.snapshot() är en Image; likaså varje bildruta som läses in från disk, avkodas från JPEG eller PNG, allokeras från en numpy-liknande ndarray eller skapas som en tom rityta.
En Image beskrivs av tre tal – width, height och pixformat – plus en sammanhängande pixelbuffert. Pixelformatet bestämmer både layouten i minnet och vilka operationer som är tillgängliga:
BINARY (1 bpp) – 1 bit per pixel; används av morfologi och tröskling.
GRAYSCALE (8 bpp) – 1 byte per pixel; det kanoniska formatet för det mesta inom CV (AprilTag, kanter, ORB, optiskt flöde).
RGB565 (16 bpp) – 2 byte per pixel (5R/6G/5B); standardfärgformatet.
BAYER (8 bpp) – rådata i Bayer-mosaik direkt från sensorn. De flesta CV-metoder är inte tillgängliga på Bayer-bilder; debayera till GRAYSCALE / RGB565 först.
YUV422 (16 bpp) – 4:2:2 kroma-subsamplad färg, två byte per pixel. Bara vissa metoder fungerar direkt på YUV422.
JPEG / PNG – komprimerade buffertar. Pixelnivåoperationer kräver
to_grayscale()ellerto_rgb565()först.
Var Image-objekt kommer ifrån¶
Det finns fyra sätt att få tag i en Image:
Från kamerans bildbuffert –
csi.CSI().snapshot()returnerar nästa infångade bildruta. Det returnerade objektet är ett tunt omslag kring kamerans bildbuffertminne, så varje rit-/filteroperation på det ändrar vad som skickas till IDE-förhandsvisningen och displayen.Från en fil – skicka en sökvägssträng till
Image-konstruktorn. BMP, PGM, PPM, JPEG och PNG avkodas direkt till RAM (eller till kamerans bildbuffert omcopy_to_fb=True).Från en ndarray – skicka en
(h, w)- eller(h, w, 3)-array av float32. Pixlarna skalas från0.0 -- 255.0till GRAYSCALE respektive RGB565.Tom – skicka
(width, height, pixformat)för att allokera en nollfylld rityta. För komprimerade pixelformat (JPEG/PNG) krävs ettbuffer=-argument som innehåller den komprimerade byteströmmen.
Typisk infångnings-, bearbetnings- och visningsloop¶
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.
Indexering, längd, iteration och byte-liknande åtkomst¶
Indexering –
img[i]läser pixeli(linjärt, radvis).img[i] = valueskriver den. Pixlar i gråskala / Bayer är 8-bitars heltal, RGB565 / YUV422-pixlar är 16-bitars packade heltal, binära pixlar är 0 / 1. För JPEG / PNG-bilder är indexutrymmet den komprimerade byteströmmen, inte pixlar.Längd –
len(img)returnerar antalet pixlar för okomprimerade format eller byteantalet för komprimerade format.Iteration –
for px in img: ...går igenom pixelarrayen i samma ordning som indexering med[].Byte-liknande –
Imageexponerar läsbuffertprotokollet, så du kan skicka den direkt till allt som tar enbytes/bytearray(t.ex.uart.write(img),socket.send(img),hashlib.sha256(img)). Användbytearray()i stället för att få en läs/skriv-vy.
Hint-flaggor¶
Många Image-metoder accepterar ett hint-argument som är en logisk OR av följande flaggor:
image.AREA: Använd ytskalning vid nedskalning i stället för standardvärdet närmaste granne.
image.BILINEAR: Använd bilinjär skalning i stället för standardvärdet skalning med närmaste granne.
image.BICUBIC: Använd bikubisk skalning i stället för standardvärdet skalning med närmaste granne.
image.CENTER: Centrera bilden som ritas på displayen. Detta tillämpas efter skalning.
image.HMIRROR: Spegla bilden horisontellt.
image.VFLIP: Vänd bilden vertikalt.
image.TRANSPOSE: Transponera bilden (byt x/y).
image.EXTRACT_RGB_CHANNEL_FIRST: Utför rgb_channel-extraktion före skalning.
image.APPLY_COLOR_PALETTE_FIRST: Tillämpa färgpalett före skalning.
image.SCALE_ASPECT_KEEP: Skala bilden som ritas så att den får plats inuti displayen.
image.SCALE_ASPECT_EXPAND: Skala bilden som ritas så att den fyller displayen (resulterar i beskärning)
image.SCALE_ASPECT_IGNORE: Skala bilden som ritas så att den fyller displayen (resulterar i utsträckning).
image.ROTATE_90: Rotera bilden 90 grader (detta är bara VFLIP | TRANSPOSE).
image.ROTATE_180: Rotera bilden 180 grader (detta är bara HMIRROR | VFLIP).
image.ROTATE_270: Rotera bilden 270 grader (detta är bara HMIRROR | TRANSPOSE).
image.BLACK_BACKGROUND: Anta att bakgrundsbilden som ritas på är svart för att snabba upp blandningen. Stöds endast avImage.draw_image()ochImage.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)¶
Om
argär en sträng skapar detta ett nytt bildobjekt från en fil på sökvägenarg. Stöder inläsning av bmp/pgm/ppm/jpg/jpeg/png-bildfiler från disk. Omcopy_to_fbär sant kopieras bilden till bildbufferten i stället för att allokeras på heapen.Om
argär enndarrayskapar detta ett nytt bildobjekt frånndarray.ndarray-objekt med formen(w, h)behandlas som gråskalebilder,(w, h, 3)behandlas som RGB565-bilder. Endastndarraysav typen float32 stöds för närvarande. När du skapar en bild på detta sätt och skickar ettbuffer-argument används det för att lagra bilddatan i stället för att allokera utrymme på heapen. Omcopy_to_fbär sant kopieras bilden till bildbufferten i stället för att allokeras på heapen eller användabuffer.Om
argär ettintbetraktas det som bredden på en ny bild, och ettheight-värde och ettformat-värde måste följa för att skapa ett nytt tomt bildobjekt.formatkan vara vilket bildpixformat-värde som helst, somimage.GRAYSCALE. Bilden initieras till enbart nollor. Observera att ettbuffer-värde förväntas för komprimerade bildformat.bufferbetraktas som källan till bilddata när bilder skapas på detta sätt. Om det används medcopy_to_fbkopieras datan frånbuffertill bildbufferten. Om du vill skapa en JPEG-bild från ettbytes()- ellerbytearray()-objekt med JPEG kan du skickawidth,heightochimage.JPEGför JPEG-bilden tillsammans med att sättabuffertill JPEG-byteströmmen för att skapa en JPEG-bild.Bilder stöder ”[]”-notation. Gör
image[index] = 8/16-bit valueför att tilldela en bildpixel ellerimage[index]för att hämta en bildpixel, vilket blir antingen ett 8-bitars värde för gråskale-/bayerbilder eller ett 16-bitars värde för RGB565/YUV-bilder. Binära bilder returnerar ett 1-bitars värde.För JPEG-bilder låter ”[]” dig komma åt den komprimerade JPEG-bildbloben som en byte-array. Att läsa och skriva till dataarrayen är dock ogenomskinligt eftersom JPEG-bilder är komprimerade byteströmmar.
Bilder stöder även läsbuffertoperationer. Du kan skicka bilder till alla möjliga MicroPython-funktioner som om bilden vore ett byte-array-objekt. I synnerhet kan du, om du vill överföra en bild, bara skicka den till skrivfunktionerna för UART/SPI/I2C för att den ska överföras automatiskt.
Grundläggande metoder¶
- format() int¶
Returnerar
image.GRAYSCALEför gråskalebilder,image.RGB565för RGB565-bilder,image.BAYERför bilder med bayer-mönster ochimage.JPEGför JPEG-bilder.
- bytearray() bytearray¶
Returnerar ett
bytearray-objekt som pekar på bilddatan för läs/skriv-åtkomst på bytenivå.Anteckning
Image-objekt typomvandlas automatiskt till
bytes-objekt när de skickas till en MicroPython-drivrutin som kräver ettbytes-liknande objekt. Detta är skrivskyddad åtkomst. Anropabytearray()för att få läs/skriv-åtkomst.
- get_pixel(x: int, y: int, rgbtuple: bool | None = None) int | Tuple[int, int, int]¶
För gråskalebilder: Returnerar gråskalepixelvärdet på platsen (x, y). För RGB565-bilder: Returnerar RGB888-pixeltupeln (r, g, b) på platsen (x, y). För bilder med bayer-mönster: Returnerar pixelvärdet på platsen (x, y).
Returnerar None om
xelleryligger utanför bilden.xochykan antingen skickas var för sig eller som en tupel.rgbtupleom True gör att denna metod returnerar en RGB888-tupel. Annars returnerar denna metod heltalsvärdet för den underliggande pixeln. D.v.s. för RGB565-bilder returnerar denna metod ett RGB565-värde. Standardvärdet är True för RGB565-bilder och False annars.Stöds inte på komprimerade bilder.
Anteckning
Image.get_pixel()ochImage.set_pixel()är de enda metoderna som låter dig manipulera bilder med bayer-mönster. Bilder med bayer-mönster är bokstavliga bilder där pixlarna i bilden är R/G/R/G/osv. för jämna rader och G/B/G/B/osv. för udda rader. Varje pixel är 8 bitar. Om du anropar denna metod medrgbtuplesatt kommerImage.get_pixel()att debayera källbilden på den pixelplatsen och returnera en giltig RGB888-tupel för pixelplatsen.
- set_pixel(x: int, y: int, pixel: int | Tuple[int, int, int]) Image¶
För gråskalebilder: Sätter pixeln på platsen (x, y) till gråskalevärdet
pixel. För RGB565-bilder: Sätter pixeln på platsen (x, y) till RGB888-tupeln (r, g, b)pixel. För bilder med bayer-mönster: Sätter pixelvärdet på platsen (x, y) till värdetpixel.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.xochykan antingen skickas var för sig eller som en tupel.pixelkan antingen vara en RGB888-tupel (r, g, b) eller det underliggande pixelvärdet (d.v.s. ett RGB565-värde för RGB565-bilder eller ett 8-bitars värde för gråskalebilder).Stöds inte på komprimerade bilder.
Anteckning
Image.get_pixel()ochImage.set_pixel()är de enda metoderna som låter dig manipulera bilder med bayer-mönster. Bilder med bayer-mönster är bokstavliga bilder där pixlarna i bilden är R/G/R/G/osv. för jämna rader och G/B/G/B/osv. för udda rader. Varje pixel är 8 bitar. Om du anropar denna metod med en RGB888-tupel extraheras gråskalevärdet för den RGB888-tupeln och sätts på pixelplatsen.
Konverteringsmetoder¶
- to_ndarray(dtype: str, buffer: bytes | bytearray | memoryview | None = None) ndarray¶
Returnerar ett
ndarray-objekt skapat från bilden. Detta fungerar för närvarande endast för GRAYSCALE- eller RGB565-bilder.dtypekan varab,Bellerfför att skapa enndarraymed teckenförsedd 8-bitars, teckenlös 8-bitars eller 32-bitars flyttal. GRAYSCALE-bilder konverteras direkt till teckenlösa 8-bitarsndarray-objekt. För teckenförsedda 8-bitarsndarray-objekt mappas värdena (0:255) till (-127:128). För 32-bitars flyttals-ndarray-objekt mappas värdena till (0.0:255.0). RGB565-bilder konverteras till 3-kanaligandarray-objekt, och samma process som beskrivs ovan för GRAYSCALE-bilder tillämpas på varje kanal beroende pådtype. Observera attdtypeäven accepterar heltalsvärdena (t.ex.ord()) förb,Brespektivef.bufferom inteNoneär ettbytearray-objekt som ska användas som buffert förndarray. OmNoneallokeras en ny buffert på heapen för att lagrandarray-bilddatan. Du kan användabuffer-argumentet för att direkt allokerandarrayi en förallokerad buffert och därmed spara en heapallokering och en kopieringsoperation.Den returnerade
ndarrayhar formen(height, width)för GRAYSCALE-bilder och(height, width, 3)för RGB565-bilder.
- 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¶
Konverterar en bild till en bitmappsbild (1 bit per pixel).
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Anteckning
Bitmappsbilder är som gråskalebilder med bara två pixelvärden - 0 och 1. Dessutom är bitmappsbilder packade så att de bara lagrar 1 bit per pixel, vilket gör dem mycket små. OpenMV-bildbiblioteket tillåter att bitmappsbilder används på alla ställen där
sensor.GRAYSCALE- ochsensor.RGB565-bilder kan användas. Många operationer är dock meningslösa när de tillämpas på bitmappsbilder eftersom bitmappsbilder bara har 2 värden. OpenMV rekommenderar att använda bitmappsbilder sommask-värden i operationer och liknande eftersom de får plats på MicroPython-heapen ganska enkelt. Slutligen tolkas bitmappsbildens pixelvärden 0 och 1 som svart och vitt när de tillämpas påsensor.GRAYSCALE- ellersensor.RGB565-bilder. Biblioteket hanterar konverteringen automatiskt.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Konverterar en bild till en gråskalebild (8 bitar per pixel).
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Konverterar en bild till en RGB565-bild (16 bitar per pixel).
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Konverterar en bild till en RGB565-regnbågsbild (16 bitar per pixel).
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Konverterar en bild till en RGB565-ironbow-bild (16 bitar per pixel).
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Konverterar en bild till en RGB565-djupbild (16 bitar per pixel).
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan varaimage.PALETTE_DEPTHeller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Konverterar en bild till en RGB565 Dark Event Image (16 bitar per pixel).
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Konverterar en bild till en RGB565 Light Event Image (16 bitar per pixel).
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Konverterar en bild till en JPEG-bild.
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.qualitystyr komprimeringskvaliteten för jpeg-bilden. Värdet kan vara mellan 0 och 100.subsamplingkan vara:image.JPEG_SUBSAMPLING_AUTO: Använd den bästa subsamplingen för bilden baserat på kvaliteten.image.JPEG_SUBSAMPLING_444: Använd 4:4:4-subsampling.image.JPEG_SUBSAMPLING_422: Använd 4:2:2-subsampling.image.JPEG_SUBSAMPLING_420: Använd 4:2:0-subsampling.
Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Konverterar en bild till en PNG-bild.
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Konverterar en bild till en JPEG-bild.
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.qualitystyr komprimeringskvaliteten för jpeg-bilden. Värdet kan vara mellan 0 och 100.subsamplingkan vara:image.JPEG_SUBSAMPLING_AUTO: Använd den bästa subsamplingen för bilden baserat på kvaliteten.image.JPEG_SUBSAMPLING_444: Använd 4:4:4-subsampling.image.JPEG_SUBSAMPLING_422: Använd 4:2:2-subsampling.image.JPEG_SUBSAMPLING_420: Använd 4:2:0-subsampling.
Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Anteckning
Image.compressär ett alias förImage.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¶
Skapar en djupkopia av bildobjektet.
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copy_to_fbom True läses bilden in direkt i bildbufferten. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Modifierar en bild på plats utan att ändra den underliggande bildtypen.
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Modifierar en bild på plats utan att ändra den underliggande bildtypen.
x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (exklusiveimage.BLACK_BACKGROUNDsom inte stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.copyom True skapas en djupkopia på heapen av bilden som har konverterats i stället för att konvertera originalbilden på plats.copy_to_fbom True läses bilden in direkt i bildbufferten.copy_to_fbhar företräde framförcopy. Detta har ingen särskild effekt om bilden redan finns i bildbufferten.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Anteckning
Image.scaleär ett alias förImage.crop.
- save(path: str, roi: Tuple[int, int, int, int] | None = None, quality: int = 50) Image¶
Sparar en kopia av bilden i filsystemet på
path.Stöder bmp/pgm/ppm/jpg/jpeg-bildfiler. Observera att du inte kan spara jpeg-komprimerade bilder i ett okomprimerat format.
roiär intresseområdets rektangel (x, y, w, h) att spara från. Om den inte anges är den lika med bildrektangeln, vilket kopierar hela bilden. Detta argument är inte tillämpligt för JPEG-bilder.qualityär jpeg-komprimeringskvaliteten som ska användas för att spara bilden i jpeg-format om bilden inte redan är komprimerad (0-100) (int).Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
Ritmetoder¶
- clear(mask: Image | None = None) Image¶
Sätter alla pixlar i bilden till noll (mycket snabbt).
maskär en annan bild som ska användas som en mask på pixelnivå för operationen. Masken bör vara en bild med bara svarta eller vita pixlar och bör ha samma storlek som bilden som operationen utförs på. Endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder.
- draw_line(x0: int, y0: int, x1: int, y1: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1) Image¶
Ritar en linje från (x0, y0) till (x1, y1) på bilden. Du kan antingen skicka x0, y0, x1, y1 var för sig eller som en tupel (x0, y0, x1, y1).
colorär en RGB888-tupel för gråskale- eller RGB565-bilder. Standardvärdet är vitt. Du kan dock även skicka det underliggande pixelvärdet (0-255) för gråskalebilder eller ett RGB565-värde för RGB565-bilder.thicknessstyr hur tjock linjen är i pixlar.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- 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¶
Ritar en rektangel på bilden. Du kan antingen skicka x, y, w, h var för sig eller som en tupel (x, y, w, h).
colorär en RGB888-tupel för gråskale- eller RGB565-bilder. Standardvärdet är vitt. Du kan dock även skicka det underliggande pixelvärdet (0-255) för gråskalebilder eller ett RGB565-värde för RGB565-bilder.thicknessstyr hur tjocka linjerna är i pixlar.Skicka
fillsatt till True för att fylla rektangeln.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- draw_circle(x: int, y: int, radius: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1, fill: bool = False) Image¶
Ritar en cirkel på bilden. Du kan antingen skicka x, y, radius var för sig eller som en tupel (x, y, radius).
colorär en RGB888-tupel för gråskale- eller RGB565-bilder. Standardvärdet är vitt. Du kan dock även skicka det underliggande pixelvärdet (0-255) för gråskalebilder eller ett RGB565-värde för RGB565-bilder.thicknessstyr hur tjocka kanterna är i pixlar.Skicka
fillsatt till True för att fylla cirkeln.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- 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¶
Ritar en ellips på bilden. Du kan antingen skicka cx, cy, rx, ry och rotationen (i grader) var för sig eller som en tupel (cx, yc, rx, ry, rotation).
colorär en RGB888-tupel för gråskale- eller RGB565-bilder. Standardvärdet är vitt. Du kan dock även skicka det underliggande pixelvärdet (0-255) för gråskalebilder eller ett RGB565-värde för RGB565-bilder.thicknessstyr hur tjocka kanterna är i pixlar.Skicka
fillsatt till True för att fylla ellipsen.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- 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¶
Ritar 8x10-text med start på platsen (x, y) i bilden. Du kan antingen skicka x, y var för sig eller som en tupel (x, y).
textär en sträng som ska skrivas till bilden. Radslut med\n,\roch\r\nflyttar markören till nästa rad.colorär en RGB888-tupel för gråskale- eller RGB565-bilder. Standardvärdet är vitt. Du kan dock även skicka det underliggande pixelvärdet (0-255) för gråskalebilder eller ett RGB565-värde för RGB565-bilder.scalekan ökas för att öka/minska storleken på texten på bilden. Du kan skicka heltals- eller flyttalsvärden större än 0.x_spacinglåter dig lägga till (om positivt) eller dra ifrån (om negativt) x-pixlar mellan tecken.y_spacinglåter dig lägga till (om positivt) eller dra ifrån (om negativt) y-pixlar mellan tecken (för flerradig text).mono_spaceär som standard True vilket tvingar texten att vara fast åtskild. För stora textskalor ser detta hemskt ut. Sätt till False för att få teckenavstånd med icke-fast bredd, vilket ser MYCKET bättre ut.char_rotationkan vara 0, 90, 180, 270 för att rotera varje tecken i strängen med detta belopp.char_hmirrorom True speglas alla tecken i strängen horisontellt.char_vflipom True vänds alla tecken i strängen vertikalt.string_rotationkan vara 0, 90, 180, 270 för att rotera strängen med detta belopp.string_hmirrorom True speglas strängen horisontellt.string_vflipom True vänds strängen vertikalt.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- draw_cross(x: int, y: int, color: int | Tuple[int, int, int] | None = None, size: int = 5, thickness: int = 1) Image¶
Ritar ett kors på platsen x, y. Du kan antingen skicka x, y var för sig eller som en tupel (x, y).
colorär en RGB888-tupel för gråskale- eller RGB565-bilder. Standardvärdet är vitt. Du kan dock även skicka det underliggande pixelvärdet (0-255) för gråskalebilder eller ett RGB565-värde för RGB565-bilder.sizestyr hur långt korsets linjer sträcker sig.thicknessstyr hur tjocka kanterna är i pixlar.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- draw_arrow(x0: int, y0: int, x1: int, y1: int, color: int | Tuple[int, int, int] | None = None, thickness: int = 1) Image¶
Ritar en pil från (x0, y0) till (x1, y1) på bilden. Du kan antingen skicka x0, y0, x1, y1 var för sig eller som en tupel (x0, y0, x1, y1).
colorär en RGB888-tupel för gråskale- eller RGB565-bilder. Standardvärdet är vitt. Du kan dock även skicka det underliggande pixelvärdet (0-255) för gråskalebilder eller ett RGB565-värde för RGB565-bilder.thicknessstyr hur tjock linjen är i pixlar.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- 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¶
Ritar ett detekteringsresultat på bilden.
detectionär en 6-tupel(rx, ry, rw, rh, cx, cy)som beskriver en begränsande rektangel och ett tyngdpunktscentrum (returneras vanligtvis av NN- eller färgspårningskod).color1är rektangelfärgen ochcolor2är färgen på tyngdpunktskorset.sizeär storleken på tyngdpunktskorset,thicknessstyr konturbredden ochfillfyller rektangeln.labelom den anges ritas nära rektangeln, förskjuten medlabel_offset(x, y).Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- 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¶
Ritar linjekanter mellan en hörnlista som returneras av metoder som
blob.corners. Corners är en tupel med fyra värden av tvåvärdiga x/y-tupler. T.ex. [(x1,y1),(x2,y2),(x3,y3),(x4,y4)].colorär en RGB888-tupel för gråskale- eller RGB565-bilder. Standardvärdet är vitt. Du kan dock även skicka det underliggande pixelvärdet (0-255) för gråskalebilder eller ett RGB565-värde för RGB565-bilder.sizeom större än 0 gör att hörnen ritas som cirklar med radiensize.thicknessstyr hur tjock linjen är i pixlar.Skicka
fillsatt till True för att fylla hörncirklarna om de ritas.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- 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¶
Ritar en
imagevars övre vänstra hörn börjar på platsen x, y. Du kan antingen skicka x, y var för sig eller som en tupel (x, y). Denna metod hanterar automatiskt rendering av den skickade bilden till rätt pixelformat för destinationsbilden samtidigt som den hanterar beskärning sömlöst.Du kan även skicka en sökväg i stället för ett bildobjekt till denna metod för att automatiskt läsa in bilden från disk och använda den i ett steg. T.ex.
draw_image("test.jpg").x_scalestyr hur mycket den visade bilden skalas i x-riktningen (float). Om detta värde är negativt vänds bilden horisontellt. Observera att omy_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (float). Om detta värde är negativt vänds bilden vertikalt. Observera att omx_scaleinte anges kommer det att matchax_scaleför att behålla bildförhållandet.roiär intresseområdets rektangeltupel (x, y, w, h) i källbilden som ska ritas. Detta låter dig extrahera bara pixlarna i ROI för att skala och rita på destinationsbilden.rgb_channelär RGB-kanalen (0=R, G=1, B=2) som ska extraheras från en RGB565-bild (om den skickas) och renderas på destinationsbilden. Om du till exempel skickarrgb_channel=1extraheras den gröna kanalen i RGB565-källbilden och ritas i gråskala på destinationsbilden.alphastyr hur mycket av källbilden som blandas in i destinationsbilden. Värdet 255 ritar en ogenomskinlig källbild medan ett värde lägre än 255 ger en blandning mellan käll- och destinationsbilden. 0 resulterar i ingen ändring av destinationsbilden.color_paletteom inteNonekan vara en enum för färgpalett eller en RGB565-bild på totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet för vad källbilden än är. Detta tillämpas efterrgb_channel-extraktion om sådan används.alpha_paletteom inteNonekan vara en GRAYSCALE-bild på totalt 256 pixlar att använda som en alfapalett som moduleraralpha-värdet för källbilden som ritas på pixelnivå, vilket låter dig exakt styra alfavärdet för pixlar baserat på deras gråskalevärde. Ett pixelvärde på 255 i alfauppslagstabellen är ogenomskinligt, medan allt lägre än 255 blir mer genomskinligt ner till 0. Detta tillämpas efterrgb_channel-extraktion om sådan används.hintär en logisk OR av flaggorna som listas i Hint-flaggor (inklusiveimage.BLACK_BACKGROUNDsom stöds här).transformär en 3x3ndarraysom används för att utföra en perspektivtransformation på bilden. Stöds för närvarande endast på OpenMV Cam N6 eftersom den har en GPU som kan göra detta i hårdvara.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.
- 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¶
Ritar nyckelpunkterna i ett keypoints-objekt på bilden. Du kan även skicka en lista med trevärdiga tupler som innehåller (x, y, rotation_angle_in_degrees) för att återanvända denna metod för att rita nyckelpunktsglyfer, vilka är en cirkel med en linje som pekar i en viss riktning.
colorär en RGB888-tupel för gråskale- eller RGB565-bilder. Standardvärdet är vitt. Du kan dock även skicka det underliggande pixelvärdet (0-255) för gråskalebilder eller ett RGB565-värde för RGB565-bilder.sizestyr hur stora nyckelpunkterna är.thicknessstyr hur tjock linjen är i pixlar.Skicka
fillsatt till True för att fylla nyckelpunkterna.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- 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¶
Flödesfyller en region i bilden med start från platsen x, y. Du kan antingen skicka x, y var för sig eller som en tupel (x, y).
seed_thresholdstyr hur olik någon pixel i fyllningsområdet får vara från den ursprungliga startpixeln.floating_thresholdstyr hur olik någon pixel i fyllningsområdet får vara från någon grannpixel.colorär en RGB888-tupel för gråskale- eller RGB565-bilder. Standardvärdet är vitt. Du kan dock även skicka det underliggande pixelvärdet (0-255) för gråskalebilder eller ett RGB565-värde för RGB565-bilder.Skicka
invertsom True för att färga om allt utanför det flödesfyllda sammanhängande området.Skicka
clear_backgroundsom True för att nollställa resten av pixlarna som flödesfyllningen inte färgade om.maskär en annan bild som ska användas som en mask på pixelnivå för operationen. Masken bör vara en bild med bara svarta eller vita pixlar och bör ha samma storlek som bilden som operationen utförs på. Endast pixlar som är satta i masken utvärderas vid flödesfyllning.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
Denna metod är inte tillgänglig på OpenMV Cam M4.
- draw_event_histogram(array: ndarray, clear: bool = True, brightness: int = 128, contrast: int = 16) Image¶
Rastrerar en händelse-ndarray (som fylld av
csi.IOCTL_GENX320_READ_EVENTS) på enImageför visualisering. Bildbufferten måste vara en 320x320 GRAYSCALE-bild.För varje
csi.PIX_ON_EVENT-rad får händelsens pixel+contrastadderat; för varjecsi.PIX_OFF_EVENT-rad får pixeln-contrast. Triggerhändelser ignoreras. Pixelvärden klampas till 0-255.clearom True återställs bildbufferten tillbrightnessföre ritning — varje bildruta blir en ny rendering med enbart händelser. Sätt till False för att ackumulera händelser över flera anrop (användbart för rörelsespår med lång exponering).brightnessstyr den mellangrå baslinjen som bufferten återställs till närclearär True. Standardvärdet 128 placerar ON-händelser i den ljusa änden och OFF-händelser i den mörka änden med lika stort spelrum.contraststyr hur mycket varje händelse förskjuter sin pixel — högre värden gör att händelser sticker ut, på bekostnad av att snabbt mättas när många händelser landar på samma pixel.
Maskeringsmetoder¶
- mask_rectangle(x: int, y: int, w: int, h: int) Image¶
Nollställer en rektangulär del av bilden. Om inga argument anges nollställer denna metod bildens centrum.
Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- mask_circle(x: int, y: int, radius: int) Image¶
Nollställer en cirkulär del av bilden. Om inga argument anges nollställer denna metod bildens centrum.
Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- mask_ellipse(x: int, y: int, radius_x: int, radius_y: int, rotation_angle_in_degrees: int) Image¶
Nollställer en ellipsformad del av bilden. Om inga argument anges nollställer denna metod bildens centrum.
Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
Binära metoder¶
- binary(thresholds: List[Tuple[int, int]], invert: bool = False, zero: bool = False, mask: Image | None = None, to_bitmap: bool = False, copy: bool = False) Image¶
Sätter alla pixlar i bilden till svart eller vitt beroende på om varje pixel ligger inom en av tröskelvärdestuplerna i
thresholds.thresholdsär en lista med(lo, hi)-tupler för gråskalebilder, eller(l_lo, l_hi, a_lo, a_hi, b_lo, b_hi)-tupler för RGB565-bilder. Omkastade min/max-värden korrigeras automatiskt; saknade komponenter får som standard maximalt intervall.invertinverterar tröskelmatchningen.zeroom True nollställs trösklade pixlar och övriga lämnas orörda.maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.to_bitmapom True konverteras bilddatan till en bitmapp med 1 bit per pixel. För mycket små bilder kan detta krävacopy=True.copyom True returneras en ny bild på heapen i stället för att modifiera källbilden.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- invert() Image¶
Inverterar alla pixelvärden i bilden (varje pixel blir
255 - pixelför 8-bitarskanaler).Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- b_and(image: Image, mask: Image | None = None) Image¶
Utför logisk AND mellan denna bild och en annan bild.
imagekan vara ett bildobjekt, en sökväg till en okomprimerad bildfil (bmp/pgm/ppm) eller ett skalärt värde (RGB888-tupel eller underliggande pixelvärde).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- b_nand(image: Image, mask: Image | None = None) Image¶
Utför logisk NAND mellan denna bild och en annan bild.
imagekan vara ett bildobjekt, en sökväg till en okomprimerad bildfil (bmp/pgm/ppm) eller ett skalärt värde (RGB888-tupel eller underliggande pixelvärde).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- b_or(image: Image, mask: Image | None = None) Image¶
Utför logisk OR mellan denna bild och en annan bild.
imagekan vara ett bildobjekt, en sökväg till en okomprimerad bildfil (bmp/pgm/ppm) eller ett skalärt värde (RGB888-tupel eller underliggande pixelvärde).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- b_nor(image: Image, mask: Image | None = None) Image¶
Utför logisk NOR mellan denna bild och en annan bild.
imagekan vara ett bildobjekt, en sökväg till en okomprimerad bildfil (bmp/pgm/ppm) eller ett skalärt värde (RGB888-tupel eller underliggande pixelvärde).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- b_xor(image: Image, mask: Image | None = None) Image¶
Utför logisk XOR mellan denna bild och en annan bild.
imagekan vara ett bildobjekt, en sökväg till en okomprimerad bildfil (bmp/pgm/ppm) eller ett skalärt värde (RGB888-tupel eller underliggande pixelvärde).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- b_xnor(image: Image, mask: Image | None = None) Image¶
Utför logisk XNOR mellan denna bild och en annan bild.
imagekan vara ett bildobjekt, en sökväg till en okomprimerad bildfil (bmp/pgm/ppm) eller ett skalärt värde (RGB888-tupel eller underliggande pixelvärde).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
ISP-metoder¶
- awb(max: bool = False) Image¶
Utför automatisk vitbalans på bilden med grå-världen-algoritmen. Arbetar på RAW Bayer- eller RGB565-bilder. Har ingen effekt på binära/gråskalebilder.
maxom True används vit-fläck-algoritmen i stället.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade eller yuv-bilder.
- ccm(matrix: List[List[float]]) Image¶
Multiplicerar den skickade flyttals-färgkorrigeringsmatrisen med bilden. Matriser kan vara 3x3 eller 3x4 (med offsetkolumn), i nästlad listform eller platt listform:
[[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]
Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- gamma(gamma: float = 1.0, contrast: float = 1.0, brightness: float = 0.0) Image¶
Justerar bildens gamma, kontrast och ljusstyrka.
gammatillämparpow(pixel, 1/gamma)efter normalisering. Värden större än 1.0 gör ljusare; mindre än 1.0 gör mörkare.contrasttillämparpixel * contrastefter normalisering.brightnesstillämparpixel + brightnessefter normalisering.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade eller bayer-/yuv-bilder.
Matematiska metoder¶
- negate() Image¶
Alias för
Image.invert.
- replace(image: Image | None = None, **kwargs) Image¶
Alias för
Image.draw_image(). Ersätter denna bild medimage(eller transformerar denna bild på plats omimageutelämnas) med standardnyckelordsargumenten fördraw_image. Argumentettransformär en 3x3ndarraysom beskriver en perspektivtransformation (stöds endast på OpenMV-kameror med ULAB aktiverat).
- assign(image: Image | None = None, **kwargs) Image¶
Alias för
Image.replace().
- set(image: Image | None = None, **kwargs) Image¶
Alias för
Image.replace().
- add(image: Image, mask: Image | None = None) Image¶
Adderar en bild pixelvis till denna.
imagekan vara ett bildobjekt, en sökväg till en okomprimerad bildfil (bmp/pgm/ppm) eller ett skalärt värde (RGB888-tupel eller underliggande pixelvärde).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- sub(image: Image, mask: Image | None = None) Image¶
Subtraherar
imagepixelvis från denna bild (self - image).imagekan antingen vara ett bildobjekt, en sökväg till en okomprimerad bildfil (bmp/pgm/ppm) eller ett skalärt värde (RGB888-tupel eller underliggande pixelvärde).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Denna metod accepterar även hela uppsättningen av nyckelordsargument för
Image.draw_image()(x,y,x_scale,y_scale,roi,rgb_channel,alpha,color_palette,alpha_palette,hint,transform).Stöds inte på komprimerade bilder eller bayerbilder.
- rsub(image: Image, mask: Image | None = None) Image¶
Omvänd subtraktion: ersätter denna bild med
image - selfpixelvis. I övrigt identisk medImage.sub().
- min(image: Image, mask: Image | None = None) Image¶
Returnerar den minsta bilden av två bilder pixelvis.
imagekan vara ett bildobjekt, en sökväg till en okomprimerad bildfil (bmp/pgm/ppm) eller ett skalärt värde (RGB888-tupel eller underliggande pixelvärde).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- max(image: Image, mask: Image | None = None) Image¶
Returnerar den största bilden av två bilder pixelvis.
imagekan vara ett bildobjekt, en sökväg till en okomprimerad bildfil (bmp/pgm/ppm) eller ett skalärt värde (RGB888-tupel eller underliggande pixelvärde).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- difference(image: Image, mask: Image | None = None) Image¶
Returnerar bilden med den absoluta differensen mellan två bilder (t.ex. ||a-b||).
imagekan vara ett bildobjekt, en sökväg till en okomprimerad bildfil (bmp/pgm/ppm) eller ett skalärt värde (RGB888-tupel eller underliggande pixelvärde).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- blend(image: Image, x: int = 0, y: int = 0, alpha: int = 128, mask: Image | None = None, **kwargs) Image¶
Alias för
Image.draw_image(). Alfablandarimagein i denna bild.alphaär ett heltal 0-256; värden närmare 256 gynnar källbilden. Accepterar alla nyckelordsargument förImage.draw_image().
- histeq(adaptive: bool = False, clip_limit: float = -1, mask: Image | None = None) Image¶
Kör histogramutjämning på bilden för att normalisera kontrast och ljusstyrka.
adaptiveom True körs adaptiv histogramutjämning (långsammare men generellt bättre).clip_limitbegränsar kontrasten i den adaptiva varianten (ett litet värde som 10 ger bra CLAHE-resultat).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
Filtreringsmetoder¶
- erode(size: int, threshold: int | None = None, mask: Image | None = None) Image¶
Tar bort pixlar från kanterna på segmenterade områden. Konvolverar en
((size*2)+1)x((size*2)+1)-kärna över bilden och rensar mittpixeln om fler änthresholdgrannar är rensade (fungerar som standard-erodering omthresholdär None).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- dilate(size: int, threshold: int | None = None, mask: Image | None = None) Image¶
Lägger till pixlar på kanterna av segmenterade områden. Konvolverar en
((size*2)+1)x((size*2)+1)-kärna över bilden och sätter mittpixeln om fler änthresholdgrannar är satta (fungerar som standard-dilatering omthresholdär None).maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- open(size: int, threshold: int | None = None, mask: Image | None = None) Image¶
Utför erodering och sedan dilatering. Se
Image.erode()ochImage.dilate().maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- close(size: int, threshold: int | None = None, mask: Image | None = None) Image¶
Utför dilatering och sedan erodering. Se
Image.dilate()ochImage.erode().maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- top_hat(size: int, threshold: int | None = None, mask: Image | None = None) Image¶
Returnerar bilddifferensen mellan bilden och den
Image.open()-ade bilden.maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- black_hat(size: int, threshold: int | None = None, mask: Image | None = None) Image¶
Returnerar bilddifferensen mellan bilden och den
Image.close()-ade bilden.maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- mean(size: int, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image¶
Standardfilter för medelvärdesoskärpa med ett boxfilter.
sizeär kärnstorleken. Använd 1 (3x3-kärna), 2 (5x5-kärna) o.s.v.thresholdom True trösklas filterutdatan adaptivt till en binär bild.offsetförskjuter binariseringen (negativt gör fler pixlar vita, positivt gör färre).invertinverterar den binära utdatan.maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- 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¶
Kör ett percentilfilter på bilden (median som standard).
sizeär kärnstorleken. Använd 1 (3x3-kärna), 2 (5x5-kärna) o.s.v.percentileär percentilen som ska väljas från varje kärna (0 = min, 0.5 = median, 1.0 = max). Standardvärdet är 0.5.thresholdom True trösklas filterutdatan adaptivt till en binär bild.offsetförskjuter binariseringen (negativt gör fler pixlar vita, positivt gör färre).invertinverterar den binära utdatan.maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- mode(size: int, threshold: bool | None = False, offset: int | None = 0, invert: bool | None = False, mask: Image | None = None) Image¶
Ersätter varje pixel med typvärdet (mode) för dess grannar. Kan ge artefakter på kanterna i RGB-bilder på grund av den icke-linjära operationen.
sizeär kärnstorleken. Använd 1 (3x3-kärna), 2 (5x5-kärna) o.s.v.thresholdom True trösklas filterutdatan adaptivt till en binär bild.offsetförskjuter binariseringen (negativt gör fler pixlar vita, positivt gör färre).invertinverterar den binära utdatan.maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- 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¶
Kör mittpunktsfiltret på bilden. Detta filter hittar mittpunkten ((max-min)/2) i varje pixels grannskap i bilden.
sizeär kärnstorleken. Använd 1 (3x3-kärna), 2 (5x5-kärna) o.s.v.biasstyr min/max-blandningen. 0 för enbart min-filtrering, 1.0 för enbart max-filtrering. Genom att användabiaskan du min/max-filtrera bilden.thresholdom True trösklas filterutdatan adaptivt till en binär bild.offsetförskjuter binariseringen (negativt gör fler pixlar vita, positivt gör färre).invertinverterar den binära utdatan.maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- 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¶
Konvolverar bilden med en godtycklig filterkärna.
sizestyr kärnstorleken, som måste vara((size*2)+1)x((size*2)+1)element.kernelär kärnan att konvolvera med, som en platt 1D-lista/tupel med((size*2)+1)*((size*2)+1)element, eller som en 2D-lista/tupel med((size*2)+1)rader om((size*2)+1)element.mulär en multiplikativ kontrastskala (standard 1.0).addär en additiv ljusstyrkeoffset (standard 0.0).thresholdom True trösklas filterutdatan adaptivt till en binär bild.offsetförskjuter binariseringen (negativt gör fler pixlar vita, positivt gör färre).invertinverterar den binära utdatan.maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- 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¶
Konvolverar bilden med en utjämnande gauss-kärna.
sizeär kärnstorleken. Använd 1 (3x3-kärna), 2 (5x5-kärna) o.s.v.unsharpom True utförs en oskarp maskering (skärper kanter) i stället för en vanlig gauss.mulär en multiplikativ kontrastskala (standard 1.0).addär en additiv ljusstyrkeoffset (standard 0.0).thresholdom True trösklas filterutdatan adaptivt till en binär bild.offsetförskjuter binariseringen (negativt gör fler pixlar vita, positivt gör färre).invertinverterar den binära utdatan.maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- 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¶
Konvolverar bilden med en kantdetekterande laplace-kärna.
sizeär kärnstorleken. Använd 1 (3x3-kärna), 2 (5x5-kärna) o.s.v.sharpenom True skärps bilden i stället för att mata ut det råa otrösklade kantgensvaret.mulär en multiplikativ kontrastskala (standard 1.0).addär en additiv ljusstyrkeoffset (standard 0.0).thresholdom True trösklas filterutdatan adaptivt till en binär bild.offsetförskjuter binariseringen (negativt gör fler pixlar vita, positivt gör färre).invertinverterar den binära utdatan.maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
- 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¶
Konvolverar bilden med ett bilateralt filter (kantbevarande utjämning).
sizeär kärnstorleken. Använd 1 (3x3-kärna), 2 (5x5-kärna) o.s.v.color_sigmastyr toleransen för färgmatchning; större värden ger mer färgoskärpa.space_sigmastyr rumslig oskärpa; större värden ger mer pixeloskärpa.thresholdom True trösklas filterutdatan adaptivt till en binär bild.offsetförskjuter binariseringen (negativt gör fler pixlar vita, positivt gör färre).invertinverterar den binära utdatan.maskär en binär bild som används som en mask på pixelnivå; endast pixlar som är satta i masken modifieras.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayer-/yuv-bilder.
Geometriska metoder¶
- linpolar(reverse: bool = False, *, x: int | None = None, y: int | None = None) Image¶
Omprojicerar en bild från kartesiska koordinater till linjära polära koordinater.
Sätt
reverse=Trueför att omprojicera i motsatt riktning.xochyanger transformens centrumkoordinat i bildpixlar. OmxärNone(standard) sätts den till halva bildbredden; på samma sätt fårysom standard halva bildhöjden.Linjär polär omprojektion förvandlar rotation av en bild till x-förflyttning.
Stöds inte på komprimerade bilder eller bayerbilder.
Denna metod är inte tillgänglig på OpenMV Cam M4.
- logpolar(reverse: bool = False, *, x: int | None = None, y: int | None = None) Image¶
Omprojicerar en bild från kartesiska koordinater till logaritmiska polära koordinater.
Sätt
reverse=Trueför att omprojicera i motsatt riktning.xochyanger transformens centrumkoordinat i bildpixlar. OmxärNone(standard) sätts den till halva bildbredden; på samma sätt fårysom standard halva bildhöjden.Logaritmisk polär omprojektion förvandlar rotation av en bild till x-förflyttning och skalning/zoomning till y-förflyttning.
Stöds inte på komprimerade bilder eller bayerbilder.
Denna metod är inte tillgänglig på OpenMV Cam M4.
- lens_corr(strength: float = 1.8, zoom: float = 1.0, x_corr: float = 0.0, y_corr: float = 0.0) Image¶
Utför linskorrigering för att av-fiskögea bilden på grund av linsförvrängningen.
strengthär ett flyttal som definierar hur mycket bilden ska av-fiskögeas. Prova 1.8 som standard och öka eller minska därifrån tills bilden ser bra ut.zoomär hur mycket som ska zoomas in på bilden. 1.0 som standard.x_corrflyttals-pixeloffset från centrum. Kan vara negativ eller positiv.y_corrflyttals-pixeloffset från centrum. Kan vara negativ eller positiv.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
- 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¶
Korrigerar perspektivproblem i bilden genom att göra en 3D-rotation av bildbufferten.
x_rotationär antalet grader att rotera bilden i bildbufferten kring x-axeln (d.v.s. detta snurrar bilden upp och ner).y_rotationär antalet grader att rotera bilden i bildbufferten kring y-axeln (d.v.s. detta snurrar bilden åt vänster och höger).z_rotationär antalet grader att rotera bilden i bildbufferten kring z-axeln (d.v.s. detta snurrar bilden på plats).x_translationär antalet enheter att flytta bilden åt vänster eller höger efter rotation. Eftersom denna förflyttning tillämpas i 3D-rymden är enheterna inte pixlar…y_translationär antalet enheter att flytta bilden uppåt eller nedåt efter rotation. Eftersom denna förflyttning tillämpas i 3D-rymden är enheterna inte pixlar…zoomär hur mycket som ska zoomas in på bilden. 1.0 som standard.fovär synfältet som används för den interna 2D->3D-projektionen. Närfovnärmar sig 0 placeras bilden i oändligheten; när det närmar sig 180 placeras bilden inuti vyporten.cornersär en lista med fyra (x, y)-tupler som används för att bygga en 4-punkts homografi som mappar hörnen till (0, 0), (image_width-1, 0), (image_width-1, image_height-1) och (0, image_height-1) innan 3D-rotationen tillämpas. Användbart för fågelperspektivtransformer.Returnerar bildobjektet så att du kan anropa en annan metod med
.-notation.Stöds inte på komprimerade bilder eller bayerbilder.
Denna metod är inte tillgänglig på OpenMV Cam M4.
Get-metoder¶
- 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¶
Beräknar likheten mellan två bilder med hjälp av Structural Similarity Index (SSIM). SSIM sträcker sig från -1 (motsatt) till 1 (identisk). Returnerar ett
image.similarity-objekt.imageär bilden att jämföra med (ett bildobjekt eller en sökvägssträng, t.ex."test.jpg").x,y,x_scale,y_scale,roi,rgb_channel,alpha,color_palette,alpha_palette,hintochtransformaccepterar samma värden somImage.draw_image().dssimom True returneras Structural Dissimilarity Index (DSSIM) i stället, där 0 betyder identisk och 1 betyder helt olika.
- 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¶
Beräknar det normaliserade histogrammet på alla färgkanaler för en
roioch returnerar ettimage.histogram-objekt. Finns även tillgänglig somImage.get_hist()ellerImage.histogram().thresholdsär en lista med(lo, hi)-tupler för gråskalebilder, eller(l_lo, l_hi, a_lo, a_hi, b_lo, b_hi)-tupler för RGB565-bilder. Om den skickas beräknas histogrammet endast över pixlar inom tröskelvärdena.invertinverterar tröskelmatchningen.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.bins(gråskala) ellerl_bins/a_bins/b_bins(RGB565) anger antalet histogramfack per kanal. Måste vara större än 2. Standardvärdet är det maximala antalet fack per kanal.differencekan sättas till ett bildobjekt för att arbeta på differensen mellan den aktuella bilden och den bilden utan en extra buffert.Stöds inte på komprimerade bilder eller bayerbilder.
- 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¶
Beräknar medelvärde, median, typvärde, standardavvikelse, min, max, nedre kvartil och övre kvartil för alla färgkanaler för en
roioch returnerar ettimage.statistics-objekt. Finns även tillgänglig somImage.get_stats()ellerImage.statistics().thresholdsär en lista med(lo, hi)-tupler för gråskalebilder, eller(l_lo, l_hi, a_lo, a_hi, b_lo, b_hi)-tupler för RGB565-bilder. Om den skickas beräknas statistiken endast över pixlar inom tröskelvärdena.invertinverterar tröskelmatchningen.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.bins(gråskala) ellerl_bins/a_bins/b_bins(RGB565) anger antalet histogramfack per kanal. Måste vara större än 2. Standardvärdet är det maximala antalet fack per kanal.differencekan sättas till ett bildobjekt för att arbeta på differensen mellan den aktuella bilden och den bilden utan en extra buffert.Stöds inte på komprimerade bilder eller bayerbilder.
- 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¶
Beräknar en linjär regression (Theil-Sen) på alla trösklade pixlar i bilden. Returnerar ett
image.line-objekt, eller None om ingen linje hittades.thresholdsär en lista med(lo, hi)-tupler för gråskalebilder, eller(l_lo, l_hi, a_lo, a_hi, b_lo, b_hi)-tupler för RGB565-bilder.invertinverterar tröskelmatchningen.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.x_strideochy_stridestyr hur många pixlar som hoppas över under utvärderingen av bilden.area_thresholdminsta begränsningsrutearea; mindre resultat returnerar None.pixels_thresholdminsta antal trösklade pixlar; mindre resultat returnerar None.target_sizeär en(w, h)-tupel. ROI:n ytskalas ned för att få plats inom denna storlek innan O(N^2)-algoritmen körs. Standardvärdet är(80, 60).Stöds inte på komprimerade bilder eller bayerbilder.
Detekteringsmetoder¶
- 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]¶
Hittar alla blobbar (sammanhängande pixelregioner som klarar ett tröskeltest) i bilden och returnerar en lista med
image.blob-objekt.thresholdsär en lista med(lo, hi)-tupler för gråskalebilder, eller(l_lo, l_hi, a_lo, a_hi, b_lo, b_hi)-tupler för RGB565-bilder (LAB-kanaler). Upp till 32 tupler kan skickas. Omkastade min/max-värden korrigeras automatiskt; saknade komponenter får som standard maximalt intervall.invertinverterar tröskelmatchningen.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.x_strideochy_stridestyr hur många pixlar som hoppas över vid sökning efter en blob. Öka om blobbarna är kända för att vara stora.area_thresholdminsta begränsningsrutearea; mindre blobbar filtreras bort.pixels_thresholdminsta antal trösklade pixlar; mindre blobbar filtreras bort.mergeom True slås blobbar vars begränsningsrektanglar överlappar samman.marginförstorar/förminskar begränsningsrektanglarna som används för överlappning. Sammanslagna blobbar utför OR mellan sinacode-bitvektorer (en bit per tröskelvärde).threshold_cbanropas per blob efter tröskling; returnera True för att behålla, False för att filtrera bort.merge_cbanropas per par av blobbar som ska slås samman; returnera True för att tillåta sammanslagningen, False för att förhindra den.x_hist_bins_maxom skild från noll fylls varje blob med en x_histogram-projektion med så här många fack.y_hist_bins_maxom skild från noll fylls varje blob med en y_histogram-projektion med så här många fack.Stöds inte på komprimerade bilder eller bayerbilder.
- 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]¶
Hittar alla oändliga linjer i bilden med hjälp av hough-transformen. Returnerar en lista med
image.line-objekt.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.x_strideochy_stridestyr hur många pixlar som hoppas över under hough-transformen.thresholdminsta linjemagnitud (summan av sobel-magnituder längs linjen); linjer under detta filtreras bort.theta_marginochrho_marginstyr sammanslagningen: linjer inom dessa tröskelvärden slås samman.Stöds inte på komprimerade bilder eller bayerbilder.
Denna metod är inte tillgänglig på 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]¶
Hittar linjesegment i bilden. Returnerar en lista med
image.line-objekt.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.merge_distanceär det maximala pixelavståndet mellan två segment för att de ska slås samman.max_theta_differenceär den maximala theta-skillnaden i grader mellan segment för att de ska slås samman.Denna metod är inte tillgänglig på 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]¶
Hittar cirklar i bilden med hjälp av hough-transformen. Returnerar en lista med
image.circle-objekt.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.x_strideochy_stridestyr hur många pixlar som hoppas över under hough-transformen.thresholdminsta cirkelmagnitud (summan av sobel-magnituder längs cirkeln); cirklar under detta filtreras bort.x_margin,y_marginochr_marginstyr sammanslagningen: cirklar inom dessa tröskelvärden slås samman.r_minminsta cirkelradie. Standardvärdet är 2.r_maxstörsta cirkelradie. Standardvärdet ärmin(roi.w/2, roi.h/2).r_stepradiesteglängd. Standardvärdet är 2.Denna metod är inte tillgänglig på OpenMV Cam M4.
- find_rects(roi: Tuple[int, int, int, int] | None = None, threshold: int = 1000) List[rect]¶
Hittar rektanglar i bilden med hjälp av apriltag-kvaddetekteringsalgoritmen. Returnerar en lista med
image.rect-objekt.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.thresholdminsta kantmagnitud (summan av sobel-magnituder längs rektangelkanterna); rektanglar under detta filtreras bort.Denna metod är inte tillgänglig på OpenMV Cam M4.
- find_qrcodes(roi: Tuple[int, int, int, int] | None = None) List[qrcode]¶
Hittar alla qrcodes inom
roioch returnerar en lista medimage.qrcode-objekt.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.Denna metod är inte tillgänglig på 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]¶
Hittar alla apriltags inom
roioch returnerar en lista medimage.apriltag-objekt.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.familiesär en bitmask av taggfamiljer att avkoda. Den är den logiska OR av:Standardvärdet är
image.TAG36H11. Detekteringstiden skalar med antalet aktiverade familjer.fxochfyär kamerans X- och Y-fokallängder i pixlar.cxochcyär bildens centrum, vanligtvisimage.width()/2ochimage.height()/2.Stöds inte på komprimerade bilder.
Denna metod är inte tillgänglig på OpenMV Cam M4.
- find_datamatrices(roi: Tuple[int, int, int, int] | None = None, effort: int = 200) List[datamatrix]¶
Hittar alla datamatriser inom
roioch returnerar en lista medimage.datamatrix-objekt.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.effortstyr hur mycket tid som läggs på att försöka hitta datamatris-matchningar. Högre värden förbättrar detekteringen på bekostnad av bildrutehastigheten. Värden under ~160 misslyckas med att detektera; värden över ~240 ger avtagande avkastning. Standardvärdet är 200.Denna metod är inte tillgänglig på OpenMV Cam M4.
- find_barcodes(roi: Tuple[int, int, int, int] | None = None) List[barcode]¶
Hittar alla 1D-streckkoder inom
roioch returnerar en lista medimage.barcode-objekt. Skannar både horisontellt och vertikalt.Streckkodstyper som stöds:
image.EAN2,image.EAN5,image.EAN8,image.UPCE,image.ISBN10,image.UPCA,image.EAN13,image.ISBN13,image.I25,image.DATABAR(RSS-14),image.DATABAR_EXP(RSS-Expanded),image.CODABAR,image.CODE39,image.PDF417,image.CODE93,image.CODE128.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.Denna metod är inte tillgänglig på 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¶
Hittar förflyttningsoffseten för denna bild från
templatemed hjälp av faskorrelation. Returnerar ettimage.displacement-objekt.roiär intresseområdets rektangel (x, y, w, h). Standardvärdet är bildrektangeln.template_roiär mallens intresseområde. Standardvärdet är mallbildens rektangel.roiochtemplate_roimåste ha samma bredd och höjd.logpolarom True returneras rotations-/skaländring i stället för x/y-förflyttning.fix_rotation_scaleom True beräknas förflyttningen efter att rotation och skala har justerats (endast meningsfullt närlogpolar=False).Anteckning
Använd denna metod på bildstorlekar som är potenser av 2 (t.ex.
sensor.B64X64).Stöds inte på komprimerade bilder eller bayerbilder. Inte tillgänglig på 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¶
Försöker hitta den första platsen i bilden där
templatematchar med hjälp av normaliserad korskorrelation. Returnerar en begränsningsrutetupel (x, y, w, h), eller None.templateär en gråskalebild att matcha mot denna bild.thresholdär ett värde (0.0-1.0). Högre värden minskar falska positiva och detekteringar; lägre värden gör motsatsen.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.stepär antalet pixlar att hoppa över under sökningen (används endast i lägetimage.SEARCH_EX).searchärimage.SEARCH_DS(snabbare diamantsökning) ellerimage.SEARCH_EX(uttömmande sökning).Fungerar endast på gråskalebilder.
- 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]]¶
Söker i bilden efter områden som matchar den skickade Haar-kaskaden och returnerar en lista med begränsningsrutetupler (x, y, w, h). Returnerar en tom lista om inga särdrag hittas.
cascadeär ett Haar Cascade-objekt (seimage.HaarCascade()).threshold(0.0-1.0). Lägre värden höjer detekteringsfrekvensen och frekvensen av falska positiva.scalemåste vara större än 1.0. Högre värden körs snabbare men ger sämre matchningar.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.
- find_eye(roi: Tuple[int, int, int, int]) Tuple[int, int]¶
Söker efter pupillen i en intresseområdestupel (x, y, w, h) kring ett öga. Returnerar (x, y)-platsen för pupillen, eller (0, 0) om ingen hittas.
roiär intresseområdets rektangeltupel (x, y, w, h).Fungerar endast på gråskalebilder.
- find_lbp(roi: Tuple[int, int, int, int]) lbp_descriptor¶
Extraherar LBP-nyckelpunkter (local-binary-patterns) från intresseområdet. Använd
image.match_descriptor()för att jämföra två deskriptorer.roiär intresseområdets rektangeltupel (x, y, w, h).Fungerar endast på gråskalebilder.
- 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¶
Extraherar ORB-nyckelpunkter från intresseområdet. Använd
image.match_descriptor()för att jämföra två deskriptorer. Returnerar None om inga nyckelpunkter hittades.roiär intresseområdets rektangeltupel (x, y, w, h). Standardvärdet är bildrektangeln.threshold(0-255) styr antalet extraherade hörn. Lägre tröskelvärden ger fler hörn. Använd ~20 för AGAST, ~60-80 för FAST.normalizedom True inaktiveras nyckelpunktsextraktion med flera upplösningar.scale_factormåste vara större än 1.0. Högre värden körs snabbare men ger sämre matchningar.max_keypointsär det maximala antalet nyckelpunkter att behålla.corner_detectorärimage.CORNER_FASTellerimage.CORNER_AGAST.Fungerar endast på gråskalebilder.
- find_edges(edge_type: int, threshold: Tuple[int, int] = (100, 200)) Image¶
Gör bilden svartvit och lämnar bara kanterna som vita pixlar.
image.EDGE_SIMPLE - Enkel trösklad högpassfilteralgoritm.
image.EDGE_CANNY - Canny-kantdetekteringsalgoritm.
thresholdär en tvåvärdig tupel som innehåller ett lågt tröskelvärde och ett högt tröskelvärde. Du kan styra kantkvaliteten genom att justera dessa värden. Standardvärdet är (100, 200).Fungerar endast på gråskalebilder.
- find_hog(roi: Tuple[int, int, int, int] | None = None, size: int = 8) Image¶
Ersätter pixlarna i ROI:n med HOG-linjer (histogram of oriented gradients).
roiär intresseområdets rektangeltupel (x, y, w, h). Om den inte anges är den lika med bildrektangeln. Endast pixlar inomroiopereras på.Fungerar endast på gråskalebilder.
Denna metod är inte tillgänglig på OpenMV Cam M4.
- stereo_disparity(reversed: bool = False, max_disparity: int = 64, threshold: int = 64) Image¶
Tar en dubbelbred gråskalebild som innehåller utdatan från två sensorer placerade sida vid sida och ersätter ena halvan med stereodisparitetsbilden (varje pixel representerar djup). T.ex. för två 320x240-kameror skicka en 640x240-bild.
reversedSom standard jämförs den vänstra bilden med den högra och den högra bilden ersätts. Sätt till True för att jämföra höger->vänster och ersätta den vänstra bilden.max_disparityär det maximala avståndet (1-255) att söka efter ett matchande pixelblock med hjälp av summan av absoluta differenser. Större värden tar exponentiellt längre tid men ger utdata av högre kvalitet.thresholdom summan av absoluta differenser mellan två block är mindre än eller lika med detta tröskelvärde betraktas de som matchande.
- 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]]¶
Kör selektiv sökning på bilden och returnerar en lista med begränsningsrutetupler (x, y, w, h) av objektförslag.
thresholdär segmenteringströskelvärdet; högre värden ger färre/större regioner.sizeär den minsta regionstorleken efter sammanslagning.a1,a2,a3är likhetsvikterna för färg/textur/storlek som används vid sammanslagning av regioner.