class Image – Image-object

Image is het centrale gegevenstype van de image-module – een pixelbuffer in het geheugen waarop elke tekenroutine, elk filter, elke geometrische transformatie en elke kenmerkextractie-routine werkt. Elk frame dat uit csi.CSI.snapshot() komt is een Image; net als elk frame dat van schijf wordt geladen, gedecodeerd uit JPEG of PNG, toegewezen vanuit een ndarray in numpy-stijl, of gemaakt als een leeg tekencanvas.

Een Image wordt beschreven door drie getallen – width, height en pixformat – plus een aaneengesloten pixelbuffer. Het pixelformaat bepaalt zowel de indeling in het geheugen als welke bewerkingen beschikbaar zijn:

  • BINARY (1 bpp) – 1 bit per pixel; gebruikt door morfologie en drempelbewerkingen.

  • GRAYSCALE (8 bpp) – 1 byte per pixel; het standaardformaat voor de meeste CV (AprilTag, randen, ORB, optical flow).

  • RGB565 (16 bpp) – 2 bytes per pixel (5R/6G/5B); het standaard kleurformaat.

  • BAYER (8 bpp) – ruwe Bayer-mozaïekgegevens rechtstreeks van de sensor. De meeste CV-methoden zijn niet beschikbaar voor Bayer-afbeeldingen; debayer eerst naar GRAYSCALE / RGB565.

  • YUV422 (16 bpp) – 4:2:2 chroma-gesubsampelde kleur, twee bytes per pixel. Slechts enkele methoden werken rechtstreeks op YUV422.

  • JPEG / PNG – gecomprimeerde buffers. Bewerkingen op pixelniveau vereisen eerst to_grayscale() of to_rgb565().

Waar Image-objecten vandaan komen

Er zijn vier manieren om een Image te verkrijgen:

  • Uit de camera-framebuffercsi.CSI().snapshot() retourneert het volgende vastgelegde frame. Het geretourneerde object is een dunne wrapper rond het framebuffergeheugen van de camera, dus elke teken- of filterbewerking erop verandert wat naar de IDE-preview en het beeldscherm wordt verzonden.

  • Uit een bestand – geef een padstring door aan de Image-constructor. BMP, PGM, PPM, JPEG en PNG worden rechtstreeks naar RAM gedecodeerd (of naar de camera-framebuffer als copy_to_fb=True).

  • Uit een ndarray – geef een float32-array van (h, w) of (h, w, 3) door. De pixels worden geschaald van 0.0 -- 255.0 naar respectievelijk GRAYSCALE of RGB565.

  • Leeg – geef (width, height, pixformat) door om een met nullen gevuld tekenoppervlak toe te wijzen. Voor gecomprimeerde pixelformaten (JPEG / PNG) is een buffer=-argument vereist dat de gecomprimeerde bytestream bevat.

Typische vastleg-, verwerk- en weergavelus

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.

Indexeren, lengte, iteratie en bytes-achtige toegang

  • Indexerenimg[i] leest pixel i (lineair, rij-gebaseerd). img[i] = value schrijft deze. Grayscale- / Bayer-pixels zijn 8-bits gehele getallen, RGB565- / YUV422-pixels zijn 16-bits gepakte gehele getallen, binaire pixels zijn 0 / 1. Voor JPEG- / PNG-afbeeldingen is de indexruimte de gecomprimeerde bytestream, niet de pixels.

  • Lengtelen(img) retourneert het aantal pixels voor ongecomprimeerde formaten of het aantal bytes voor gecomprimeerde formaten.

  • Iteratiefor px in img: ... doorloopt de pixelarray in dezelfde volgorde als indexering met [].

  • Bytes-achtigImage ondersteunt het leesbufferprotocol, dus je kunt het rechtstreeks doorgeven aan alles dat een bytes / bytearray accepteert (bijv. uart.write(img), socket.send(img), hashlib.sha256(img)). Gebruik in plaats daarvan bytearray() om een lees/schrijf-weergave te verkrijgen.

Hint-vlaggen

Veel Image-methoden accepteren een hint-argument dat een logische OR is van de volgende vlaggen:

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

Als arg een string is, maakt dit een nieuw image-object op basis van een bestand op het pad arg. Ondersteunt het laden van bmp/pgm/ppm/jpg/jpeg/png-afbeeldingsbestanden van schijf. Als copy_to_fb waar is, wordt de afbeelding naar de framebuffer gekopieerd in plaats van op de heap te worden toegewezen.

Als arg een ndarray is, maakt dit een nieuw image-object op basis van de ndarray. ndarray-objecten met een vorm (w, h) worden behandeld als grijswaardenafbeeldingen, (w, h, 3) worden behandeld als RGB565-afbeeldingen. Op dit moment worden alleen float32-ndarrays ondersteund. Als je bij het maken van een afbeelding op deze manier een buffer-argument doorgeeft, wordt dit gebruikt om de afbeeldingsgegevens op te slaan in plaats van ruimte op de heap toe te wijzen. Als copy_to_fb waar is, wordt de afbeelding naar de framebuffer gekopieerd in plaats van op de heap te worden toegewezen of de buffer te gebruiken.

Als arg een int is, wordt dit beschouwd als de breedte van een nieuwe afbeelding en moeten er een height-waarde en een format-waarde volgen om een nieuw leeg image-object te maken. format kan elke pixformat-waarde voor afbeeldingen zijn, zoals image.GRAYSCALE. De afbeelding wordt geïnitialiseerd op allemaal nullen. Houd er rekening mee dat voor gecomprimeerde afbeeldingsformaten een buffer-waarde wordt verwacht. buffer wordt op deze manier beschouwd als de bron van de afbeeldingsgegevens voor het maken van afbeeldingen. Indien gebruikt met copy_to_fb worden de gegevens uit buffer naar de framebuffer gekopieerd. Als je een JPEG-afbeelding wilt maken op basis van een JPEG-bytes()- of bytearray()-object, kun je width, height, image.JPEG voor de JPEG doorgeven samen met het instellen van buffer op de JPEG-bytestream om een JPEG-afbeelding te maken.

Afbeeldingen ondersteunen de “[]”-notatie. Doe image[index] = 8/16-bit value om een afbeeldingspixel toe te wijzen of image[index] om een afbeeldingspixel op te halen, wat een 8-bits waarde is voor grayscale/bayer-afbeeldingen of een 16-bits waarde voor RGB565/YUV-afbeeldingen. Binaire afbeeldingen retourneren een 1-bits waarde.

Voor JPEG-afbeeldingen geeft de “[]” je toegang tot de gecomprimeerde JPEG-afbeeldingsblob als een byte-array. Lezen en schrijven naar de gegevensarray is echter ondoorzichtig, aangezien JPEG-afbeeldingen gecomprimeerde bytestreams zijn.

Afbeeldingen ondersteunen ook leesbufferbewerkingen. Je kunt afbeeldingen doorgeven aan allerlei MicroPython-functies alsof de afbeelding een byte-array-object is. In het bijzonder, als je een afbeelding wilt verzenden, kun je deze gewoon doorgeven aan de UART/SPI/I2C-write-functies om automatisch te worden verzonden.

