třída Image – objekt obrazu

Image je ústředním datovým typem modulu image – jde o pixelový buffer v paměti, nad nímž pracuje každá vykreslovací rutina, každý filtr, každá geometrická transformace a každá rutina pro extrakci příznaků. Každý snímek vystupující z csi.CSI.snapshot() je objekt Image; stejně tak každý snímek načtený z disku, dekódovaný z JPEG nebo PNG, alokovaný z numpy-stylového pole ndarray nebo vytvořený jako prázdné kreslicí plátno.

Objekt Image je popsán třemi čísly – width, height a pixformat – plus souvislým pixelovým bufferem. Formát pixelů určuje jak rozložení v paměti, tak i to, které operace jsou k dispozici:

  • BINARY (1 bpp) – 1 bit na pixel; používá se pro morfologii a prahování.

  • GRAYSCALE (8 bpp) – 1 bajt na pixel; kanonický formát pro většinu metod počítačového vidění (AprilTag, hrany, ORB, optický tok).

  • RGB565 (16 bpp) – 2 bajty na pixel (5R/6G/5B); výchozí barevný formát.

  • BAYER (8 bpp) – surová data Bayerovy mozaiky přímo ze senzoru. Většina metod počítačového vidění není na Bayerových obrazech dostupná; nejprve proveďte debayering do GRAYSCALE / RGB565.

  • YUV422 (16 bpp) – barva s chroma podvzorkováním 4:2:2, dva bajty na pixel. Přímo na YUV422 funguje jen několik metod.

  • JPEG / PNG – komprimované buffery. Operace na úrovni pixelů vyžadují nejprve to_grayscale() nebo to_rgb565().

Odkud objekty Image pocházejí

Objekt Image lze získat čtyřmi způsoby:

  • Ze snímkového bufferu kamerycsi.CSI().snapshot() vrací další zachycený snímek. Vrácený objekt je tenká obálka kolem paměti snímkového bufferu kamery, takže jakákoli kreslicí / filtrovací operace na něm mění to, co se odesílá do náhledu v IDE a na displej.

  • Ze souboru – předejte konstruktoru Image řetězec s cestou. Formáty BMP, PGM, PPM, JPEG a PNG se dekódují přímo do RAM (nebo do snímkového bufferu kamery, pokud je copy_to_fb=True).

  • Z ndarray – předejte float32 pole tvaru (h, w) nebo (h, w, 3). Pixely se škálují z rozsahu 0.0 -- 255.0 do formátu GRAYSCALE, resp. RGB565.

  • Prázdný – předejte (width, height, pixformat) pro alokaci kreslicí plochy vyplněné nulami. Pro komprimované formáty pixelů (JPEG / PNG) je vyžadován argument buffer=, který obsahuje komprimovaný proud bajtů.

Typická smyčka zachycení-zpracování-zobrazení

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.

Indexování, délka, iterace a přístup jako k bajtům

  • Indexováníimg[i] čte pixel i (lineárně, po řádcích). img[i] = value jej zapisuje. Pixely grayscale / Bayer jsou 8bitová celá čísla, pixely RGB565 / YUV422 jsou 16bitová zabalená celá čísla, binární pixely jsou 0 / 1. U obrazů JPEG / PNG je indexovým prostorem komprimovaný proud bajtů, nikoli pixely.

  • Délkalen(img) vrací počet pixelů u nekomprimovaných formátů nebo počet bajtů u komprimovaných formátů.

  • Iteracefor px in img: ... prochází pole pixelů ve stejném pořadí jako indexování pomocí [].

  • Přístup jako k bajtůmImage poskytuje protokol pro čtení bufferu, takže jej můžete předat přímo čemukoli, co přijímá bytes / bytearray (např. uart.write(img), socket.send(img), hashlib.sha256(img)). Pro získání pohledu pro čtení i zápis použijte místo toho bytearray().

Příznaky nápovědy (hint)

Mnoho metod Image přijímá argument hint, který je logickým OR následujících příznaků:

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

Pokud je arg řetězec, vytvoří se nový objekt obrazu ze souboru na cestě arg. Podporováno je načítání souborů obrazů bmp/pgm/ppm/jpg/jpeg/png z disku. Pokud je copy_to_fb true, obraz se zkopíruje do snímkového bufferu namísto alokace na haldě.

Pokud je arg typu ndarray, vytvoří se nový objekt obrazu z ndarray. Objekty ndarray s tvarem (w, h) jsou považovány za obrazy ve stupních šedi, (w, h, 3) za obrazy RGB565. V současné době jsou podporována pouze pole ndarrays typu float32. Pokud při vytváření obrazu tímto způsobem předáte argument buffer, použije se k uložení dat obrazu namísto alokace prostoru na haldě. Pokud je copy_to_fb true, obraz se zkopíruje do snímkového bufferu namísto alokace na haldě nebo použití buffer.

Pokud je arg typu int, je považován za šířku nového obrazu a musí následovat hodnota height a hodnota format pro vytvoření nového prázdného objektu obrazu. format může být libovolná hodnota formátu pixelů obrazu, jako například image.GRAYSCALE. Obraz bude inicializován na samé nuly. Všimněte si, že pro komprimované formáty obrazu se očekává hodnota buffer. buffer je při tomto způsobu vytváření obrazů považován za zdroj dat obrazu. Pokud se použije s copy_to_fb, data z buffer se zkopírují do snímkového bufferu. Pokud chcete vytvořit obraz JPEG z objektu bytes() nebo bytearray() ve formátu JPEG, můžete předat width, height, image.JPEG pro JPEG spolu s nastavením buffer na proud bajtů JPEG a vytvořit tak obraz JPEG.

Obrazy podporují notaci „[]“. Použijte image[index] = 8/16-bit value k přiřazení pixelu obrazu nebo image[index] k získání pixelu obrazu, kterým bude buď 8bitová hodnota u obrazů grayscale/bayer, nebo 16bitová hodnota u obrazů RGB565/YUV. Binární obrazy vracejí 1bitovou hodnotu.

U obrazů JPEG umožňuje „[]“ přístup ke komprimovanému blobu obrazu JPEG jako k poli bajtů. Čtení a zápis do datového pole je však neprůhledné, protože obrazy JPEG jsou komprimované proudy bajtů.

Obrazy také podporují operace čtení z bufferu. Obrazy můžete předávat nejrůznějším funkcím MicroPythonu, jako by byl obraz objektem typu pole bajtů. Konkrétně, pokud chcete obraz přenést, můžete jej jednoduše předat zápisovým funkcím UART/SPI/I2C, které jej automaticky odešlou.

Základní metody

width() int

Vrací šířku obrazu v pixelech.

height() int

Vrací výšku obrazu v pixelech.

format() int

Vrací image.GRAYSCALE pro obrazy ve stupních šedi, image.RGB565 pro obrazy RGB565, image.BAYER pro obrazy s Bayerovým vzorem a image.JPEG pro obrazy JPEG.

size() int

Vrací velikost obrazu v bajtech.

bytearray() bytearray

Vrací objekt bytearray, který ukazuje na data obrazu pro čtení/zápis na úrovni bajtů.

