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()ofto_rgb565().
Waar Image-objecten vandaan komen¶
Er zijn vier manieren om een Image te verkrijgen:
Uit de camera-framebuffer –
csi.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 alscopy_to_fb=True).Uit een ndarray – geef een float32-array van
(h, w)of(h, w, 3)door. De pixels worden geschaald van0.0 -- 255.0naar 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 eenbuffer=-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¶
Indexeren –
img[i]leest pixeli(lineair, rij-gebaseerd).img[i] = valueschrijft 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.Lengte –
len(img)retourneert het aantal pixels voor ongecomprimeerde formaten of het aantal bytes voor gecomprimeerde formaten.Iteratie –
for px in img: ...doorloopt de pixelarray in dezelfde volgorde als indexering met[].Bytes-achtig –
Imageondersteunt het leesbufferprotocol, dus je kunt het rechtstreeks doorgeven aan alles dat eenbytes/bytearrayaccepteert (bijv.uart.write(img),socket.send(img),hashlib.sha256(img)). Gebruik in plaats daarvanbytearray()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:
image.AREA: Gebruik area-schaling bij het verkleinen in plaats van de standaard nearest neighbor.
image.BILINEAR: Gebruik bilineaire schaling in plaats van de standaard nearest neighbor-schaling.
image.BICUBIC: Gebruik bicubische schaling in plaats van de standaard nearest neighbor-schaling.
image.CENTER: Centreer de getekende afbeelding op het beeldscherm. Dit wordt toegepast na het schalen.
image.HMIRROR: Spiegel de afbeelding horizontaal.
image.VFLIP: Keer de afbeelding verticaal om.
image.TRANSPOSE: Transponeer de afbeelding (verwissel x/y).
image.EXTRACT_RGB_CHANNEL_FIRST: Voer rgb_channel-extractie uit vóór het schalen.
image.APPLY_COLOR_PALETTE_FIRST: Pas het kleurenpalet toe vóór het schalen.
image.SCALE_ASPECT_KEEP: Schaal de getekende afbeelding zodat deze binnen het beeldscherm past.
image.SCALE_ASPECT_EXPAND: Schaal de getekende afbeelding zodat deze het beeldscherm vult (resulteert in bijsnijden)
image.SCALE_ASPECT_IGNORE: Schaal de getekende afbeelding zodat deze het beeldscherm vult (resulteert in uitrekken).
image.ROTATE_90: Roteer de afbeelding 90 graden (dit is gewoon VFLIP | TRANSPOSE).
image.ROTATE_180: Roteer de afbeelding 180 graden (dit is gewoon HMIRROR | VFLIP).
image.ROTATE_270: Roteer de afbeelding 270 graden (dit is gewoon HMIRROR | TRANSPOSE).
image.BLACK_BACKGROUND: Ga ervan uit dat de achtergrondafbeelding waarop wordt getekend zwart is, wat het mengen versnelt. Alleen ondersteund doorImage.draw_image()enImage.get_similarity().
- class image.Image(arg: str | int | ndarray, height: int = -1, pixformat: int = -1, *, buffer: bytes | bytearray | memoryview | None = None, copy_to_fb: bool = False)¶
Als
argeen string is, maakt dit een nieuw image-object op basis van een bestand op het padarg. Ondersteunt het laden van bmp/pgm/ppm/jpg/jpeg/png-afbeeldingsbestanden van schijf. Alscopy_to_fbwaar is, wordt de afbeelding naar de framebuffer gekopieerd in plaats van op de heap te worden toegewezen.Als
argeenndarrayis, maakt dit een nieuw image-object op basis van dendarray.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-ndarraysondersteund. Als je bij het maken van een afbeelding op deze manier eenbuffer-argument doorgeeft, wordt dit gebruikt om de afbeeldingsgegevens op te slaan in plaats van ruimte op de heap toe te wijzen. Alscopy_to_fbwaar is, wordt de afbeelding naar de framebuffer gekopieerd in plaats van op de heap te worden toegewezen of debufferte gebruiken.Als
argeenintis, wordt dit beschouwd als de breedte van een nieuwe afbeelding en moeten er eenheight-waarde en eenformat-waarde volgen om een nieuw leeg image-object te maken.formatkan elke pixformat-waarde voor afbeeldingen zijn, zoalsimage.GRAYSCALE. De afbeelding wordt geïnitialiseerd op allemaal nullen. Houd er rekening mee dat voor gecomprimeerde afbeeldingsformaten eenbuffer-waarde wordt verwacht.bufferwordt op deze manier beschouwd als de bron van de afbeeldingsgegevens voor het maken van afbeeldingen. Indien gebruikt metcopy_to_fbworden de gegevens uitbuffernaar de framebuffer gekopieerd. Als je een JPEG-afbeelding wilt maken op basis van een JPEG-bytes()- ofbytearray()-object, kun jewidth,height,image.JPEGvoor de JPEG doorgeven samen met het instellen vanbufferop de JPEG-bytestream om een JPEG-afbeelding te maken.Afbeeldingen ondersteunen de “[]”-notatie. Doe
image[index] = 8/16-bit valueom een afbeeldingspixel toe te wijzen ofimage[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¶
- format() int¶
Retourneert
image.GRAYSCALEvoor grijswaardenafbeeldingen,image.RGB565voor RGB565-afbeeldingen,image.BAYERvoor bayer-patroonafbeeldingen enimage.JPEGvoor JPEG-afbeeldingen.
- 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 eenbytes-achtig object vereist. Dit is alleen-lezen toegang. Roepbytearray()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
xofybuiten de afbeelding valt.xenymogen ofwel afzonderlijk ofwel als een tuple worden doorgegeven.rgbtupleindien 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()enImage.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 metrgbtupleingesteld, zalImage.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 waardepixel.Retourneert het image-object zodat je een andere methode kunt aanroepen met de
.-notatie.xenymogen ofwel afzonderlijk ofwel als een tuple worden doorgegeven.pixelmag 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()enImage.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.dtypekanb,Boffzijn voor het maken van een signed 8-bits, unsigned 8-bits of 32-bits floating pointndarray. GRAYSCALE-afbeeldingen worden rechtstreeks geconverteerd naar unsigned 8-bitsndarray-objecten. Voor signed 8-bitsndarray-objecten worden de waarden (0:255) toegewezen aan (-127:128). Voor float 32-bitsndarray-objecten worden de waarden toegewezen aan (0.0:255.0). RGB565-afbeeldingen worden geconverteerd naar 3-kanaalsndarray-objecten en hetzelfde hierboven beschreven proces voor GRAYSCALE-afbeeldingen wordt op elk kanaal toegepast afhankelijk vandtype. Houd er rekening mee datdtypeook de gehele waarden (bijv. viaord()) van respectievelijkb,Benfaccepteert.bufferindien nietNoneis eenbytearray-object dat als buffer voor dendarraywordt gebruikt. IndienNonewordt een nieuwe buffer op de heap toegewezen om dendarray-afbeeldingsgegevens op te slaan. Je kunt hetbuffer-argument gebruiken om dendarrayrechtstreeks in een vooraf toegewezen buffer te plaatsen, wat een heap-toewijzing en een kopieerbewerking bespaart.De geretourneerde
ndarrayheeft 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. 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- ensensor.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 voormask-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 opsensor.GRAYSCALE- ofsensor.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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekanimage.PALETTE_DEPTHzijn 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.qualitybepaalt de compressiekwaliteit van de jpeg-afbeelding. De waarde kan tussen 0 en 100 liggen.subsamplingkan zijn:image.JPEG_SUBSAMPLING_AUTO: Gebruik de beste subsampling voor de afbeelding op basis van de kwaliteit.image.JPEG_SUBSAMPLING_444: Gebruik 4:4:4-subsampling.image.JPEG_SUBSAMPLING_422: Gebruik 4:2:2-subsampling.image.JPEG_SUBSAMPLING_420: Gebruik 4:2:0-subsampling.
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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. Dit heeft geen speciaal effect als de afbeelding zich al in de framebuffer bevindt.qualitybepaalt de compressiekwaliteit van de jpeg-afbeelding. De waarde kan tussen 0 en 100 liggen.subsamplingkan zijn:image.JPEG_SUBSAMPLING_AUTO: Gebruik de beste subsampling voor de afbeelding op basis van de kwaliteit.image.JPEG_SUBSAMPLING_444: Gebruik 4:4:4-subsampling.image.JPEG_SUBSAMPLING_422: Gebruik 4:2:2-subsampling.image.JPEG_SUBSAMPLING_420: Gebruik 4:2:0-subsampling.
Retourneert het image-object zodat je een andere methode kunt aanroepen met de
.-notatie.Notitie
Image.compressis een alias voorImage.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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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_fbindien 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (met uitzondering vanimage.BLACK_BACKGROUND, dat hier niet wordt ondersteund).transformis een 3x3-ndarraydie 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.copyindien True maakt een deep-copy op de heap van de geconverteerde afbeelding in plaats van de originele afbeelding ter plekke te converteren.copy_to_fbindien True wordt de afbeelding rechtstreeks in de framebuffer geladen.copy_to_fbheeft voorrang opcopy. 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.scaleis een alias voorImage.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.
roiis 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.qualityis 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.
Tekenmethoden¶
- clear(mask: Image | None = None) Image¶
Stelt alle pixels in de afbeelding in op nul (zeer snel).
maskis 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).
coloris 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.thicknessbepaalt 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).
coloris 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.thicknessbepaalt hoe dik de lijnen in pixels zijn.Geef
fillingesteld 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).
coloris 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.thicknessbepaalt hoe dik de randen in pixels zijn.Geef
fillingesteld 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).
coloris 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.thicknessbepaalt hoe dik de randen in pixels zijn.Geef
fillingesteld 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).
textis een string om naar de afbeelding te schrijven.\n-,\r- en\r\n-regeleinden verplaatsen de cursor naar de volgende regel.coloris 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.scalekan 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_spacingstelt je in staat om (indien positief) x-pixels tussen tekens toe te voegen of (indien negatief) af te trekken.y_spacingstelt 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_spacestaat 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_rotationmag 0, 90, 180, 270 zijn om elk teken in de string met deze hoeveelheid te roteren.char_hmirrorindien True spiegelt alle tekens in de string horizontaal.char_vflipindien True keert alle tekens in de string verticaal om.string_rotationmag 0, 90, 180, 270 zijn om de string met deze hoeveelheid te roteren.string_hmirrorindien True spiegelt de string horizontaal.string_vflipindien 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).
coloris 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.sizebepaalt hoe ver de lijnen van het kruis zich uitstrekken.thicknessbepaalt 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).
coloris 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.thicknessbepaalt 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.
detectionis 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).color1is de kleur van de rechthoek encolor2is de kleur van het centroïdekruis.sizeis de grootte van het centroïdekruis,thicknessbepaalt de breedte van de omtrek enfillvult de rechthoek.labelindien opgegeven wordt nabij de rechthoek getekend, verschoven metlabel_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)].coloris 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.sizeindien groter dan 0 zorgt ervoor dat de hoeken worden getekend als cirkels met straalsize.thicknessbepaalt hoe dik de lijn in pixels is.Geef
fillingesteld 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
imagewaarvan 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_scalebepaalt 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 alsy_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.y_scalebepaalt 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 alsx_scaleniet is opgegeven, deze gelijk wordt aanx_scaleom de beeldverhouding te behouden.roiis 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_channelis 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 bijvoorbeeldrgb_channel=1doorgeeft, extraheert dit het groene kanaal van de RGB565-bronafbeelding en tekent dit in grijswaarden op de bestemmingsafbeelding.alphabepaalt 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_paletteindien nietNonekan 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 nargb_channel-extractie indien gebruikt.alpha_paletteindien nietNonekan een GRAYSCALE-afbeelding van in totaal 256 pixels zijn die als alfapalet wordt gebruikt en dealpha-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 nargb_channel-extractie indien gebruikt.hintis een logische OR van de vlaggen die worden vermeld in Hint-vlaggen (inclusiefimage.BLACK_BACKGROUND, dat hier wel wordt ondersteund).transformis een 3x3-ndarraydie 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.
coloris 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.sizebepaalt hoe groot de sleutelpunten zijn.thicknessbepaalt hoe dik de lijn in pixels is.Geef
fillingesteld 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_thresholdbepaalt hoeveel een willekeurige pixel in het vulgebied mag verschillen van de oorspronkelijke startpixel.floating_thresholdbepaalt hoeveel een willekeurige pixel in het vulgebied mag verschillen van willekeurige naburige pixels.coloris 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
invertals True om alles buiten het flood-fill-verbonden gebied opnieuw in te kleuren.Geef
clear_backgroundals True om de rest van de pixels die flood-fill niet opnieuw heeft ingekleurd op nul te zetten.maskis 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 eenImagevoor visualisatie. De afbeeldingsbuffer moet een 320x320 GRAYSCALE-afbeelding zijn.Voor elke
csi.PIX_ON_EVENT-rij wordt+contrasttoegevoegd aan de pixel van het event; voor elkecsi.PIX_OFF_EVENT-rij wordt-contrastvan de pixel afgetrokken. Trigger-events worden genegeerd. Pixelwaarden worden begrensd tot 0-255.clearindien True reset de afbeeldingsbuffer naarbrightnessvóó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).brightnessbepaalt de middengrijze basislijn waarnaar de buffer wordt gereset wanneerclearTrue is. De standaardwaarde 128 plaatst ON-events aan de heldere kant en OFF-events aan de donkere kant met gelijke speelruimte.contrastbepaalt 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
thresholdsvalt.thresholdsis 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.invertkeert de drempelmatching om.zeroindien True zet de pixels die de drempel passeren op nul en laat de overige ongemoeid.maskis een binaire afbeelding die als masker op pixelniveau wordt gebruikt; alleen pixels die in het masker zijn ingesteld, worden gewijzigd.to_bitmapindien True converteert de afbeeldingsgegevens naar een bitmap van 1 bit per pixel. Voor zeer kleine afbeeldingen kan ditcopy=Truevereisen.copyindien 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 - pixelvoor 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.
imagekan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).maskis 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.
imagekan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).maskis 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.
imagekan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).maskis 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.
imagekan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).maskis 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.
imagekan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).maskis 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.
imagekan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).maskis 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.
maxindien 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.
gammapastpow(pixel, 1/gamma)toe na normalisatie. Waarden groter dan 1.0 maken lichter; kleiner dan 1.0 maken donkerder.contrastpastpixel * contrasttoe na normalisatie.brightnesspastpixel + brightnesstoe na normalisatie.Retourneert het image-object zodat je een andere methode kunt aanroepen met de
.-notatie.Niet ondersteund voor gecomprimeerde of bayer/yuv-afbeeldingen.
Rekenmethoden¶
- negate() Image¶
Alias voor
Image.invert.
- replace(image: Image | None = None, **kwargs) Image¶
Alias voor
Image.draw_image(). Vervangt deze afbeelding doorimage(of transformeert deze afbeelding ter plekke alsimagewordt weggelaten) met de standaarddraw_image-keyword-argumenten. Hettransform-argument is een 3x3-ndarraydie 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.
imagekan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).maskis 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
imagepixelsgewijs af van deze afbeelding (self - image).imagekan ofwel een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).maskis 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 - selfpixelsgewijs. Verder identiek aanImage.sub().
- min(image: Image, mask: Image | None = None) Image¶
Retourneert pixelsgewijs de minimumafbeelding van twee afbeeldingen.
imagekan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).maskis 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.
imagekan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).maskis 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||).
imagekan een image-object zijn, een pad naar een ongecomprimeerd afbeeldingsbestand (bmp/pgm/ppm), of een scalaire waarde (RGB888-tuple of onderliggende pixelwaarde).maskis 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-mengtimagein deze afbeelding.alphais een geheel getal 0-256; waarden dichter bij 256 bevoordelen de bronafbeelding. Accepteert alle keyword-argumenten vanImage.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.
adaptiveindien True voert adaptieve histogramegalisatie uit (langzamer maar over het algemeen beter).clip_limitbeperkt het contrast in de adaptieve variant (een kleine waarde zoals 10 levert goede CLAHE-resultaten op).maskis 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 danthresholdnaburige pixels gewist zijn (werkt als standaard erode alsthresholdNone is).maskis 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 danthresholdnaburige pixels ingesteld zijn (werkt als standaard dilate alsthresholdNone is).maskis 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()enImage.dilate().maskis 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()enImage.erode().maskis 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.maskis 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.maskis 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.
sizeis de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.thresholdindien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen.offsetverschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit).invertkeert de binaire uitvoer om.maskis 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).
sizeis de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.percentileis het percentiel dat uit elke kernel wordt geselecteerd (0 = min, 0.5 = mediaan, 1.0 = max). Standaard 0.5.thresholdindien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen.offsetverschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit).invertkeert de binaire uitvoer om.maskis 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.
sizeis de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.thresholdindien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen.offsetverschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit).invertkeert de binaire uitvoer om.maskis 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.
sizeis de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.biasbepaalt de min/max-menging. 0 voor alleen min-filtering, 1.0 voor alleen max-filtering. Door debiaste gebruiken kun je de afbeelding min/max-filteren.thresholdindien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen.offsetverschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit).invertkeert de binaire uitvoer om.maskis 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.
sizebepaalt de kernelgrootte, die((size*2)+1)x((size*2)+1)elementen moet zijn.kernelis 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.mulis een multiplicatieve contrastschaal (standaard 1.0).addis een additieve helderheidsoffset (standaard 0.0).thresholdindien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen.offsetverschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit).invertkeert de binaire uitvoer om.maskis 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.
sizeis de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.unsharpindien True voert een unsharp mask-bewerking uit (verscherpt randen) in plaats van een gewone gaussian.mulis een multiplicatieve contrastschaal (standaard 1.0).addis een additieve helderheidsoffset (standaard 0.0).thresholdindien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen.offsetverschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit).invertkeert de binaire uitvoer om.maskis 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.
sizeis de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.sharpenindien True verscherpt de afbeelding in plaats van de ruwe, niet-gedrempelde randrespons uit te voeren.mulis een multiplicatieve contrastschaal (standaard 1.0).addis een additieve helderheidsoffset (standaard 0.0).thresholdindien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen.offsetverschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit).invertkeert de binaire uitvoer om.maskis 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).
sizeis de kernelgrootte. Gebruik 1 (3x3-kernel), 2 (5x5-kernel), enz.color_sigmabepaalt de kleurmatchingstolerantie; grotere waarden produceren meer kleurvervaging.space_sigmabepaalt de ruimtelijke vervaging; grotere waarden produceren meer pixelvervaging.thresholdindien True past adaptieve drempelwaarde toe op de filteruitvoer om een binaire afbeelding te krijgen.offsetverschuift de binarisatie (negatief maakt meer pixels wit, positief maakt er minder wit).invertkeert de binaire uitvoer om.maskis 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=Truein om in de tegenovergestelde richting te herprojecteren.xenygeven de middelpuntcoördinaat van de transformatie in afbeeldingspixels op. AlsxNoneis (de standaard) wordt deze ingesteld op de helft van de afbeeldingsbreedte; evenzo isystandaard 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=Truein om in de tegenovergestelde richting te herprojecteren.xenygeven de middelpuntcoördinaat van de transformatie in afbeeldingspixels op. AlsxNoneis (de standaard) wordt deze ingesteld op de helft van de afbeeldingsbreedte; evenzo isystandaard 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.
strengthis 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.zoomis de mate waarmee op de afbeelding moet worden ingezoomd. Standaard 1.0.x_corrfloating point pixeloffset vanaf het midden. Kan negatief of positief zijn.y_corrfloating 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_rotationis 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_rotationis 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_rotationis 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_translationis 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_translationis 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…zoomis de mate waarmee op de afbeelding moet worden ingezoomd. Standaard 1.0.fovis het gezichtsveld dat wordt gebruikt voor de interne 2D->3D-projectie. Naarmatefov0 nadert, wordt de afbeelding op oneindig geplaatst; naarmate deze 180 nadert, wordt de afbeelding binnen de viewport geplaatst.cornersis 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.imageis 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,hintentransformaccepteren dezelfde waarden alsImage.draw_image().dssimindien 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
roien retourneert eenimage.histogram-object. Ook beschikbaar alsImage.get_hist()ofImage.histogram().thresholdsis 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.invertkeert de drempelmatching om.roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.bins(grijswaarden) ofl_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.differencekan 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
roien retourneert eenimage.statistics-object. Ook beschikbaar alsImage.get_stats()ofImage.statistics().thresholdsis 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.invertkeert de drempelmatching om.roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.bins(grijswaarden) ofl_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.differencekan 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.thresholdsis 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.invertkeert de drempelmatching om.roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.x_strideeny_stridebepalen hoeveel pixels worden overgeslagen tijdens het evalueren van de afbeelding.area_thresholdminimale begrenzingsvak-oppervlakte; kleinere resultaten retourneren None.pixels_thresholdminimaal aantal pixels dat de drempel passeert; kleinere resultaten retourneren None.target_sizeis 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.thresholdsis 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.invertkeert de drempelmatching om.roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.x_strideeny_stridebepalen hoeveel pixels worden overgeslagen bij het zoeken naar een blob. Verhoog dit als bekend is dat blobs groot zijn.area_thresholdminimale begrenzingsvak-oppervlakte; kleinere blobs worden gefilterd.pixels_thresholdminimaal aantal pixels dat de drempel passeert; kleinere blobs worden gefilterd.mergeindien True voegt blobs samen waarvan de begrenzende rechthoeken elkaar snijden.marginvergroot/verkleint de begrenzende rechthoeken die voor de doorsnijding worden gebruikt. Samengevoegde blobs combineren huncode-bitvectoren met OR (één bit per drempelwaarde).threshold_cbwordt per blob aangeroepen na het toepassen van de drempelwaarde; retourneer True om te behouden, False om te filteren.merge_cbwordt 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_maxindien niet nul, vult elke blob met een x_histogram-projectie met dit aantal bins.y_hist_bins_maxindien 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.roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.x_strideeny_stridebepalen hoeveel pixels worden overgeslagen tijdens de hough-transformatie.thresholdminimale lijnmagnitude (som van sobel-magnitudes langs de lijn); lijnen onder deze waarde worden eruit gefilterd.theta_marginenrho_marginbepalen 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.roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.merge_distanceis de maximale pixelafstand tussen twee segmenten om te worden samengevoegd.max_theta_differenceis 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.roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.x_strideeny_stridebepalen hoeveel pixels worden overgeslagen tijdens de hough-transformatie.thresholdminimale cirkelmagnitude (som van sobel-magnitudes langs de cirkel); cirkels onder deze waarde worden eruit gefilterd.x_margin,y_marginenr_marginbepalen het samenvoegen: cirkels binnen deze drempelwaarden worden samengevoegd.r_minminimale cirkelstraal. Standaard 2.r_maxmaximale cirkelstraal. Standaardmin(roi.w/2, roi.h/2).r_stepstapgrootte 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.roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.thresholdminimale 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
roien retourneert een lijst vanimage.qrcode-objecten.roiis 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
roien retourneert een lijst vanimage.apriltag-objecten.roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.familiesis 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.fxenfyzijn de X- en Y-brandpuntsafstanden van de camera in pixels.cxencyzijn het midden van de afbeelding, doorgaansimage.width()/2enimage.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
roien retourneert een lijst vanimage.datamatrix-objecten.roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.effortbepaalt 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
roien retourneert een lijst vanimage.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.roiis 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
templatemet behulp van fasecorrelatie. Retourneert eenimage.displacement-object.roiis de aandachtsgebied-rechthoek (x, y, w, h). Standaard de afbeeldingsrechthoek.template_roiis het aandachtsgebied van de template. Standaard de rechthoek van de template-afbeelding.roientemplate_roimoeten dezelfde breedte en hoogte hebben.logpolarindien True retourneert rotatie-/schaalverandering in plaats van x/y-translatie.fix_rotation_scaleindien True berekent de verplaatsing na het uitlijnen van rotatie en schaal (alleen zinvol wanneerlogpolar=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
templateovereenkomt met behulp van Normalized Cross Correlation. Retourneert een begrenzingsvak-tuple (x, y, w, h), of None.templateis een grijswaardenafbeelding om te matchen met deze afbeelding.thresholdis een waarde (0.0-1.0). Hogere waarden verminderen valse positieven en detecties; lagere waarden doen het tegenovergestelde.roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Standaard de afbeeldingsrechthoek.stepis het aantal pixels dat tijdens het zoeken wordt overgeslagen (alleen gebruikt in deimage.SEARCH_EX-modus).searchisimage.SEARCH_DS(snellere diamond search) ofimage.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.
cascadeis een Haar Cascade-object (zieimage.HaarCascade()).threshold(0.0-1.0). Lagere waarden verhogen het detectiepercentage en het valse-positievenpercentage.scalemoet groter zijn dan 1.0. Hogere waarden draaien sneller maar produceren slechtere matches.roiis 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.
roiis 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.roiis 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.roiis 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.normalizedindien True schakelt sleutelpuntextractie met meerdere resoluties uit.scale_factormoet groter zijn dan 1.0. Hogere waarden draaien sneller maar produceren slechtere matches.max_keypointsis het maximale aantal te behouden sleutelpunten.corner_detectorisimage.CORNER_FASTofimage.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.
thresholdis 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).
roiis de aandachtsgebied-rechthoektuple (x, y, w, h). Indien niet opgegeven, is deze gelijk aan de afbeeldingsrechthoek. Alleen pixels binnen deroiworden 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.
reversedStandaard 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_disparityis 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.thresholdals de som van absolute verschillen tussen twee blokken kleiner is dan of gelijk is aan deze drempelwaarde, worden ze als overeenkomend beschouwd.
- selective_search(threshold: int = 500, size: int = 20, a1: float = 1.0, a2: float = 1.0, a3: float = 1.0) List[Tuple[int, int, int, int]]¶
Voert selective search uit op de afbeelding en retourneert een lijst van begrenzingsvak-tuples (x, y, w, h) van objectvoorstellen.
thresholdis de segmentatiedrempelwaarde; hogere waarden produceren minder/grotere gebieden.sizeis de minimale gebiedsgrootte na het samenvoegen.a1,a2,a3zijn de gewichten voor kleur-/textuur-/grootte-gelijkenis die worden gebruikt bij het samenvoegen van gebieden.