Basismethoden

width() int

Retourneert de breedte van de afbeelding in pixels.

height() int

Retourneert de hoogte van de afbeelding in pixels.

format() int

Retourneert image.GRAYSCALE voor grijswaardenafbeeldingen, image.RGB565 voor RGB565-afbeeldingen, image.BAYER voor bayer-patroonafbeeldingen en image.JPEG voor JPEG-afbeeldingen.

size() int

Retourneert de grootte van de afbeelding in bytes.

bytearray() bytearray

Retourneert een bytearray-object dat naar de afbeeldingsgegevens wijst voor lees/schrijf-toegang op byteniveau.

Notitie

Image-objecten worden automatisch omgezet naar bytes-objecten wanneer ze worden doorgegeven aan een MicroPython-driver die een bytes-achtig object vereist. Dit is alleen-lezen toegang. Roep bytearray() aan om lees/schrijf-toegang te krijgen.

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

Voor grijswaardenafbeeldingen: retourneert de grijswaarde van de pixel op locatie (x, y). Voor RGB565-afbeeldingen: retourneert de RGB888-pixeltuple (r, g, b) op locatie (x, y). Voor bayer-patroonafbeeldingen: retourneert de pixelwaarde op de locatie (x, y).

Retourneert None als x of y buiten de afbeelding valt.

x en y mogen ofwel afzonderlijk ofwel als een tuple worden doorgegeven.

rgbtuple indien True zorgt ervoor dat deze methode een RGB888-tuple retourneert. Anders retourneert deze methode de gehele waarde van de onderliggende pixel. D.w.z. voor RGB565-afbeeldingen retourneert deze methode een RGB565-waarde. Standaard True voor RGB565-afbeeldingen en anders False.

Niet ondersteund voor gecomprimeerde afbeeldingen.

Notitie

Image.get_pixel() en Image.set_pixel() zijn de enige methoden waarmee je bayer-patroonafbeeldingen kunt manipuleren. Bayer-patroonafbeeldingen zijn letterlijke afbeeldingen waarbij de pixels in de afbeelding R/G/R/G/enz. zijn voor even rijen en G/B/G/B/enz. voor oneven rijen. Elke pixel is 8-bits. Als je deze methode aanroept met rgbtuple ingesteld, zal Image.get_pixel() de bronafbeelding op die pixellocatie debayeren en een geldige RGB888-tuple voor de pixellocatie retourneren.

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

Voor grijswaardenafbeeldingen: stelt de pixel op locatie (x, y) in op de grijswaarde pixel. Voor RGB565-afbeeldingen: stelt de pixel op locatie (x, y) in op de RGB888-tuple (r, g, b) pixel. Voor bayer-patroonafbeeldingen: stelt de pixelwaarde op de locatie (x, y) in op de waarde pixel.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

x en y mogen ofwel afzonderlijk ofwel als een tuple worden doorgegeven.

pixel mag ofwel een RGB888-tuple (r, g, b) zijn of de onderliggende pixelwaarde (d.w.z. een RGB565-waarde voor RGB565-afbeeldingen of een 8-bits waarde voor grijswaardenafbeeldingen).

Niet ondersteund voor gecomprimeerde afbeeldingen.

Notitie

Image.get_pixel() en Image.set_pixel() zijn de enige methoden waarmee je bayer-patroonafbeeldingen kunt manipuleren. Bayer-patroonafbeeldingen zijn letterlijke afbeeldingen waarbij de pixels in de afbeelding R/G/R/G/enz. zijn voor even rijen en G/B/G/B/enz. voor oneven rijen. Elke pixel is 8-bits. Als je deze methode aanroept met een RGB888-tuple, wordt de grijswaarde van die RGB888-tuple geëxtraheerd en op de pixellocatie ingesteld.

Conversiemethoden

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

Retourneert een ndarray-object gemaakt op basis van de afbeelding. Dit werkt momenteel alleen voor GRAYSCALE- of RGB565-afbeeldingen.

dtype kan b, B of f zijn voor het maken van een signed 8-bits, unsigned 8-bits of 32-bits floating point ndarray. GRAYSCALE-afbeeldingen worden rechtstreeks geconverteerd naar unsigned 8-bits ndarray-objecten. Voor signed 8-bits ndarray-objecten worden de waarden (0:255) toegewezen aan (-127:128). Voor float 32-bits ndarray-objecten worden de waarden toegewezen aan (0.0:255.0). RGB565-afbeeldingen worden geconverteerd naar 3-kanaals ndarray-objecten en hetzelfde hierboven beschreven proces voor GRAYSCALE-afbeeldingen wordt op elk kanaal toegepast afhankelijk van dtype. Houd er rekening mee dat dtype ook de gehele waarden (bijv. via ord()) van respectievelijk b, B en f accepteert.

buffer indien niet None is een bytearray-object dat als buffer voor de ndarray wordt gebruikt. Indien None wordt een nieuwe buffer op de heap toegewezen om de ndarray-afbeeldingsgegevens op te slaan. Je kunt het buffer-argument gebruiken om de ndarray rechtstreeks in een vooraf toegewezen buffer te plaatsen, wat een heap-toewijzing en een kopieerbewerking bespaart.

De geretourneerde ndarray heeft de vorm (height, width) voor GRAYSCALE-afbeeldingen en (height, width, 3) voor RGB565-afbeeldingen.

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

Converteert een afbeelding naar een bitmap-afbeelding (1 bit per pixel).

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Notitie

Bitmap-afbeeldingen zijn als grijswaardenafbeeldingen met slechts twee pixelwaarden - 0 en 1. Bovendien zijn bitmap-afbeeldingen zo gepakt dat ze slechts 1 bit per pixel opslaan, waardoor ze erg klein zijn. De OpenMV-afbeeldingsbibliotheek staat toe dat bitmap-afbeeldingen worden gebruikt op alle plaatsen waar sensor.GRAYSCALE- en sensor.RGB565-afbeeldingen kunnen worden gebruikt. Veel bewerkingen zijn echter zinloos wanneer ze op bitmap-afbeeldingen worden toegepast, omdat bitmap-afbeeldingen slechts 2 waarden hebben. OpenMV raadt aan bitmap-afbeeldingen te gebruiken voor mask-waarden in bewerkingen en dergelijke, omdat ze vrij gemakkelijk op de MicroPython-heap passen. Tot slot worden de bitmap-afbeeldingspixelwaarden 0 en 1 geïnterpreteerd als zwart en wit wanneer ze worden toegepast op sensor.GRAYSCALE- of sensor.RGB565-afbeeldingen. De bibliotheek handelt de conversie automatisch af.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Converteert een afbeelding naar een grijswaardenafbeelding (8 bits per pixel).

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Converteert een afbeelding naar een RGB565-afbeelding (16 bits per pixel).

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Converteert een afbeelding naar een RGB565-rainbow-afbeelding (16 bits per pixel).

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Converteert een afbeelding naar een RGB565-ironbow-afbeelding (16 bits per pixel).

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Converteert een afbeelding naar een RGB565-diepteafbeelding (16 bits per pixel).

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan image.PALETTE_DEPTH zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Converteert een afbeelding naar een RGB565 Dark Event-afbeelding (16 bits per pixel).

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Converteert een afbeelding naar een RGB565 Light Event-afbeelding (16 bits per pixel).

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Converteert een afbeelding naar een JPEG-afbeelding.

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