Poznámka

Objekty obrazu jsou automaticky přetypovány na objekty bytes, když jsou předány ovladači MicroPythonu, který vyžaduje objekt typu bytes. Jde o přístup pouze pro čtení. Pro přístup pro čtení i zápis zavolejte bytearray().

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

U obrazů ve stupních šedi: Vrací hodnotu pixelu ve stupních šedi na pozici (x, y). U obrazů RGB565: Vrací RGB888 n-tici pixelu (r, g, b) na pozici (x, y). U obrazů s Bayerovým vzorem: Vrací hodnotu pixelu na pozici (x, y).

Vrací None, pokud je x nebo y mimo obraz.

x a y lze předat buď samostatně, nebo jako n-tici.

rgbtuple pokud je True, způsobí, že tato metoda vrátí RGB888 n-tici. Jinak tato metoda vrátí celočíselnou hodnotu základního pixelu. Tj. u obrazů RGB565 tato metoda vrátí hodnotu RGB565. U obrazů RGB565 je výchozí True, jinak False.

Není podporováno u komprimovaných obrazů.

Poznámka

Image.get_pixel() a Image.set_pixel() jsou jediné metody, které umožňují manipulovat s obrazy s Bayerovým vzorem. Obrazy s Bayerovým vzorem jsou doslovné obrazy, kde pixely v obraze jsou R/G/R/G/atd. pro sudé řádky a G/B/G/B/atd. pro liché řádky. Každý pixel je 8bitový. Pokud tuto metodu zavoláte s nastaveným rgbtuple, pak Image.get_pixel() provede debayering zdrojového obrazu na dané pozici pixelu a vrátí platnou RGB888 n-tici pro danou pozici pixelu.

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

U obrazů ve stupních šedi: Nastaví pixel na pozici (x, y) na hodnotu ve stupních šedi pixel. U obrazů RGB565: Nastaví pixel na pozici (x, y) na RGB888 n-tici (r, g, b) pixel. U obrazů s Bayerovým vzorem: Nastaví hodnotu pixelu na pozici (x, y) na hodnotu pixel.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

x a y lze předat buď samostatně, nebo jako n-tici.

pixel může být buď RGB888 n-tice (r, g, b), nebo základní hodnota pixelu (tj. hodnota RGB565 u obrazů RGB565 nebo 8bitová hodnota u obrazů ve stupních šedi).

Není podporováno u komprimovaných obrazů.

Poznámka

Image.get_pixel() a Image.set_pixel() jsou jediné metody, které umožňují manipulovat s obrazy s Bayerovým vzorem. Obrazy s Bayerovým vzorem jsou doslovné obrazy, kde pixely v obraze jsou R/G/R/G/atd. pro sudé řádky a G/B/G/B/atd. pro liché řádky. Každý pixel je 8bitový. Pokud tuto metodu zavoláte s RGB888 n-ticí, extrahuje se hodnota ve stupních šedi z této RGB888 n-tice a nastaví se na pozici pixelu.

Konverzní metody

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

Vrací objekt ndarray vytvořený z obrazu. Toto funguje v současné době pouze u obrazů GRAYSCALE nebo RGB565.

dtype může být b, B nebo f pro vytvoření znaménkového 8bitového, neznaménkového 8bitového nebo 32bitového floatového pole ndarray. Obrazy GRAYSCALE jsou přímo převedeny na neznaménkové 8bitové objekty ndarray. U znaménkových 8bitových objektů ndarray jsou hodnoty (0:255) mapovány na (-127:128). U 32bitových floatových objektů ndarray jsou hodnoty mapovány na (0.0:255.0). Obrazy RGB565 jsou převedeny na třísložkové objekty ndarray a na každou složku je v závislosti na dtype aplikován stejný proces popsaný výše pro obrazy GRAYSCALE. Všimněte si, že dtype přijímá také celočíselné hodnoty (např. ord()) znaků b, B a f.

buffer pokud není None, je objekt bytearray použitý jako buffer pro ndarray. Pokud je None, alokuje se na haldě nový buffer pro uložení dat obrazu ndarray. Argument buffer můžete použít k přímé alokaci ndarray v předem alokovaném bufferu, čímž ušetříte alokaci na haldě a operaci kopírování.

Vrácené pole ndarray má tvar (height, width) u obrazů GRAYSCALE a (height, width, 3) u obrazů RGB565.

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

Převede obraz na bitmapový obraz (1 bit na pixel).

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Poznámka

Bitmapové obrazy jsou jako obrazy ve stupních šedi s pouhými dvěma hodnotami pixelů - 0 a 1. Bitmapové obrazy jsou navíc zabaleny tak, že ukládají pouze 1 bit na pixel, čímž jsou velmi malé. Knihovna obrazů OpenMV umožňuje použít bitmapové obrazy všude tam, kde lze použít obrazy sensor.GRAYSCALE a sensor.RGB565. Mnoho operací však při aplikaci na bitmapové obrazy nedává žádný smysl, protože bitmapové obrazy mají pouze 2 hodnoty. OpenMV doporučuje používat bitmapové obrazy jako hodnoty mask v operacích apod., protože se snadno vejdou na haldu MicroPythonu. A konečně, hodnoty pixelů bitmapového obrazu 0 a 1 jsou při aplikaci na obrazy sensor.GRAYSCALE nebo sensor.RGB565 interpretovány jako černá a bílá. Knihovna automaticky zajišťuje konverzi.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Převede obraz na obraz ve stupních šedi (8 bitů na pixel).

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Převede obraz na obraz RGB565 (16 bitů na pixel).

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Převede obraz na duhový obraz RGB565 (16 bitů na pixel).

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Převede obraz na obraz RGB565 ironbow (16 bitů na pixel).

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Převede obraz na hloubkový obraz RGB565 (16 bitů na pixel).

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být image.PALETTE_DEPTH nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Převede obraz na obraz RGB565 Dark Event (16 bitů na pixel).

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Převede obraz na obraz RGB565 Light Event (16 bitů na pixel).

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Převede obraz na obraz JPEG.

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

quality řídí kvalitu komprese obrazu jpeg. Hodnota může být mezi 0 a 100.

subsampling může být:

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Převede obraz na obraz PNG.

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Převede obraz na obraz JPEG.

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

quality řídí kvalitu komprese obrazu jpeg. Hodnota může být mezi 0 a 100.

subsampling může být:

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Poznámka

Image.compress je alias pro Image.to_jpeg.

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

Vytvoří hlubokou kopii objektu obrazu.

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Upraví obraz na místě, aniž by změnil základní typ obrazu.

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Upraví obraz na místě, aniž by změnil základní typ obrazu.

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (s výjimkou image.BLACK_BACKGROUND, který zde není podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

copy pokud je True, vytvoří na haldě hlubokou kopii převedeného obrazu namísto převodu původního obrazu na místě.

copy_to_fb pokud je True, obraz se načte přímo do snímkového bufferu. copy_to_fb má prioritu před copy. To nemá žádný zvláštní účinek, pokud je obraz již ve snímkovém bufferu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Poznámka

Image.scale je alias pro Image.crop.

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

Uloží kopii obrazu do souborového systému na cestu path.

Podporuje soubory obrazů bmp/pgm/ppm/jpg/jpeg. Všimněte si, že obrazy komprimované jako jpeg nelze uložit do nekomprimovaného formátu.

roi je obdélník oblasti zájmu (x, y, w, h), ze kterého se má uložit. Pokud není zadán, rovná se obdélníku obrazu, což zkopíruje celý obraz. Tento argument není použitelný pro obrazy JPEG.

quality je kvalita komprese jpeg použitá k uložení obrazu do formátu jpeg, pokud obraz ještě není komprimován (0-100) (int).

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

flush() None

Aktualizuje snímkový buffer v IDE obrazem ve snímkovém bufferu na kameře.

Vykreslovací metody

clear(mask: Image | None = None) Image

Nastaví všechny pixely v obraze na nulu (velmi rychle).

mask je další obraz použitý jako maska na úrovni pixelů pro danou operaci. Maska by měla být obraz pouze s černými nebo bílými pixely a měla by mít stejnou velikost jako obraz, na kterém se operace provádí. Upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů.

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

Nakreslí čáru z (x0, y0) do (x1, y1) na obraze. Můžete předat x0, y0, x1, y1 buď samostatně, nebo jako n-tici (x0, y0, x1, y1).

color je RGB888 n-tice pro obrazy Grayscale nebo RGB565. Výchozí je bílá. Můžete však také předat základní hodnotu pixelu (0-255) pro obrazy ve stupních šedi nebo hodnotu RGB565 pro obrazy RGB565.

thickness řídí, jak tlustá je čára v pixelech.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Nakreslí obdélník na obraze. Můžete předat x, y, w, h buď samostatně, nebo jako n-tici (x, y, w, h).

color je RGB888 n-tice pro obrazy Grayscale nebo RGB565. Výchozí je bílá. Můžete však také předat základní hodnotu pixelu (0-255) pro obrazy ve stupních šedi nebo hodnotu RGB565 pro obrazy RGB565.

thickness řídí, jak tlusté jsou čáry v pixelech.

Nastavte fill na True pro vyplnění obdélníku.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Nakreslí kruh na obraze. Můžete předat x, y, radius buď samostatně, nebo jako n-tici (x, y, radius).

color je RGB888 n-tice pro obrazy Grayscale nebo RGB565. Výchozí je bílá. Můžete však také předat základní hodnotu pixelu (0-255) pro obrazy ve stupních šedi nebo hodnotu RGB565 pro obrazy RGB565.

thickness řídí, jak tlusté jsou hrany v pixelech.

Nastavte fill na True pro vyplnění kruhu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Nakreslí elipsu na obraze. Můžete předat cx, cy, rx, ry a rotaci (ve stupních) buď samostatně, nebo jako n-tici (cx, yc, rx, ry, rotation).

color je RGB888 n-tice pro obrazy Grayscale nebo RGB565. Výchozí je bílá. Můžete však také předat základní hodnotu pixelu (0-255) pro obrazy ve stupních šedi nebo hodnotu RGB565 pro obrazy RGB565.

thickness řídí, jak tlusté jsou hrany v pixelech.

Nastavte fill na True pro vyplnění elipsy.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Nakreslí text 8x10 počínaje pozicí (x, y) v obraze. Můžete předat x, y buď samostatně, nebo jako n-tici (x, y).

text je řetězec, který se má zapsat do obrazu. Konce řádků \n, \r a \r\n posunou kurzor na další řádek.

color je RGB888 n-tice pro obrazy Grayscale nebo RGB565. Výchozí je bílá. Můžete však také předat základní hodnotu pixelu (0-255) pro obrazy ve stupních šedi nebo hodnotu RGB565 pro obrazy RGB565.

scale lze zvýšit pro zvětšení/zmenšení velikosti textu na obraze. Můžete předat celočíselné hodnoty větší než 0 nebo hodnoty s plovoucí desetinnou čárkou.

x_spacing umožňuje přidat (pokud je kladné) nebo odebrat (pokud je záporné) x pixelů mezi znaky.

y_spacing umožňuje přidat (pokud je kladné) nebo odebrat (pokud je záporné) y pixelů mezi znaky (pro víceřádkový text).

mono_space má výchozí hodnotu True, která vynutí pevné rozestupy textu. U velkých měřítek textu to vypadá hrozně. Nastavte na False pro získání rozestupů znaků bez pevné šířky, což vypadá MNOHEM lépe.

char_rotation může být 0, 90, 180, 270 pro otočení každého znaku v řetězci o tuto hodnotu.

char_hmirror pokud je True, horizontálně zrcadlí všechny znaky v řetězci.

char_vflip pokud je True, vertikálně překlopí všechny znaky v řetězci.

string_rotation může být 0, 90, 180, 270 pro otočení řetězce o tuto hodnotu.

string_hmirror pokud je True, horizontálně zrcadlí řetězec.

string_vflip pokud je True, vertikálně překlopí řetězec.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Nakreslí křížek na pozici x, y. Můžete předat x, y buď samostatně, nebo jako n-tici (x, y).

color je RGB888 n-tice pro obrazy Grayscale nebo RGB565. Výchozí je bílá. Můžete však také předat základní hodnotu pixelu (0-255) pro obrazy ve stupních šedi nebo hodnotu RGB565 pro obrazy RGB565.

size řídí, jak dlouho se čáry křížku rozprostírají.

thickness řídí, jak tlusté jsou hrany v pixelech.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Nakreslí šipku z (x0, y0) do (x1, y1) na obraze. Můžete předat x0, y0, x1, y1 buď samostatně, nebo jako n-tici (x0, y0, x1, y1).

color je RGB888 n-tice pro obrazy Grayscale nebo RGB565. Výchozí je bílá. Můžete však také předat základní hodnotu pixelu (0-255) pro obrazy ve stupních šedi nebo hodnotu RGB565 pro obrazy RGB565.

thickness řídí, jak tlustá je čára v pixelech.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Nakreslí výsledek detekce do obrazu. detection je 6-tice (rx, ry, rw, rh, cx, cy) popisující ohraničující obdélník a těžiště (typicky vrácené kódem neuronové sítě nebo sledování barev).

color1 je barva obdélníku a color2 je barva křížku těžiště. size je velikost křížku těžiště, thickness řídí šířku obrysu a fill vyplňuje obdélník.

label pokud je zadán, vykreslí se poblíž obdélníku, posunutý o label_offset (x, y).

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Nakreslí hrany čar mezi seznamem rohů vráceným metodami jako blob.corners. Rohy jsou čtyřhodnotová n-tice dvouhodnotových n-tic x/y. Např. [(x1,y1),(x2,y2),(x3,y3),(x4,y4)].

color je RGB888 n-tice pro obrazy Grayscale nebo RGB565. Výchozí je bílá. Můžete však také předat základní hodnotu pixelu (0-255) pro obrazy ve stupních šedi nebo hodnotu RGB565 pro obrazy RGB565.

size pokud je větší než 0, způsobí, že rohy budou nakresleny jako kruhy o poloměru size.

thickness řídí, jak tlustá je čára v pixelech.

Nastavte fill na True pro vyplnění rohových kruhů, pokud jsou nakresleny.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Nakreslí image, jehož levý horní roh začíná na pozici x, y. Můžete předat x, y buď samostatně, nebo jako n-tici (x, y). Tato metoda automaticky zpracuje vykreslení předaného obrazu do správného formátu pixelů pro cílový obraz a zároveň bezproblémově zpracuje ořezávání.

Místo objektu obrazu můžete této metodě také předat cestu, aby automaticky načetla obraz z disku a použila jej v jednom kroku. Např. draw_image("test.jpg").

x_scale řídí, jak moc je zobrazený obraz škálován ve směru x (float). Pokud je tato hodnota záporná, obraz bude horizontálně překlopen. Všimněte si, že pokud není zadáno y_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

y_scale řídí, jak moc je zobrazený obraz škálován ve směru y (float). Pokud je tato hodnota záporná, obraz bude vertikálně překlopen. Všimněte si, že pokud není zadáno x_scale, bude odpovídat x_scale, aby se zachoval poměr stran.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h) zdrojového obrazu, který se má vykreslit. To umožňuje extrahovat pouze pixely v ROI, škálovat je a vykreslit do cílového obrazu.