quality bepaalt de compressiekwaliteit van de jpeg-afbeelding. De waarde kan tussen 0 en 100 liggen.

subsampling kan zijn:

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Converteert een afbeelding naar een PNG-afbeelding.

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Converteert een afbeelding naar een JPEG-afbeelding.

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

quality bepaalt de compressiekwaliteit van de jpeg-afbeelding. De waarde kan tussen 0 en 100 liggen.

subsampling kan zijn:

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Notitie

Image.compress is een alias voor Image.to_jpeg.

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

Maakt een deep copy van het image-object.

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Wijzigt een afbeelding ter plekke zonder het onderliggende afbeeldingstype te veranderen.

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Wijzigt een afbeelding ter plekke zonder het onderliggende afbeeldingstype te veranderen.

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering van image.BLACK_BACKGROUND, dat hier niet wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

copy indien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.

copy_to_fb indien True wordt de afbeelding rechtstreeks in de framebuffer geladen. copy_to_fb heeft voorrang op copy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Notitie

Image.scale is een alias voor Image.crop.

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

Slaat een kopie van de afbeelding op in het bestandssysteem op path.

Ondersteunt bmp/pgm/ppm/jpg/jpeg-afbeeldingsbestanden. Houd er rekening mee dat je jpeg-gecomprimeerde afbeeldingen niet naar een ongecomprimeerd formaat kunt opslaan.

roi is de aandachtsgebied-rechthoek (x, y, w, h) waaruit moet worden opgeslagen. Indien niet opgegeven, is deze gelijk aan de afbeeldingsrechthoek, wat de hele afbeelding kopieert. Dit argument is niet van toepassing op JPEG-afbeeldingen.

quality is de jpeg-compressiekwaliteit die wordt gebruikt om de afbeelding in jpeg-formaat op te slaan als de afbeelding nog niet gecomprimeerd is (0-100) (int).

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

flush() None

Werkt de framebuffer in de IDE bij met de afbeelding in de framebuffer op de camera.

Tekenmethoden

clear(mask: Image | None = None) Image

Stelt alle pixels in de afbeelding in op nul (zeer snel).

mask is een andere afbeelding die als masker op pixelniveau voor de bewerking wordt gebruikt. Het masker moet een afbeelding zijn met alleen zwarte of witte pixels en moet dezelfde grootte hebben als de afbeelding waarop wordt bewerkt. Alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen.

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

Tekent een lijn van (x0, y0) naar (x1, y1) op de afbeelding. Je kunt x0, y0, x1, y1 afzonderlijk doorgeven of als een tuple (x0, y0, x1, y1).

color is een RGB888-tuple voor Grayscale- of RGB565-afbeeldingen. Standaard wit. Je kunt echter ook de onderliggende pixelwaarde (0-255) doorgeven voor grijswaardenafbeeldingen of een RGB565-waarde voor RGB565-afbeeldingen.

thickness bepaalt hoe dik de lijn in pixels is.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Tekent een rechthoek op de afbeelding. Je kunt x, y, w, h afzonderlijk doorgeven of als een tuple (x, y, w, h).

color is een RGB888-tuple voor Grayscale- of RGB565-afbeeldingen. Standaard wit. Je kunt echter ook de onderliggende pixelwaarde (0-255) doorgeven voor grijswaardenafbeeldingen of een RGB565-waarde voor RGB565-afbeeldingen.

thickness bepaalt hoe dik de lijnen in pixels zijn.

Geef fill ingesteld op True om de rechthoek te vullen.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Tekent een cirkel op de afbeelding. Je kunt x, y, radius afzonderlijk doorgeven of als een tuple (x, y, radius).

color is een RGB888-tuple voor Grayscale- of RGB565-afbeeldingen. Standaard wit. Je kunt echter ook de onderliggende pixelwaarde (0-255) doorgeven voor grijswaardenafbeeldingen of een RGB565-waarde voor RGB565-afbeeldingen.

thickness bepaalt hoe dik de randen in pixels zijn.

Geef fill ingesteld op True om de cirkel te vullen.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Tekent een ellips op de afbeelding. Je kunt cx, cy, rx, ry en de rotatie (in graden) afzonderlijk doorgeven of als een tuple (cx, yc, rx, ry, rotation).

color is een RGB888-tuple voor Grayscale- of RGB565-afbeeldingen. Standaard wit. Je kunt echter ook de onderliggende pixelwaarde (0-255) doorgeven voor grijswaardenafbeeldingen of een RGB565-waarde voor RGB565-afbeeldingen.

thickness bepaalt hoe dik de randen in pixels zijn.

Geef fill ingesteld op True om de ellips te vullen.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Tekent 8x10-tekst beginnend op locatie (x, y) in de afbeelding. Je kunt x, y afzonderlijk doorgeven of als een tuple (x, y).

text is een string om naar de afbeelding te schrijven. \n-, \r- en \r\n-regeleinden verplaatsen de cursor naar de volgende regel.

color is een RGB888-tuple voor Grayscale- of RGB565-afbeeldingen. Standaard wit. Je kunt echter ook de onderliggende pixelwaarde (0-255) doorgeven voor grijswaardenafbeeldingen of een RGB565-waarde voor RGB565-afbeeldingen.

scale kan worden verhoogd om de grootte van de tekst op de afbeelding te vergroten/verkleinen. Je kunt gehele of floating point-waarden groter dan 0 doorgeven.

x_spacing stelt je in staat om (indien positief) x-pixels tussen tekens toe te voegen of (indien negatief) af te trekken.

y_spacing stelt je in staat om (indien positief) y-pixels tussen tekens toe te voegen of (indien negatief) af te trekken (voor tekst over meerdere regels).

mono_space staat standaard op True, wat tekst met vaste spatiëring afdwingt. Voor grote tekstschalen ziet dit er verschrikkelijk uit. Stel dit in op False om tekenspatiëring met variabele breedte te krijgen, wat er VEEL beter uitziet.

char_rotation mag 0, 90, 180, 270 zijn om elk teken in de string met deze hoeveelheid te roteren.

char_hmirror indien True spiegelt alle tekens in de string horizontaal.

char_vflip indien True keert alle tekens in de string verticaal om.

string_rotation mag 0, 90, 180, 270 zijn om de string met deze hoeveelheid te roteren.

string_hmirror indien True spiegelt de string horizontaal.

string_vflip indien True keert de string verticaal om.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Tekent een kruis op locatie x, y. Je kunt x, y afzonderlijk doorgeven of als een tuple (x, y).

color is een RGB888-tuple voor Grayscale- of RGB565-afbeeldingen. Standaard wit. Je kunt echter ook de onderliggende pixelwaarde (0-255) doorgeven voor grijswaardenafbeeldingen of een RGB565-waarde voor RGB565-afbeeldingen.