rgb_channel je RGB kanál (0=R, G=1, B=2), který se má extrahovat z obrazu RGB565 (pokud je předán) a vykreslit do cílového obrazu. Například pokud předáte rgb_channel=1, extrahuje se zelený kanál zdrojového obrazu RGB565 a vykreslí se ve stupních šedi do cílového obrazu.

alpha řídí, jak velká část zdrojového obrazu se prolne do cílového obrazu. Hodnota 255 vykreslí neprůhledný zdrojový obraz, zatímco hodnota nižší než 255 vytvoří prolnutí mezi zdrojovým a cílovým obrazem. Hodnota 0 nevede k žádné úpravě cílového obrazu.

color_palette pokud není None, může být enum barevné palety nebo obraz RGB565 o celkem 256 pixelech, který se použije jako vyhledávací tabulka barev pro hodnotu ve stupních šedi zdrojového obrazu. Aplikuje se po extrakci rgb_channel, pokud je použita.

alpha_palette pokud není None, může být obraz GRAYSCALE o celkem 256 pixelech, který se použije jako alfa paleta modulující hodnotu alpha kresleného zdrojového obrazu na úrovni jednotlivých pixelů, což vám umožní přesně řídit hodnotu alfa pixelů na základě jejich hodnoty ve stupních šedi. Hodnota pixelu 255 v alfa vyhledávací tabulce je neprůhledná, zatímco cokoli menšího než 255 se stává průhlednějším až do 0. Aplikuje se po extrakci rgb_channel, pokud je použita.

hint je logický OR příznaků uvedených v Příznaky nápovědy (včetně image.BLACK_BACKGROUND, který je zde podporován).

transform je 3x3 ndarray použité k provedení perspektivní transformace obrazu. V současné době podporováno pouze na OpenMV Cam N6, protože má GPU, které to dokáže provést hardwarově.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

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

Nakreslí klíčové body objektu klíčových bodů na obraze. Můžete také předat seznam trojhodnotových n-tic obsahujících (x, y, rotation_angle_in_degrees) pro opětovné použití této metody k vykreslení glyfů klíčových bodů, což jsou kruhy s čárou ukazující v určitém směru.

color je RGB888 n-tice pro obrazy Grayscale nebo RGB565. Výchozí je bílá. Můžete však také předat základní hodnotu pixelu (0-255) pro obrazy ve stupních šedi nebo hodnotu RGB565 pro obrazy RGB565.

size řídí, jak velké jsou klíčové body.

thickness řídí, jak tlustá je čára v pixelech.

Nastavte fill na True pro vyplnění klíčových bodů.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Provede záplavové vyplnění oblasti obrazu počínaje pozicí x, y. Můžete předat x, y buď samostatně, nebo jako n-tici (x, y).

seed_threshold řídí, jak moc se může jakýkoli pixel ve vyplňované oblasti lišit od původního výchozího pixelu.

floating_threshold řídí, jak moc se může jakýkoli pixel ve vyplňované oblasti lišit od jakýchkoli sousedních pixelů.

color je RGB888 n-tice pro obrazy Grayscale nebo RGB565. Výchozí je bílá. Můžete však také předat základní hodnotu pixelu (0-255) pro obrazy ve stupních šedi nebo hodnotu RGB565 pro obrazy RGB565.

Předejte invert jako True pro přebarvení všeho mimo souvislou oblast záplavového vyplnění.

Předejte clear_background jako True pro vynulování zbytku pixelů, které záplavové vyplnění nepřebarvilo.

mask je další obraz použitý jako maska na úrovni pixelů pro danou operaci. Maska by měla být obraz pouze s černými nebo bílými pixely a měla by mít stejnou velikost jako obraz, na kterém se operace provádí. Při záplavovém vyplňování se vyhodnocují pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

Tato metoda není dostupná na OpenMV Cam M4.

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

Rasterizuje pole událostí ndarray (vyplněné pomocí csi.IOCTL_GENX320_READ_EVENTS) na Image pro vizualizaci. Buffer obrazu musí být obraz GRAYSCALE o rozměrech 320x320.

Pro každý řádek csi.PIX_ON_EVENT se k pixelu události přičte +contrast; pro každý řádek csi.PIX_OFF_EVENT se k pixelu přičte -contrast. Spouštěcí události jsou ignorovány. Hodnoty pixelů jsou omezeny na rozsah 0-255.

clear pokud je True, resetuje buffer obrazu na brightness před kreslením — každý snímek se stává čerstvým vykreslením pouze událostí. Nastavte na False pro akumulaci událostí přes více volání (užitečné pro stopy pohybu s dlouhou expozicí).

brightness řídí základní hodnotu střední šedi, na kterou se buffer resetuje, když je clear True. Výchozí hodnota 128 umisťuje události ON na světlý konec a události OFF na tmavý konec se stejnou rezervou.

contrast řídí, o kolik každá událost posune svůj pixel — vyšší hodnoty způsobí, že události vyniknou, za cenu rychlého nasycení, když na stejný pixel dopadne mnoho událostí.

Maskovací metody

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

Vynuluje obdélníkovou část obrazu. Pokud nejsou zadány žádné argumenty, tato metoda vynuluje střed obrazu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Vynuluje kruhovou část obrazu. Pokud nejsou zadány žádné argumenty, tato metoda vynuluje střed obrazu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Vynuluje elipsovitou část obrazu. Pokud nejsou zadány žádné argumenty, tato metoda vynuluje střed obrazu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

Binární metody

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

Nastaví všechny pixely v obraze na černou nebo bílou podle toho, zda každý pixel spadá do některé z prahových n-tic v thresholds.

thresholds je seznam n-tic (lo, hi) u obrazů ve stupních šedi nebo n-tic (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) u obrazů RGB565. Prohozené hodnoty min/max jsou automaticky opraveny; chybějící složky mají výchozí maximální rozsah.

invert invertuje shodu s prahem.

zero pokud je True, vynuluje prahované pixely a ostatní ponechá nedotčené.

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

to_bitmap pokud je True, převede data obrazu na bitmapu s 1 bitem na pixel. U velmi malých obrazů to může vyžadovat copy=True.

copy pokud je True, vrátí nový obraz na haldě namísto úpravy zdrojového obrazu.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

invert() Image

Invertuje všechny hodnoty pixelů v obraze (každý pixel se stane 255 - pixel u 8bitových kanálů).

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Provede logické AND tohoto obrazu s jiným obrazem.

image může být objekt obrazu, cesta k souboru nekomprimovaného obrazu (bmp/pgm/ppm) nebo skalární hodnota (RGB888 n-tice nebo základní hodnota pixelu).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Provede logické NAND tohoto obrazu s jiným obrazem.

image může být objekt obrazu, cesta k souboru nekomprimovaného obrazu (bmp/pgm/ppm) nebo skalární hodnota (RGB888 n-tice nebo základní hodnota pixelu).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Provede logické OR tohoto obrazu s jiným obrazem.

image může být objekt obrazu, cesta k souboru nekomprimovaného obrazu (bmp/pgm/ppm) nebo skalární hodnota (RGB888 n-tice nebo základní hodnota pixelu).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Provede logické NOR tohoto obrazu s jiným obrazem.

image může být objekt obrazu, cesta k souboru nekomprimovaného obrazu (bmp/pgm/ppm) nebo skalární hodnota (RGB888 n-tice nebo základní hodnota pixelu).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Provede logické XOR tohoto obrazu s jiným obrazem.

image může být objekt obrazu, cesta k souboru nekomprimovaného obrazu (bmp/pgm/ppm) nebo skalární hodnota (RGB888 n-tice nebo základní hodnota pixelu).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Provede logické XNOR tohoto obrazu s jiným obrazem.

image může být objekt obrazu, cesta k souboru nekomprimovaného obrazu (bmp/pgm/ppm) nebo skalární hodnota (RGB888 n-tice nebo základní hodnota pixelu).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

Metody ISP

awb(max: bool = False) Image

Provede automatické vyvážení bílé na obraze pomocí algoritmu gray-world. Pracuje na surových obrazech Bayer nebo RGB565. Nemá žádný účinek na binární obrazy / obrazy ve stupních šedi.

max pokud je True, použije místo toho algoritmus white-patch.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů yuv.

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

Vynásobí předanou maticí korekce barev s plovoucí desetinnou čárkou s obrazem. Matice mohou být 3x3 nebo 3x4 (s ofsetovým sloupcem), ve formě vnořeného seznamu nebo plochého seznamu:

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

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Upraví gamu, kontrast a jas obrazu.

gamma aplikuje pow(pixel, 1/gamma) po normalizaci. Hodnoty větší než 1.0 zesvětlují; menší než 1.0 ztmavují.

contrast aplikuje pixel * contrast po normalizaci.

brightness aplikuje pixel + brightness po normalizaci.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Alias pro Image.gamma.

Matematické metody

negate() Image

Alias pro Image.invert.

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

Alias pro Image.draw_image(). Nahradí tento obraz obrazem image (nebo transformuje tento obraz na místě, pokud je image vynecháno) pomocí standardních klíčových argumentů draw_image. Argument transform je 3x3 ndarray popisující perspektivní transformaci (podporováno pouze na kamerách OpenMV s povoleným ULAB).

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

Alias pro Image.replace().

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

Alias pro Image.replace().

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

Přičte obraz po pixelech k tomuto.

image může být objekt obrazu, cesta k souboru nekomprimovaného obrazu (bmp/pgm/ppm) nebo skalární hodnota (RGB888 n-tice nebo základní hodnota pixelu).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Odečte image po pixelech od tohoto obrazu (self - image).

image může být buď objekt obrazu, cesta k souboru nekomprimovaného obrazu (bmp/pgm/ppm), nebo skalární hodnota (RGB888 n-tice nebo základní hodnota pixelu).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Tato metoda také přijímá celou sadu klíčových argumentů Image.draw_image() (x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint, transform).

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Obrácené odečtení: nahradí tento obraz výrazem image - self po pixelech. Jinak identické s Image.sub().

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

Vrací minimální obraz dvou obrazů po pixelech.

image může být objekt obrazu, cesta k souboru nekomprimovaného obrazu (bmp/pgm/ppm) nebo skalární hodnota (RGB888 n-tice nebo základní hodnota pixelu).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Vrací maximální obraz dvou obrazů po pixelech.

image může být objekt obrazu, cesta k souboru nekomprimovaného obrazu (bmp/pgm/ppm) nebo skalární hodnota (RGB888 n-tice nebo základní hodnota pixelu).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Vrací obraz absolutního rozdílu mezi dvěma obrazy (např. ||a-b||).

image může být objekt obrazu, cesta k souboru nekomprimovaného obrazu (bmp/pgm/ppm) nebo skalární hodnota (RGB888 n-tice nebo základní hodnota pixelu).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Alias pro Image.draw_image(). Alfa-prolne image do tohoto obrazu. alpha je celé číslo 0-256; hodnoty blíže k 256 upřednostňují zdrojový obraz. Přijímá všechny klíčové argumenty Image.draw_image().

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

Spustí ekvalizaci histogramu na obraze pro normalizaci kontrastu a jasu.

adaptive pokud je True, spustí adaptivní ekvalizaci histogramu (pomalejší, ale obecně lepší).

clip_limit omezuje kontrast v adaptivní variantě (malá hodnota jako 10 produkuje dobré výsledky CLAHE).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

Filtrovací metody

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

Odstraní pixely z hran segmentovaných oblastí. Konvoluje jádro ((size*2)+1)x((size*2)+1) přes obraz a vymaže středový pixel, pokud je více než threshold sousedů prázdných (působí jako standardní eroze, pokud je threshold None).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Přidá pixely k hranám segmentovaných oblastí. Konvoluje jádro ((size*2)+1)x((size*2)+1) přes obraz a nastaví středový pixel, pokud je více než threshold sousedů nastaveno (působí jako standardní dilatace, pokud je threshold None).

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Provede erozi a poté dilataci. Viz Image.erode() a Image.dilate().

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Provede dilataci a poté erozi. Viz Image.dilate() a Image.erode().

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Vrací rozdíl obrazu mezi obrazem a obrazem po Image.open().

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Vrací rozdíl obrazu mezi obrazem a obrazem po Image.close().

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Standardní filtr středního rozostření pomocí krabicového filtru.

size je velikost jádra. Použijte 1 (jádro 3x3), 2 (jádro 5x5) atd.

threshold pokud je True, adaptivně prahuje výstup filtru na binární obraz. offset posouvá binarizaci (záporné zvyšuje počet bílých pixelů, kladné jej snižuje). invert invertuje binární výstup.

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Spustí percentilový filtr na obraze (ve výchozím nastavení medián).

size je velikost jádra. Použijte 1 (jádro 3x3), 2 (jádro 5x5) atd.

percentile je percentil, který se vybere z každého jádra (0 = min, 0.5 = medián, 1.0 = max). Výchozí hodnota je 0.5.