size bepaalt hoe ver de lijnen van het kruis zich uitstrekken.

thickness bepaalt hoe dik de randen in pixels zijn.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Tekent een pijl van (x0, y0) naar (x1, y1) op de afbeelding. Je kunt x0, y0, x1, y1 afzonderlijk doorgeven of als een tuple (x0, y0, x1, y1).

color is een RGB888-tuple voor Grayscale- of RGB565-afbeeldingen. Standaard wit. Je kunt echter ook de onderliggende pixelwaarde (0-255) doorgeven voor grijswaardenafbeeldingen of een RGB565-waarde voor RGB565-afbeeldingen.

thickness bepaalt hoe dik de lijn in pixels is.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Tekent een detectieresultaat op de afbeelding. detection is een 6-tuple (rx, ry, rw, rh, cx, cy) die een begrenzende rechthoek en een centroïde beschrijft (doorgaans geretourneerd door NN- of kleurtracking-code).

color1 is de kleur van de rechthoek en color2 is de kleur van het centroïdekruis. size is de grootte van het centroïdekruis, thickness bepaalt de breedte van de omtrek en fill vult de rechthoek.

label indien opgegeven wordt nabij de rechthoek getekend, verschoven met label_offset (x, y).

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Tekent lijnranden tussen een hoekenlijst die wordt geretourneerd door methoden zoals blob.corners. Corners is een tuple met vier waarden van tuples met twee x/y-waarden. Bijv. [(x1,y1),(x2,y2),(x3,y3),(x4,y4)].

color is een RGB888-tuple voor Grayscale- of RGB565-afbeeldingen. Standaard wit. Je kunt echter ook de onderliggende pixelwaarde (0-255) doorgeven voor grijswaardenafbeeldingen of een RGB565-waarde voor RGB565-afbeeldingen.

size indien groter dan 0 zorgt ervoor dat de hoeken worden getekend als cirkels met straal size.

thickness bepaalt hoe dik de lijn in pixels is.

Geef fill ingesteld op True om de hoekcirkels te vullen indien getekend.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Tekent een image waarvan de linkerbovenhoek begint op locatie x, y. Je kunt x, y afzonderlijk doorgeven of als een tuple (x, y). Deze methode handelt automatisch het renderen van de doorgegeven afbeelding naar het juiste pixelformaat voor de bestemmingsafbeelding af en handelt ook het bijsnijden naadloos af.

Je kunt ook een pad doorgeven in plaats van een image-object zodat deze methode de afbeelding automatisch van schijf laadt en in één stap gebruikt. Bijv. draw_image("test.jpg").

x_scale bepaalt hoeveel de weergegeven afbeelding in de x-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding horizontaal gespiegeld. Houd er rekening mee dat als y_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

y_scale bepaalt hoeveel de weergegeven afbeelding in de y-richting wordt geschaald (float). Als deze waarde negatief is, wordt de afbeelding verticaal gespiegeld. Houd er rekening mee dat als x_scale niet is opgegeven, deze gelijk wordt aan x_scale om de beeldverhouding te behouden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h) van de bronafbeelding om te tekenen. Hiermee kun je alleen de pixels in de ROI extraheren om te schalen en op de bestemmingsafbeelding te tekenen.

rgb_channel is het RGB-kanaal (0=R, G=1, B=2) dat uit een RGB565-afbeelding (indien doorgegeven) moet worden geëxtraheerd en op de bestemmingsafbeelding moet worden gerenderd. Als je bijvoorbeeld rgb_channel=1 doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.

alpha bepaalt hoeveel van de bronafbeelding in de bestemmingsafbeelding wordt gemengd. Een waarde van 255 tekent een ondoorzichtige bronafbeelding, terwijl een waarde lager dan 255 een mengeling tussen de bron- en bestemmingsafbeelding produceert. 0 resulteert in geen wijziging van de bestemmingsafbeelding.

color_palette indien niet None kan een kleurenpalet-enum zijn of een RGB565-afbeelding van in totaal 256 pixels die als kleur-lookuptabel wordt gebruikt op de grijswaarde van de bronafbeelding, ongeacht welke dat is. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

alpha_palette indien niet None kan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en de alpha-waarde van de getekende bronafbeelding op pixelniveau moduleert, waardoor je de alfawaarde van pixels nauwkeurig kunt regelen op basis van hun grijswaarde. Een pixelwaarde van 255 in de alfa-lookuptabel is ondoorzichtig, terwijl alles wat lager is dan 255 transparanter wordt tot aan 0. Dit wordt toegepast na rgb_channel-extractie indien gebruikt.

hint is een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (inclusief image.BLACK_BACKGROUND, dat hier wel wordt ondersteund).

transform is een 3x3-ndarray die wordt gebruikt om een perspectieftransformatie op de afbeelding uit te voeren. Wordt momenteel alleen ondersteund op de OpenMV Cam N6, aangezien deze een GPU heeft die dit in hardware kan doen.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

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

Tekent de sleutelpunten van een keypoints-object op de afbeelding. Je kunt ook een lijst van tuples met drie waarden doorgeven die de (x, y, rotation_angle_in_degrees) bevatten om deze methode te hergebruiken voor het tekenen van sleutelpunt-glyphs, die een cirkel zijn met een lijn die in een bepaalde richting wijst.

color is een RGB888-tuple voor Grayscale- of RGB565-afbeeldingen. Standaard wit. Je kunt echter ook de onderliggende pixelwaarde (0-255) doorgeven voor grijswaardenafbeeldingen of een RGB565-waarde voor RGB565-afbeeldingen.

size bepaalt hoe groot de sleutelpunten zijn.

thickness bepaalt hoe dik de lijn in pixels is.

Geef fill ingesteld op True om de sleutelpunten te vullen.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Voert een flood fill uit van een gebied van de afbeelding beginnend vanaf locatie x, y. Je kunt x, y afzonderlijk doorgeven of als een tuple (x, y).

seed_threshold bepaalt hoeveel een willekeurige pixel in het vulgebied mag verschillen van de oorspronkelijke startpixel.

floating_threshold bepaalt hoeveel een willekeurige pixel in het vulgebied mag verschillen van willekeurige naburige pixels.

color is een RGB888-tuple voor Grayscale- of RGB565-afbeeldingen. Standaard wit. Je kunt echter ook de onderliggende pixelwaarde (0-255) doorgeven voor grijswaardenafbeeldingen of een RGB565-waarde voor RGB565-afbeeldingen.

Geef invert als True om alles buiten het flood-fill-verbonden gebied opnieuw in te kleuren.

Geef clear_background als True om de rest van de pixels die flood-fill niet opnieuw heeft ingekleurd op nul te zetten.

mask is een andere afbeelding die als masker op pixelniveau voor de bewerking wordt gebruikt. Het masker moet een afbeelding zijn met alleen zwarte of witte pixels en moet dezelfde grootte hebben als de afbeelding waarop wordt bewerkt. Alleen pixels die in het masker zijn ingesteld, worden geëvalueerd bij het flood filling.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