threshold pokud je True, adaptivně prahuje výstup filtru na binární obraz. offset posouvá binarizaci (záporné zvyšuje počet bílých pixelů, kladné jej snižuje). invert invertuje binární výstup.

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Nahradí každý pixel modem jeho sousedů. U hran obrazu RGB může produkovat artefakty kvůli nelineární operaci.

size je velikost jádra. Použijte 1 (jádro 3x3), 2 (jádro 5x5) atd.

threshold pokud je True, adaptivně prahuje výstup filtru na binární obraz. offset posouvá binarizaci (záporné zvyšuje počet bílých pixelů, kladné jej snižuje). invert invertuje binární výstup.

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Spustí filtr středního bodu na obraze. Tento filtr nalezne středový bod ((max-min)/2) okolí každého pixelu v obraze.

size je velikost jádra. Použijte 1 (jádro 3x3), 2 (jádro 5x5) atd.

bias řídí míchání min/max. 0 pouze pro min filtrování, 1.0 pouze pro max filtrování. Pomocí bias můžete obraz filtrovat min/max.

threshold pokud je True, adaptivně prahuje výstup filtru na binární obraz. offset posouvá binarizaci (záporné zvyšuje počet bílých pixelů, kladné jej snižuje). invert invertuje binární výstup.

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Konvoluje obraz s libovolným filtračním jádrem.

size řídí velikost jádra, které musí mít ((size*2)+1)x((size*2)+1) prvků.

kernel je jádro, se kterým se konvoluje, jako plochý 1D seznam/n-tice o ((size*2)+1)*((size*2)+1) prvcích, nebo jako 2D seznam/n-tice s ((size*2)+1) řádky o ((size*2)+1) prvcích.

mul je multiplikativní škála kontrastu (výchozí 1.0).

add je aditivní ofset jasu (výchozí 0.0).

threshold pokud je True, adaptivně prahuje výstup filtru na binární obraz. offset posouvá binarizaci (záporné zvyšuje počet bílých pixelů, kladné jej snižuje). invert invertuje binární výstup.

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Konvoluje obraz s vyhlazovacím gaussovským jádrem.

size je velikost jádra. Použijte 1 (jádro 3x3), 2 (jádro 5x5) atd.

unsharp pokud je True, provede operaci unsharp mask (zaostří hrany) namísto prosté gaussovské konvoluce.

mul je multiplikativní škála kontrastu (výchozí 1.0).

add je aditivní ofset jasu (výchozí 0.0).

threshold pokud je True, adaptivně prahuje výstup filtru na binární obraz. offset posouvá binarizaci (záporné zvyšuje počet bílých pixelů, kladné jej snižuje). invert invertuje binární výstup.

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Konvoluje obraz s laplaciánským jádrem detekujícím hrany.

size je velikost jádra. Použijte 1 (jádro 3x3), 2 (jádro 5x5) atd.

sharpen pokud je True, zaostří obraz namísto výstupu surové neprahované hranové odezvy.

mul je multiplikativní škála kontrastu (výchozí 1.0).

add je aditivní ofset jasu (výchozí 0.0).

threshold pokud je True, adaptivně prahuje výstup filtru na binární obraz. offset posouvá binarizaci (záporné zvyšuje počet bílých pixelů, kladné jej snižuje). invert invertuje binární výstup.

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

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

Konvoluje obraz s bilaterálním filtrem (vyhlazování zachovávající hrany).

size je velikost jádra. Použijte 1 (jádro 3x3), 2 (jádro 5x5) atd.

color_sigma řídí toleranci shody barev; větší hodnoty produkují více barevného rozostření.

space_sigma řídí prostorové rozostření; větší hodnoty produkují více pixelového rozostření.

threshold pokud je True, adaptivně prahuje výstup filtru na binární obraz. offset posouvá binarizaci (záporné zvyšuje počet bílých pixelů, kladné jej snižuje). invert invertuje binární výstup.

mask je binární obraz použitý jako maska na úrovni pixelů; upraví se pouze pixely nastavené v masce.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer/yuv.

Geometrické metody

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

Přemapuje obraz z kartézských souřadnic do lineárních polárních souřadnic.

Nastavte reverse=True pro přemapování v opačném směru.

x a y určují středovou souřadnici transformace v pixelech obrazu. Pokud je x None (výchozí), nastaví se na polovinu šířky obrazu; podobně y má výchozí hodnotu poloviny výšky obrazu.

Lineární polární přemapování mění rotaci obrazu na posun po ose x.

Není podporováno u komprimovaných obrazů ani obrazů bayer.

Tato metoda není dostupná na OpenMV Cam M4.

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

Přemapuje obraz z kartézských souřadnic do logaritmických polárních souřadnic.

Nastavte reverse=True pro přemapování v opačném směru.

x a y určují středovou souřadnici transformace v pixelech obrazu. Pokud je x None (výchozí), nastaví se na polovinu šířky obrazu; podobně y má výchozí hodnotu poloviny výšky obrazu.

Logaritmické polární přemapování mění rotaci obrazu na posun po ose x a škálování/přibližování na posun po ose y.

Není podporováno u komprimovaných obrazů ani obrazů bayer.

Tato metoda není dostupná na OpenMV Cam M4.

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

Provede korekci čočky pro odstranění rybího oka z obrazu způsobeného zkreslením čočky.

strength je float definující, jak moc odstranit rybí oko z obrazu. Vyzkoušejte výchozí 1.8 a poté ji zvyšujte nebo snižujte, dokud obraz nevypadá dobře.

zoom je míra přiblížení obrazu. Výchozí 1.0.

x_corr ofset pixelu od středu s plovoucí desetinnou čárkou. Může být záporný nebo kladný.

y_corr ofset pixelu od středu s plovoucí desetinnou čárkou. Může být záporný nebo kladný.

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Opraví perspektivní problémy v obraze provedením 3D rotace snímkového bufferu.

x_rotation je počet stupňů otočení obrazu ve snímkovém bufferu kolem osy x (tj. to otáčí obraz nahoru a dolů).

y_rotation je počet stupňů otočení obrazu ve snímkovém bufferu kolem osy y (tj. to otáčí obraz vlevo a vpravo).

z_rotation je počet stupňů otočení obrazu ve snímkovém bufferu kolem osy z (tj. to otáčí obraz na místě).

x_translation je počet jednotek pro posun obrazu vlevo nebo vpravo po rotaci. Protože se tento posun aplikuje v 3D prostoru, jednotkami nejsou pixely…

y_translation je počet jednotek pro posun obrazu nahoru nebo dolů po rotaci. Protože se tento posun aplikuje v 3D prostoru, jednotkami nejsou pixely…

zoom je míra přiblížení obrazu. Výchozí 1.0.

fov je zorné pole použité pro interní projekci 2D->3D. Jak se fov blíží 0, obraz se umisťuje do nekonečna; jak se blíží 180, obraz se umisťuje do zorného pole.

corners je seznam čtyř n-tic (x, y) použitých k sestavení 4bodové homografie mapující rohy na (0, 0), (image_width-1, 0), (image_width-1, image_height-1) a (0, image_height-1) před aplikací 3D rotace. Užitečné pro transformace pohledu shora (z ptačí perspektivy).