Deze methode is niet beschikbaar op de OpenMV Cam M4.

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

Rastert een event-ndarray (zoals gevuld door csi.IOCTL_GENX320_READ_EVENTS) op een Image voor visualisatie. De afbeeldingsbuffer moet een 320x320 GRAYSCALE-afbeelding zijn.

Voor elke csi.PIX_ON_EVENT-rij wordt +contrast toegevoegd aan de pixel van het event; voor elke csi.PIX_OFF_EVENT-rij wordt -contrast van de pixel afgetrokken. Trigger-events worden genegeerd. Pixelwaarden worden begrensd tot 0-255.

clear indien True reset de afbeeldingsbuffer naar brightness vóór het tekenen — elk frame wordt een verse, alleen-event-render. Stel in op False om events over meerdere aanroepen heen te accumuleren (handig voor bewegingssporen met lange belichting).

brightness bepaalt de middengrijze basislijn waarnaar de buffer wordt gereset wanneer clear True is. De standaardwaarde 128 plaatst ON-events aan de heldere kant en OFF-events aan de donkere kant met gelijke speelruimte.

contrast bepaalt hoeveel elk event zijn pixel verschuift — hogere waarden laten events meer opvallen, ten koste van snelle verzadiging wanneer veel events op dezelfde pixel terechtkomen.

Maskeermethoden

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

Zet een rechthoekig deel van de afbeelding op nul. Als er geen argumenten worden opgegeven, zet deze methode het midden van de afbeelding op nul.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Zet een cirkelvormig deel van de afbeelding op nul. Als er geen argumenten worden opgegeven, zet deze methode het midden van de afbeelding op nul.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Zet een ellipsvormig deel van de afbeelding op nul. Als er geen argumenten worden opgegeven, zet deze methode het midden van de afbeelding op nul.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

Binaire methoden

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

Stelt alle pixels in de afbeelding in op zwart of wit, afhankelijk van of elke pixel binnen een van de drempeltuples in thresholds valt.

thresholds is een lijst van (lo, hi)-tuples voor grijswaardenafbeeldingen, of (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi)-tuples voor RGB565-afbeeldingen. Verwisselde min/max-waarden worden automatisch gecorrigeerd; ontbrekende componenten krijgen standaard het maximale bereik.

invert keert de drempelmatching om.

zero indien True zet de pixels die de drempel passeren op nul en laat de overige ongemoeid.

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

to_bitmap indien True converteert de afbeeldingsgegevens naar een bitmap van 1 bit per pixel. Voor zeer kleine afbeeldingen kan dit copy=True vereisen.

copy indien True retourneert een nieuwe afbeelding op de heap in plaats van de bronafbeelding te wijzigen.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

invert() Image

Keert alle pixelwaarden in de afbeelding om (elke pixel wordt 255 - pixel voor 8-bits kanalen).

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Voert een logische AND uit van deze afbeelding met een andere afbeelding.

image kan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Voert een logische NAND uit van deze afbeelding met een andere afbeelding.

image kan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Voert een logische OR uit van deze afbeelding met een andere afbeelding.

image kan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Voert een logische NOR uit van deze afbeelding met een andere afbeelding.

image kan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Voert een logische XOR uit van deze afbeelding met een andere afbeelding.

image kan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Voert een logische XNOR uit van deze afbeelding met een andere afbeelding.

image kan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

ISP-methoden

awb(max: bool = False) Image

Voert automatische witbalans uit op de afbeelding met behulp van het gray-world-algoritme. Werkt op RAW Bayer- of RGB565-afbeeldingen. Heeft geen effect op binaire/grijswaardenafbeeldingen.

max indien True gebruikt in plaats daarvan het white-patch-algoritme.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde of yuv-afbeeldingen.

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

Vermenigvuldigt de doorgegeven floating-point kleurcorrectiematrix met de afbeelding. Matrices mogen 3x3 of 3x4 zijn (met offset-kolom), in geneste lijst- of platte lijstvorm:

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

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Past de gamma, het contrast en de helderheid van de afbeelding aan.

gamma past pow(pixel, 1/gamma) toe na normalisatie. Waarden groter dan 1.0 maken lichter; kleiner dan 1.0 maken donkerder.

contrast past pixel * contrast toe na normalisatie.

brightness past pixel + brightness toe na normalisatie.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde of bayer/yuv-afbeeldingen.

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

Alias voor Image.gamma.

Rekenmethoden

negate() Image

Alias voor Image.invert.

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

Alias voor Image.draw_image(). Vervangt deze afbeelding door image (of transformeert deze afbeelding ter plekke als image wordt weggelaten) met de standaard draw_image-keyword-argumenten. Het transform-argument is een 3x3-ndarray die een perspectieftransformatie beschrijft (alleen ondersteund op OpenMV-camera’s met ULAB ingeschakeld).

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

Alias voor Image.replace().

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

Alias voor Image.replace().

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

Telt een afbeelding pixelsgewijs op bij deze.

image kan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Trekt image pixelsgewijs af van deze afbeelding (self - image).

image kan ofwel een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Deze methode accepteert ook de volledige set keyword-argumenten van Image.draw_image() (x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint, transform).

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Omgekeerde aftrekking: vervangt deze afbeelding door image - self pixelsgewijs. Verder identiek aan Image.sub().

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

Retourneert pixelsgewijs de minimumafbeelding van twee afbeeldingen.

image kan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Retourneert pixelsgewijs de maximumafbeelding van twee afbeeldingen.

image kan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Retourneert pixelsgewijs de afbeelding van het absolute verschil tussen twee afbeeldingen (bijv. ||a-b||).

image kan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Alias voor Image.draw_image(). Alfa-mengt image in deze afbeelding. alpha is een geheel getal 0-256; waarden dichter bij 256 bevoordelen de bronafbeelding. Accepteert alle keyword-argumenten van Image.draw_image().

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

Voert histogramegalisatie uit op de afbeelding om contrast en helderheid te normaliseren.

adaptive indien True voert adaptieve histogramegalisatie uit (langzamer maar over het algemeen beter).

clip_limit beperkt het contrast in de adaptieve variant (een kleine waarde zoals 10 levert goede CLAHE-resultaten op).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

Filtermethoden

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

Verwijdert pixels van de randen van gesegmenteerde gebieden. Convolueert een ((size*2)+1)x((size*2)+1)-kernel over de afbeelding en wist de middelste pixel als meer dan threshold naburige pixels gewist zijn (werkt als standaard erode als threshold None is).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Voegt pixels toe aan de randen van gesegmenteerde gebieden. Convolueert een ((size*2)+1)x((size*2)+1)-kernel over de afbeelding en stelt de middelste pixel in als meer dan threshold naburige pixels ingesteld zijn (werkt als standaard dilate als threshold None is).

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Voert erosie en daarna dilatatie uit. Zie Image.erode() en Image.dilate().

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Voert dilatatie en daarna erosie uit. Zie Image.dilate() en Image.erode().

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Retourneert het afbeeldingsverschil tussen de afbeelding en de met Image.open() bewerkte afbeelding.

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Retourneert het afbeeldingsverschil tussen de afbeelding en de met Image.close() bewerkte afbeelding.

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Standaard mean-blurringfilter met behulp van een box-filter.

size is de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.

threshold indien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen. offset verschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit). invert keert de binaire uitvoer om.

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Voert een percentielfilter uit op de afbeelding (standaard mediaan).

size is de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.

percentile is het percentiel dat uit elke kernel wordt geselecteerd (0 = min, 0.5 = mediaan, 1.0 = max). Standaard 0.5.

threshold indien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen. offset verschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit). invert keert de binaire uitvoer om.

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Vervangt elke pixel door de modus van zijn buren. Kan artefacten produceren aan de randen van RGB-afbeeldingen vanwege de niet-lineaire bewerking.

size is de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.

threshold indien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen. offset verschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit). invert keert de binaire uitvoer om.

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Voert het midpoint-filter uit op de afbeelding. Dit filter vindt het middelpunt ((max-min)/2) van elke pixelomgeving in de afbeelding.

size is de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.

bias bepaalt de min/max-menging. 0 voor alleen min-filtering, 1.0 voor alleen max-filtering. Door de bias te gebruiken kun je de afbeelding min/max-filteren.

threshold indien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen. offset verschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit). invert keert de binaire uitvoer om.

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Convolueert de afbeelding met een willekeurige filterkernel.

size bepaalt de kernelgrootte, die ((size*2)+1)x((size*2)+1) elementen moet zijn.

kernel is de kernel waarmee moet worden geconvolueerd, als een platte 1D-lijst/tuple van ((size*2)+1)*((size*2)+1) elementen, of als een 2D-lijst/tuple met ((size*2)+1) rijen van ((size*2)+1) elementen.

mul is een multiplicatieve contrastschaal (standaard 1.0).

add is een additieve helderheidsoffset (standaard 0.0).

threshold indien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen. offset verschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit). invert keert de binaire uitvoer om.

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Convolueert de afbeelding met een glad makende gaussian-kernel.

size is de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.

unsharp indien True voert een unsharp mask-bewerking uit (verscherpt randen) in plaats van een gewone gaussian.

mul is een multiplicatieve contrastschaal (standaard 1.0).

add is een additieve helderheidsoffset (standaard 0.0).

threshold indien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen. offset verschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit). invert keert de binaire uitvoer om.

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Convolueert de afbeelding met een randdetecterende laplacian-kernel.

size is de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.

sharpen indien True verscherpt de afbeelding in plaats van de ruwe, niet-gedrempelde randrespons uit te voeren.

mul is een multiplicatieve contrastschaal (standaard 1.0).

add is een additieve helderheidsoffset (standaard 0.0).

threshold indien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen. offset verschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit). invert keert de binaire uitvoer om.

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

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

Convolueert de afbeelding met een bilateraal filter (randbehoudende gladmaking).

size is de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.

color_sigma bepaalt de kleurmatchingstolerantie; grotere waarden produceren meer kleurvervaging.

space_sigma bepaalt de ruimtelijke vervaging; grotere waarden produceren meer pixelvervaging.

threshold indien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen. offset verschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit). invert keert de binaire uitvoer om.

mask is een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer/yuv-afbeeldingen.

Geometrische methoden

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

Herprojecteert een afbeelding van cartesische coördinaten naar lineaire poolcoördinaten.

Stel reverse=True in om in de tegenovergestelde richting te herprojecteren.

x en y geven de middelpuntcoördinaat van de transformatie in afbeeldingspixels op. Als x None is (de standaard) wordt deze ingesteld op de helft van de afbeeldingsbreedte; evenzo is y standaard de helft van de afbeeldingshoogte.

Lineaire poolherprojectie zet rotatie van een afbeelding om in x-translatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

Deze methode is niet beschikbaar op de OpenMV Cam M4.

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

Herprojecteert een afbeelding van cartesische coördinaten naar logaritmische poolcoördinaten.

Stel reverse=True in om in de tegenovergestelde richting te herprojecteren.

x en y geven de middelpuntcoördinaat van de transformatie in afbeeldingspixels op. Als x None is (de standaard) wordt deze ingesteld op de helft van de afbeeldingsbreedte; evenzo is y standaard de helft van de afbeeldingshoogte.

Logaritmische poolherprojectie zet rotatie van een afbeelding om in x-translatie en schaling/zoomen in y-translatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

Deze methode is niet beschikbaar op de OpenMV Cam M4.

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

Voert lenscorrectie uit om de afbeelding te ontvissenogen vanwege de lensvervorming.

strength is een float die bepaalt hoeveel de afbeelding moet worden ontvissenoogd. Probeer standaard 1.8 en verhoog of verlaag dit vandaaruit totdat de afbeelding er goed uitziet.

zoom is de mate waarmee op de afbeelding moet worden ingezoomd. Standaard 1.0.

x_corr floating point pixeloffset vanaf het midden. Kan negatief of positief zijn.

y_corr floating point pixeloffset vanaf het midden. Kan negatief of positief zijn.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Corrigeert perspectiefproblemen in de afbeelding door een 3D-rotatie van de framebuffer uit te voeren.

x_rotation is het aantal graden om de afbeelding in de framebuffer rond de x-as te roteren (d.w.z. dit draait de afbeelding op en neer).

y_rotation is het aantal graden om de afbeelding in de framebuffer rond de y-as te roteren (d.w.z. dit draait de afbeelding naar links en rechts).

z_rotation is het aantal graden om de afbeelding in de framebuffer rond de z-as te roteren (d.w.z. dit draait de afbeelding ter plekke).

x_translation is het aantal eenheden om de afbeelding na rotatie naar links of rechts te verplaatsen. Omdat deze translatie in 3D-ruimte wordt toegepast, zijn de eenheden geen pixels…

y_translation is het aantal eenheden om de afbeelding na rotatie naar boven of beneden te verplaatsen. Omdat deze translatie in 3D-ruimte wordt toegepast, zijn de eenheden geen pixels…

zoom is de mate waarmee op de afbeelding moet worden ingezoomd. Standaard 1.0.

fov is het gezichtsveld dat wordt gebruikt voor de interne 2D->3D-projectie. Naarmate fov 0 nadert, wordt de afbeelding op oneindig geplaatst; naarmate deze 180 nadert, wordt de afbeelding binnen de viewport geplaatst.

corners is een lijst van vier (x, y)-tuples die wordt gebruikt om een homografie op basis van 4 punten op te bouwen die de hoeken toewijst aan (0, 0), (image_width-1, 0), (image_width-1, image_height-1) en (0, image_height-1) voordat de 3D-rotatie wordt toegepast. Handig voor vogelvluchttransformaties.

Retourneert het image-object zodat je een andere methode kunt aanroepen met de .-notatie.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

Deze methode is niet beschikbaar op de OpenMV Cam M4.

Get-methoden

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

Berekent de gelijkenis tussen twee afbeeldingen met behulp van de Structural Similarity Index (SSIM). SSIM varieert van -1 (tegengesteld) tot 1 (identiek). Retourneert een image.similarity-object.