Vrací objekt obrazu, takže můžete zavolat další metodu pomocí notace ..

Není podporováno u komprimovaných obrazů ani obrazů bayer.

Tato metoda není dostupná na OpenMV Cam M4.

Get metody

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

Vypočítá podobnost mezi dvěma obrazy pomocí indexu strukturální podobnosti (SSIM). SSIM se pohybuje od -1 (opačné) do 1 (identické). Vrací objekt image.similarity.

image je obraz, se kterým se porovnává (objekt obrazu nebo řetězec cesty, např. "test.jpg").

x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint a transform přijímají stejné hodnoty jako Image.draw_image().

dssim pokud je True, vrací místo toho index strukturální nepodobnosti (DSSIM), kde 0 znamená identické a 1 znamená zcela odlišné.

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

Vypočítá normalizovaný histogram na všech barevných kanálech pro roi a vrátí objekt image.histogram. K dispozici také jako Image.get_hist() nebo Image.histogram().

thresholds je seznam n-tic (lo, hi) u obrazů ve stupních šedi nebo n-tic (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) u obrazů RGB565. Pokud je předán, histogram se vypočítá pouze přes pixely v rámci prahů.

invert invertuje shodu s prahem.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

bins (grayscale) nebo l_bins/a_bins/b_bins (RGB565) nastavují počet přihrádek histogramu na kanál. Musí být větší než 2. Výchozí hodnotou je maximální počet přihrádek na kanál.

difference lze nastavit na objekt obrazu pro práci s rozdílem mezi aktuálním obrazem a tímto obrazem bez dodatečného bufferu.

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Vypočítá střední hodnotu, medián, modus, směrodatnou odchylku, min, max, dolní kvartil a horní kvartil pro všechny barevné kanály pro roi a vrátí objekt image.statistics. K dispozici také jako Image.get_stats() nebo Image.statistics().

thresholds je seznam n-tic (lo, hi) u obrazů ve stupních šedi nebo n-tic (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) u obrazů RGB565. Pokud je předán, statistiky se vypočítají pouze přes pixely v rámci prahů.

invert invertuje shodu s prahem.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

bins (grayscale) nebo l_bins/a_bins/b_bins (RGB565) nastavují počet přihrádek histogramu na kanál. Musí být větší než 2. Výchozí hodnotou je maximální počet přihrádek na kanál.

difference lze nastavit na objekt obrazu pro práci s rozdílem mezi aktuálním obrazem a tímto obrazem bez dodatečného bufferu.

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Vypočítá lineární regresi (Theil-Sen) na všech prahovaných pixelech v obraze. Vrací objekt image.line, nebo None, pokud nebyla nalezena žádná čára.

thresholds je seznam n-tic (lo, hi) u obrazů ve stupních šedi nebo n-tic (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) u obrazů RGB565.

invert invertuje shodu s prahem.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

x_stride a y_stride řídí, kolik pixelů se přeskočí při vyhodnocování obrazu.

area_threshold minimální plocha ohraničujícího rámečku; menší výsledky vracejí None.

pixels_threshold minimální počet prahovaných pixelů; menší výsledky vracejí None.

target_size je n-tice (w, h). ROI se plošně zmenší tak, aby se vešlo do této velikosti před spuštěním algoritmu O(N^2). Výchozí hodnota je (80, 60).

Není podporováno u komprimovaných obrazů ani obrazů bayer.

Detekční metody

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]

Najde všechny bloby (souvislé oblasti pixelů, které projdou testem prahu) v obraze a vrátí seznam objektů image.blob.

thresholds je seznam n-tic (lo, hi) u obrazů ve stupních šedi nebo n-tic (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) u obrazů RGB565 (kanály LAB). Lze předat až 32 n-tic. Prohozené hodnoty min/max jsou automaticky opraveny; chybějící složky mají výchozí maximální rozsah.

invert invertuje shodu s prahem.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

x_stride a y_stride řídí, kolik pixelů se přeskočí při hledání blobu. Zvyšte, pokud je známo, že bloby jsou velké.

area_threshold minimální plocha ohraničujícího rámečku; menší bloby jsou odfiltrovány.

pixels_threshold minimální počet prahovaných pixelů; menší bloby jsou odfiltrovány.

merge pokud je True, sloučí bloby, jejichž ohraničující obdélníky se protínají. margin zvětšuje/zmenšuje ohraničující obdélníky použité pro průnik. Sloučené bloby provedou OR svých bitových vektorů code (jeden bit na práh).

threshold_cb se volá pro každý blob po prahování; vraťte True pro ponechání, False pro odfiltrování.

merge_cb se volá pro každou dvojici blobů, které se mají sloučit; vraťte True pro povolení sloučení, False pro jeho zabránění.

x_hist_bins_max pokud je nenulové, naplní každý blob projekcí x_histogram s tímto počtem přihrádek.

y_hist_bins_max pokud je nenulové, naplní každý blob projekcí y_histogram s tímto počtem přihrádek.

Není podporováno u komprimovaných obrazů ani obrazů bayer.

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

Najde všechny nekonečné čáry v obraze pomocí Houghovy transformace. Vrací seznam objektů image.line.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

x_stride a y_stride řídí, kolik pixelů se přeskočí během Houghovy transformace.

threshold minimální velikost čáry (součet sobelovských velikostí podél čáry); čáry pod touto hodnotou jsou odfiltrovány.

theta_margin a rho_margin řídí slučování: čáry v rámci těchto prahů jsou sloučeny.

Není podporováno u komprimovaných obrazů ani obrazů bayer.

Tato metoda není dostupná na 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]

Najde úsečky v obraze. Vrací seznam objektů image.line.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

merge_distance je maximální vzdálenost v pixelech mezi dvěma úsečkami, aby byly sloučeny.

max_theta_difference je maximální rozdíl theta ve stupních mezi úsečkami, aby byly sloučeny.

Tato metoda není dostupná na 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]

Najde kruhy v obraze pomocí Houghovy transformace. Vrací seznam objektů image.circle.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

x_stride a y_stride řídí, kolik pixelů se přeskočí během Houghovy transformace.

threshold minimální velikost kruhu (součet sobelovských velikostí podél kruhu); kruhy pod touto hodnotou jsou odfiltrovány.

x_margin, y_margin a r_margin řídí slučování: kruhy v rámci těchto prahů jsou sloučeny.

r_min minimální poloměr kruhu. Výchozí hodnota je 2.

r_max maximální poloměr kruhu. Výchozí hodnota je min(roi.w/2, roi.h/2).

r_step velikost kroku poloměru. Výchozí hodnota je 2.

Tato metoda není dostupná na OpenMV Cam M4.

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

Najde obdélníky v obraze pomocí algoritmu detekce čtyřúhelníků apriltag. Vrací seznam objektů image.rect.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

threshold minimální velikost hrany (součet sobelovských velikostí podél hran obdélníku); obdélníky pod touto hodnotou jsou odfiltrovány.

Tato metoda není dostupná na OpenMV Cam M4.

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

Najde všechny qrkódy v rámci roi a vrátí seznam objektů image.qrcode.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

Tato metoda není dostupná na 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]

Najde všechny apriltagy v rámci roi a vrátí seznam objektů image.apriltag.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

families je bitová maska rodin tagů k dekódování. Je to logický OR z:

Výchozí hodnota je image.TAG36H11. Doba detekce roste s počtem povolených rodin.

fx a fy jsou ohniskové vzdálenosti kamery X a Y v pixelech.

cx a cy jsou střed obrazu, typicky image.width()/2 a image.height()/2.

Není podporováno u komprimovaných obrazů.

Tato metoda není dostupná na OpenMV Cam M4.

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

Najde všechny datamatice v rámci roi a vrátí seznam objektů image.datamatrix.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

effort řídí, kolik času strávit pokusy o nalezení shod data matrix. Vyšší hodnoty zlepšují detekci za cenu snímkové frekvence. Hodnoty pod ~160 selhávají při detekci; hodnoty nad ~240 přinášejí klesající výnosy. Výchozí hodnota je 200.

Tato metoda není dostupná na OpenMV Cam M4.

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

Najde všechny 1D čárové kódy v rámci roi a vrátí seznam objektů image.barcode. Skenuje horizontálně i vertikálně.

Podporované typy čárových kódů: image.EAN2, image.EAN5, image.EAN8, image.UPCE, image.ISBN10, image.UPCA, image.EAN13, image.ISBN13, image.I25, image.DATABAR (RSS-14), image.DATABAR_EXP (RSS-Expanded), image.CODABAR, image.CODE39, image.PDF417, image.CODE93, image.CODE128.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

Tato metoda není dostupná na 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

Najde posun translace tohoto obrazu od template pomocí fázové korelace. Vrací objekt image.displacement.

roi je obdélník oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

template_roi je oblast zájmu šablony. Výchozí hodnotou je obdélník obrazu šablony. roi a template_roi musí mít stejnou šířku a výšku.

logpolar pokud je True, vrací změnu rotace/měřítka namísto posunu x/y.

fix_rotation_scale pokud je True, vypočítá posun po zarovnání rotace a měřítka (smysluplné pouze když je logpolar=False).

Poznámka

Tuto metodu používejte na velikostech obrazu, které jsou mocninou 2 (např. sensor.B64X64).

Není podporováno u komprimovaných obrazů ani obrazů bayer. Není dostupné na 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

Pokusí se najít první místo v obraze, kde se template shoduje pomocí normalizované křížové korelace. Vrací n-tici ohraničujícího rámečku (x, y, w, h), nebo None.

template je obraz ve stupních šedi, se kterým se má tento obraz porovnat.

threshold je hodnota (0.0-1.0). Vyšší hodnoty snižují falešně pozitivní detekce a detekce; nižší hodnoty mají opačný efekt.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

step je počet pixelů k přeskočení během vyhledávání (používá se pouze v režimu image.SEARCH_EX).

search je image.SEARCH_DS (rychlejší diamantové vyhledávání) nebo image.SEARCH_EX (vyčerpávající vyhledávání).

Funguje pouze na obrazech ve stupních šedi.

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

Prohledá obraz na oblasti odpovídající předané Haarově kaskádě a vrátí seznam n-tic ohraničujících rámečků (x, y, w, h). Vrací prázdný seznam, pokud nejsou nalezeny žádné příznaky.

cascade je objekt Haarovy kaskády (viz image.HaarCascade()).

threshold (0.0-1.0). Nižší hodnoty zvyšují míru detekce a míru falešně pozitivních výsledků.

scale musí být větší než 1.0. Vyšší hodnoty běží rychleji, ale produkují horší shody.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

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

Hledá zornici v n-tici oblasti zájmu (x, y, w, h) kolem oka. Vrací pozici (x, y) zornice, nebo (0, 0), pokud není nalezena žádná.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h).

Funguje pouze na obrazech ve stupních šedi.

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

Extrahuje klíčové body LBP (local-binary-patterns) z oblasti zájmu. Pro porovnání dvou deskriptorů použijte image.match_descriptor().

roi je n-tice obdélníku oblasti zájmu (x, y, w, h).

Funguje pouze na obrazech ve stupních šedi.

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

Extrahuje klíčové body ORB z oblasti zájmu. Pro porovnání dvou deskriptorů použijte image.match_descriptor(). Vrací None, pokud nebyly nalezeny žádné klíčové body.

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Výchozí hodnotou je obdélník obrazu.

threshold (0-255) řídí počet extrahovaných rohů. Nižší prahy produkují více rohů. Použijte ~20 pro AGAST, ~60-80 pro FAST.

normalized pokud je True, zakáže extrakci klíčových bodů s více rozlišeními.

scale_factor musí být větší než 1.0. Vyšší hodnoty běží rychleji, ale produkují horší shody.

max_keypoints je maximální počet klíčových bodů, které se mají ponechat.

corner_detector je image.CORNER_FAST nebo image.CORNER_AGAST.

Funguje pouze na obrazech ve stupních šedi.

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

Převede obraz na černobílý, přičemž jako bílé pixely ponechá pouze hrany.

  • image.EDGE_SIMPLE - Jednoduchý prahovaný algoritmus horní propusti.

  • image.EDGE_CANNY - Cannyho algoritmus detekce hran.

threshold je dvouhodnotová n-tice obsahující nízký práh a vysoký práh. Kvalitu hran můžete řídit úpravou těchto hodnot. Výchozí hodnota je (100, 200).

Funguje pouze na obrazech ve stupních šedi.

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

Nahradí pixely v ROI čarami HOG (histogram of oriented gradients).

roi je n-tice obdélníku oblasti zájmu (x, y, w, h). Pokud není zadána, rovná se obdélníku obrazu. Operace se provádí pouze na pixelech v rámci roi.

Funguje pouze na obrazech ve stupních šedi.

Tato metoda není dostupná na OpenMV Cam M4.

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

Vezme dvojnásobně širokou obraz ve stupních šedi obsahující výstup dvou vedle sebe umístěných senzorů kamer a nahradí jednu polovinu obrazem stereo disparity (každý pixel reprezentuje hloubku). Např. pro dvě kamery 320x240 předejte obraz 640x240.

reversed Ve výchozím nastavení se levý obraz porovnává s pravým a pravý obraz se nahrazuje. Nastavte True pro porovnání zprava->doleva a nahrazení levého obrazu.

max_disparity je maximální vzdálenost (1-255) pro hledání odpovídajícího bloku pixelů pomocí součtu absolutních rozdílů. Větší hodnoty trvají exponenciálně déle, ale produkují výstup vyšší kvality.

threshold pokud je součet absolutních rozdílů mezi dvěma bloky menší nebo roven tomuto prahu, jsou považovány za shodné.

Spustí selektivní vyhledávání na obraze a vrátí seznam n-tic ohraničujících rámečků (x, y, w, h) návrhů objektů.

threshold je prah segmentace; vyšší hodnoty produkují méně/větší oblasti.

size je minimální velikost oblasti po sloučení.

a1, a2, a3 jsou váhy podobnosti barvy/textury/velikosti použité při slučování oblastí.