image is de afbeelding om mee te vergelijken (een image-object of een padstring, bijv. "test.jpg").

x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint en transform accepteren dezelfde waarden als Image.draw_image().

dssim indien True retourneert in plaats daarvan de Structural Dissimilarity Index (DSSIM), waarbij 0 identiek en 1 volledig verschillend betekent.

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

Berekent het genormaliseerde histogram over alle kleurkanalen voor een roi en retourneert een image.histogram-object. Ook beschikbaar als Image.get_hist() of Image.histogram().

thresholds is een lijst van (lo, hi)-tuples voor grijswaardenafbeeldingen, of (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi)-tuples voor RGB565-afbeeldingen. Indien doorgegeven, wordt het histogram alleen berekend over pixels binnen de drempelwaarden.

invert keert de drempelmatching om.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

bins (grijswaarden) of l_bins/a_bins/b_bins (RGB565) stellen het aantal histogrambins per kanaal in. Moet groter zijn dan 2. Standaard het maximale aantal bins per kanaal.

difference kan worden ingesteld op een image-object om te werken op het verschil tussen de huidige afbeelding en die afbeelding zonder een extra buffer.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Berekent het gemiddelde, de mediaan, de modus, de standaarddeviatie, het minimum, het maximum, het onderste kwartiel en het bovenste kwartiel voor alle kleurkanalen voor een roi en retourneert een image.statistics-object. Ook beschikbaar als Image.get_stats() of Image.statistics().

thresholds is een lijst van (lo, hi)-tuples voor grijswaardenafbeeldingen, of (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi)-tuples voor RGB565-afbeeldingen. Indien doorgegeven, worden statistieken alleen berekend over pixels binnen de drempelwaarden.

invert keert de drempelmatching om.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

bins (grijswaarden) of l_bins/a_bins/b_bins (RGB565) stellen het aantal histogrambins per kanaal in. Moet groter zijn dan 2. Standaard het maximale aantal bins per kanaal.

difference kan worden ingesteld op een image-object om te werken op het verschil tussen de huidige afbeelding en die afbeelding zonder een extra buffer.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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

Berekent een lineaire regressie (Theil-Sen) op alle pixels in de afbeelding die de drempel passeren. Retourneert een image.line-object, of None als er geen lijn werd gevonden.

thresholds is een lijst van (lo, hi)-tuples voor grijswaardenafbeeldingen, of (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi)-tuples voor RGB565-afbeeldingen.

invert keert de drempelmatching om.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

x_stride en y_stride bepalen hoeveel pixels worden overgeslagen tijdens het evalueren van de afbeelding.

area_threshold minimale begrenzingsvak-oppervlakte; kleinere resultaten retourneren None.

pixels_threshold minimaal aantal pixels dat de drempel passeert; kleinere resultaten retourneren None.

target_size is een (w, h)-tuple. De ROI wordt met area-schaling verkleind zodat deze binnen deze grootte past voordat het O(N^2)-algoritme wordt uitgevoerd. Standaard (80, 60).

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

Detectiemethoden

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]

Vindt alle blobs (verbonden pixelgebieden die een drempeltest doorstaan) in de afbeelding en retourneert een lijst van image.blob-objecten.

thresholds is een lijst van (lo, hi)-tuples voor grijswaardenafbeeldingen, of (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi)-tuples voor RGB565-afbeeldingen (LAB-kanalen). Er mogen maximaal 32 tuples worden doorgegeven. Verwisselde min/max-waarden worden automatisch gecorrigeerd; ontbrekende componenten krijgen standaard het maximale bereik.

invert keert de drempelmatching om.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

x_stride en y_stride bepalen hoeveel pixels worden overgeslagen bij het zoeken naar een blob. Verhoog dit als bekend is dat blobs groot zijn.

area_threshold minimale begrenzingsvak-oppervlakte; kleinere blobs worden gefilterd.

pixels_threshold minimaal aantal pixels dat de drempel passeert; kleinere blobs worden gefilterd.

merge indien True voegt blobs samen waarvan de begrenzende rechthoeken elkaar snijden. margin vergroot/verkleint de begrenzende rechthoeken die voor de doorsnijding worden gebruikt. Samengevoegde blobs combineren hun code-bitvectoren met OR (één bit per drempelwaarde).

threshold_cb wordt per blob aangeroepen na het toepassen van de drempelwaarde; retourneer True om te behouden, False om te filteren.

merge_cb wordt aangeroepen per paar blobs dat op het punt staat te worden samengevoegd; retourneer True om de samenvoeging toe te staan, False om deze te voorkomen.

x_hist_bins_max indien niet nul, vult elke blob met een x_histogram-projectie met dit aantal bins.

y_hist_bins_max indien niet nul, vult elke blob met een y_histogram-projectie met dit aantal bins.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

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]

Vindt alle oneindige lijnen in de afbeelding met behulp van de hough-transformatie. Retourneert een lijst van image.line-objecten.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

x_stride en y_stride bepalen hoeveel pixels worden overgeslagen tijdens de hough-transformatie.

threshold minimale lijnmagnitude (som van sobel-magnitudes langs de lijn); lijnen onder deze waarde worden eruit gefilterd.

theta_margin en rho_margin bepalen het samenvoegen: lijnen binnen deze drempelwaarden worden samengevoegd.

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen.

Deze methode is niet beschikbaar op de 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]

Vindt lijnsegmenten in de afbeelding. Retourneert een lijst van image.line-objecten.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

merge_distance is de maximale pixelafstand tussen twee segmenten om te worden samengevoegd.

max_theta_difference is het maximale thetaverschil in graden tussen segmenten om te worden samengevoegd.

Deze methode is niet beschikbaar op de 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]

Vindt cirkels in de afbeelding met behulp van de hough-transformatie. Retourneert een lijst van image.circle-objecten.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

x_stride en y_stride bepalen hoeveel pixels worden overgeslagen tijdens de hough-transformatie.

threshold minimale cirkelmagnitude (som van sobel-magnitudes langs de cirkel); cirkels onder deze waarde worden eruit gefilterd.

x_margin, y_margin en r_margin bepalen het samenvoegen: cirkels binnen deze drempelwaarden worden samengevoegd.

r_min minimale cirkelstraal. Standaard 2.

r_max maximale cirkelstraal. Standaard min(roi.w/2, roi.h/2).

r_step stapgrootte van de straal. Standaard 2.

Deze methode is niet beschikbaar op de OpenMV Cam M4.

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

Vindt rechthoeken in de afbeelding met behulp van het apriltag-quad-detectiealgoritme. Retourneert een lijst van image.rect-objecten.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

threshold minimale randmagnitude (som van sobel-magnitudes langs de rechthoekranden); rechthoeken onder deze waarde worden eruit gefilterd.

Deze methode is niet beschikbaar op de OpenMV Cam M4.

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

Vindt alle qrcodes binnen de roi en retourneert een lijst van image.qrcode-objecten.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

Deze methode is niet beschikbaar op de 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]

Vindt alle apriltags binnen de roi en retourneert een lijst van image.apriltag-objecten.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

families is een bitmasker van tag-families om te decoderen. Het is de logische OR van:

Standaard image.TAG36H11. De detectietijd schaalt met het aantal ingeschakelde families.

fx en fy zijn de X- en Y-brandpuntsafstanden van de camera in pixels.

cx en cy zijn het midden van de afbeelding, doorgaans image.width()/2 en image.height()/2.

Niet ondersteund voor gecomprimeerde afbeeldingen.

Deze methode is niet beschikbaar op de OpenMV Cam M4.

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

Vindt alle datamatrices binnen de roi en retourneert een lijst van image.datamatrix-objecten.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

effort bepaalt hoeveel tijd er wordt besteed aan het proberen te vinden van data matrix-matches. Hogere waarden verbeteren de detectie ten koste van de framesnelheid. Waarden onder ~160 slagen er niet in te detecteren; waarden boven ~240 leveren afnemende meeropbrengsten. Standaard 200.

Deze methode is niet beschikbaar op de OpenMV Cam M4.

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

Vindt alle 1D-barcodes binnen de roi en retourneert een lijst van image.barcode-objecten. Scant zowel horizontaal als verticaal.

Ondersteunde barcodetypen: 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 is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

Deze methode is niet beschikbaar op de 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

Vindt de translatie-offset van deze afbeelding ten opzichte van template met behulp van fasecorrelatie. Retourneert een image.displacement-object.

roi is de aandachtsgebied-rechthoek (x, y, w, h). Standaard de afbeeldingsrechthoek.

template_roi is het aandachtsgebied van de template. Standaard de rechthoek van de template-afbeelding. roi en template_roi moeten dezelfde breedte en hoogte hebben.

logpolar indien True retourneert rotatie-/schaalverandering in plaats van x/y-translatie.

fix_rotation_scale indien True berekent de verplaatsing na het uitlijnen van rotatie en schaal (alleen zinvol wanneer logpolar=False).

Notitie

Gebruik deze methode op afbeeldingsgroottes die een macht van 2 zijn (bijv. sensor.B64X64).

Niet ondersteund voor gecomprimeerde afbeeldingen of bayer-afbeeldingen. Niet beschikbaar op de 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

Probeert de eerste locatie in de afbeelding te vinden waar template overeenkomt met behulp van Normalized Cross Correlation. Retourneert een begrenzingsvak-tuple (x, y, w, h), of None.

template is een grijswaardenafbeelding om te matchen met deze afbeelding.

threshold is een waarde (0.0-1.0). Hogere waarden verminderen valse positieven en detecties; lagere waarden doen het tegenovergestelde.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

step is het aantal pixels dat tijdens het zoeken wordt overgeslagen (alleen gebruikt in de image.SEARCH_EX-modus).

search is image.SEARCH_DS (snellere diamond search) of image.SEARCH_EX (uitputtende zoekopdracht).

Werkt alleen op grijswaardenafbeeldingen.

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

Doorzoekt de afbeelding naar gebieden die overeenkomen met de doorgegeven Haar Cascade en retourneert een lijst van begrenzingsvak-tuples (x, y, w, h). Retourneert een lege lijst als er geen kenmerken worden gevonden.

cascade is een Haar Cascade-object (zie image.HaarCascade()).

threshold (0.0-1.0). Lagere waarden verhogen het detectiepercentage en het valse-positievenpercentage.

scale moet groter zijn dan 1.0. Hogere waarden draaien sneller maar produceren slechtere matches.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

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

Zoekt naar de pupil in een aandachtsgebied-tuple (x, y, w, h) rond een oog. Retourneert de (x, y)-locatie van de pupil, of (0, 0) als er geen wordt gevonden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h).

Werkt alleen op grijswaardenafbeeldingen.

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

Extraheert LBP-sleutelpunten (local-binary-patterns) uit het aandachtsgebied. Gebruik image.match_descriptor() om twee descriptors te vergelijken.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h).

Werkt alleen op grijswaardenafbeeldingen.

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

Extraheert ORB-sleutelpunten uit het aandachtsgebied. Gebruik image.match_descriptor() om twee descriptors te vergelijken. Retourneert None als er geen sleutelpunten werden gevonden.

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.

threshold (0-255) bepaalt het aantal geëxtraheerde hoeken. Lagere drempelwaarden produceren meer hoeken. Gebruik ~20 voor AGAST, ~60-80 voor FAST.

normalized indien True schakelt sleutelpuntextractie met meerdere resoluties uit.

scale_factor moet groter zijn dan 1.0. Hogere waarden draaien sneller maar produceren slechtere matches.

max_keypoints is het maximale aantal te behouden sleutelpunten.

corner_detector is image.CORNER_FAST of image.CORNER_AGAST.

Werkt alleen op grijswaardenafbeeldingen.

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

Zet de afbeelding om naar zwart-wit en laat alleen de randen als witte pixels over.

  • image.EDGE_SIMPLE - Eenvoudig hoogdoorlaatfilteralgoritme met drempelwaarde.

  • image.EDGE_CANNY - Canny-randdetectiealgoritme.

threshold is een tuple met twee waarden die een lage drempelwaarde en een hoge drempelwaarde bevat. Je kunt de kwaliteit van de randen regelen door deze waarden aan te passen. Standaard (100, 200).

Werkt alleen op grijswaardenafbeeldingen.

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

Vervangt de pixels in de ROI door HOG-lijnen (histogram of orientated gradients).

roi is de aandachtsgebied-rechthoektuple (x, y, w, h). Indien niet opgegeven, is deze gelijk aan de afbeeldingsrechthoek. Alleen pixels binnen de roi worden bewerkt.

Werkt alleen op grijswaardenafbeeldingen.

Deze methode is niet beschikbaar op de OpenMV Cam M4.

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

Neemt een dubbelbrede grijswaardenafbeelding die de uitvoer van twee naast elkaar geplaatste camerasensoren bevat en vervangt de ene helft door de stereo-disparity-afbeelding (elke pixel vertegenwoordigt diepte). Bijv. voor twee 320x240-camera’s geef je een 640x240-afbeelding door.

reversed Standaard wordt de linkerafbeelding vergeleken met de rechter en wordt de rechterafbeelding vervangen. Stel in op True om rechts->links te vergelijken en de linkerafbeelding te vervangen.

max_disparity is de maximale afstand (1-255) om te zoeken naar een overeenkomend pixelblok met behulp van de som van absolute verschillen. Grotere waarden duren exponentieel langer maar produceren uitvoer van hogere kwaliteit.

threshold als de som van absolute verschillen tussen twee blokken kleiner is dan of gelijk is aan deze drempelwaarde, worden ze als overeenkomend beschouwd.

Voert selective search uit op de afbeelding en retourneert een lijst van begrenzingsvak-tuples (x, y, w, h) van objectvoorstellen.

threshold is de segmentatiedrempelwaarde; hogere waarden produceren minder/grotere gebieden.

size is de minimale gebiedsgrootte na het samenvoegen.

a1, a2, a3 zijn de gewichten voor kleur-/textuur-/grootte-gelijkenis die worden gebruikt bij het samenvoegen van gebieden.