class Image – obiekt obrazu

Image to centralny typ danych modułu image – bufor pikseli w pamięci, na którym operuje każda procedura rysowania, każdy filtr, każda transformacja geometryczna oraz każda procedura wyodrębniania cech. Każda ramka pochodząca z csi.CSI.snapshot() jest obiektem Image; tak samo jest z każdą ramką wczytaną z dysku, zdekodowaną z formatu JPEG lub PNG, przydzieloną z tablicy ndarray w stylu numpy lub utworzoną jako pusta powierzchnia rysunkowa.

Obiekt Image jest opisany trzema liczbami – width, height oraz pixformat – a także ciągłym buforem pikseli. Format pikseli określa zarówno układ w pamięci, jak i to, które operacje są dostępne:

  • BINARY (1 bpp) – 1 bit na piksel; używany przez morfologię i progowanie.

  • GRAYSCALE (8 bpp) – 1 bajt na piksel; kanoniczny format dla większości zadań CV (AprilTag, krawędzie, ORB, przepływ optyczny).

  • RGB565 (16 bpp) – 2 bajty na piksel (5R/6G/5B); domyślny format koloru.

  • BAYER (8 bpp) – surowe dane mozaiki Bayera prosto z sensora. Większość metod CV nie jest dostępna na obrazach Bayera; najpierw wykonaj debayer do GRAYSCALE / RGB565.

  • YUV422 (16 bpp) – kolor z podpróbkowaniem chrominancji 4:2:2, dwa bajty na piksel. Tylko niektóre metody działają bezpośrednio na YUV422.

  • JPEG / PNG – bufory skompresowane. Operacje na poziomie pikseli wymagają najpierw to_grayscale() lub to_rgb565().

Skąd pochodzą obiekty Image

Istnieją cztery sposoby uzyskania obiektu Image:

  • Z bufora ramki kamerycsi.CSI().snapshot() zwraca kolejną przechwyconą ramkę. Zwrócony obiekt jest cienką nakładką wokół pamięci bufora ramki kamery, więc każda operacja rysowania / filtrowania na nim zmienia to, co jest wysyłane do podglądu IDE oraz na wyświetlacz.

  • Z pliku – przekaż ciąg ścieżki do konstruktora Image. Pliki BMP, PGM, PPM, JPEG i PNG są dekodowane bezpośrednio do pamięci RAM (lub do bufora ramki kamery, jeśli copy_to_fb=True).

  • Z tablicy ndarray – przekaż tablicę float32 o kształcie (h, w) lub (h, w, 3). Piksele są skalowane z zakresu 0.0 -- 255.0 odpowiednio do GRAYSCALE lub RGB565.

  • Pusty – przekaż (width, height, pixformat), aby przydzielić wyzerowaną powierzchnię rysunkową. Dla skompresowanych formatów pikseli (JPEG / PNG) wymagany jest argument buffer=, który przechowuje skompresowany strumień bajtów.

Typowa pętla przechwytywania-przetwarzania-wyświetlania

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.

Indeksowanie, długość, iteracja oraz dostęp w stylu bytes

  • Indeksowanieimg[i] odczytuje piksel i (liniowo, wierszami). img[i] = value zapisuje go. Piksele grayscale / Bayera są 8-bitowymi liczbami całkowitymi, piksele RGB565 / YUV422 są 16-bitowymi spakowanymi liczbami całkowitymi, a piksele binarne to 0 / 1. Dla obrazów JPEG / PNG przestrzeń indeksów to skompresowany strumień bajtów, a nie piksele.

  • Długośćlen(img) zwraca liczbę pikseli dla formatów nieskompresowanych lub liczbę bajtów dla formatów skompresowanych.

  • Iteracjafor px in img: ... przechodzi przez tablicę pikseli w tej samej kolejności co indeksowanie [].

  • W stylu bytesImage udostępnia protokół bufora odczytu, dzięki czemu można go przekazać bezpośrednio do wszystkiego, co przyjmuje obiekt bytes / bytearray (np. uart.write(img), socket.send(img), hashlib.sha256(img)). Użyj bytearray(), aby uzyskać widok do odczytu/zapisu.

Flagi podpowiedzi (hint)

Wiele metod Image przyjmuje argument hint, który jest logicznym OR następujących flag:

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

Jeśli arg jest ciągiem znaków, tworzy to nowy obiekt obrazu z pliku znajdującego się w ścieżce arg. Obsługuje wczytywanie z dysku plików obrazów bmp/pgm/ppm/jpg/jpeg/png. Jeśli copy_to_fb ma wartość true, obraz jest kopiowany do bufora ramki zamiast być przydzielany na stercie.

Jeśli arg jest tablicą ndarray, tworzy to nowy obiekt obrazu z tej tablicy ndarray. Obiekty ndarray o kształcie (w, h) są traktowane jako obrazy w skali szarości, a (w, h, 3) jako obrazy RGB565. Obecnie obsługiwane są tylko tablice ndarrays typu float32. Jeśli podczas tworzenia obrazu w ten sposób przekażesz argument buffer, zostanie on użyty do przechowywania danych obrazu zamiast przydzielania miejsca na stercie. Jeśli copy_to_fb ma wartość true, obraz jest kopiowany do bufora ramki zamiast być przydzielany na stercie lub przy użyciu buffer.

Jeśli arg jest typu int, jest on uznawany za szerokość nowego obrazu, a po nim muszą wystąpić wartość height oraz wartość format, aby utworzyć nowy pusty obiekt obrazu. format może być dowolną wartością pixformat obrazu, np. image.GRAYSCALE. Obraz zostanie zainicjowany samymi zerami. Należy pamiętać, że dla skompresowanych formatów obrazu oczekiwana jest wartość buffer. buffer jest w tym przypadku traktowany jako źródło danych obrazu do tworzenia obrazów. Jeśli zostanie użyty z copy_to_fb, dane z buffer są kopiowane do bufora ramki. Jeśli chcesz utworzyć obraz JPEG z obiektu bytes() lub bytearray() zawierającego JPEG, możesz przekazać width, height, image.JPEG dla JPEG wraz z ustawieniem buffer na strumień bajtów JPEG, aby utworzyć obraz JPEG.

Obrazy obsługują notację „[]”. Wykonaj image[index] = 8/16-bit value, aby przypisać piksel obrazu, lub image[index], aby pobrać piksel obrazu, którym będzie wartość 8-bitowa dla obrazów grayscale/bayer lub wartość 16-bitowa dla obrazów RGB565/YUV. Obrazy binarne zwracają wartość 1-bitową.

Dla obrazów JPEG notacja „[]” pozwala uzyskać dostęp do skompresowanego bloba obrazu JPEG jako tablicy bajtów. Odczyt i zapis do tablicy danych są jednak nieprzejrzyste, ponieważ obrazy JPEG to skompresowane strumienie bajtów.

Obrazy obsługują również operacje bufora odczytu. Możesz przekazywać obrazy do wszelkiego rodzaju funkcji MicroPython tak, jakby obraz był obiektem tablicy bajtów. W szczególności, jeśli chcesz przesłać obraz, możesz po prostu przekazać go do funkcji zapisu UART/SPI/I2C, aby został przesłany automatycznie.

Metody podstawowe

width() int

Zwraca szerokość obrazu w pikselach.

height() int

Zwraca wysokość obrazu w pikselach.

format() int

Zwraca image.GRAYSCALE dla obrazów w skali szarości, image.RGB565 dla obrazów RGB565, image.BAYER dla obrazów we wzorze Bayera oraz image.JPEG dla obrazów JPEG.

size() int

Zwraca rozmiar obrazu w bajtach.

bytearray() bytearray

Zwraca obiekt bytearray, który wskazuje na dane obrazu, umożliwiając dostęp do odczytu/zapisu na poziomie bajtów.

Informacja

Obiekty obrazu są automatycznie rzutowane na obiekty bytes, gdy są przekazywane do sterownika MicroPython wymagającego obiektu w stylu bytes. Jest to dostęp tylko do odczytu. Wywołaj bytearray(), aby uzyskać dostęp do odczytu/zapisu.

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

Dla obrazów w skali szarości: Zwraca wartość piksela w skali szarości w lokalizacji (x, y). Dla obrazów RGB565: Zwraca krotkę piksela RGB888 (r, g, b) w lokalizacji (x, y). Dla obrazów we wzorze Bayera: Zwraca wartość piksela w lokalizacji (x, y).

Zwraca None, jeśli x lub y znajduje się poza obrazem.

x i y mogą być przekazane niezależnie lub jako krotka.

rgbtuple jeśli True powoduje, że metoda zwraca krotkę RGB888. W przeciwnym razie metoda zwraca wartość całkowitą podstawowego piksela. Tzn. dla obrazów RGB565 metoda zwraca wartość RGB565. Domyślnie True dla obrazów RGB565 i False w pozostałych przypadkach.

Nieobsługiwane na obrazach skompresowanych.

Informacja

Image.get_pixel() i Image.set_pixel() to jedyne metody, które pozwalają manipulować obrazami we wzorze Bayera. Obrazy we wzorze Bayera to dosłowne obrazy, w których piksele to R/G/R/G/itd. dla parzystych wierszy oraz G/B/G/B/itd. dla nieparzystych wierszy. Każdy piksel ma 8 bitów. Jeśli wywołasz tę metodę z ustawionym rgbtuple, Image.get_pixel() wykona debayer obrazu źródłowego w tej lokalizacji piksela i zwróci prawidłową krotkę RGB888 dla tej lokalizacji piksela.

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

Dla obrazów w skali szarości: Ustawia piksel w lokalizacji (x, y) na wartość pixel w skali szarości. Dla obrazów RGB565: Ustawia piksel w lokalizacji (x, y) na krotkę RGB888 (r, g, b) pixel. Dla obrazów we wzorze Bayera: Ustawia wartość piksela w lokalizacji (x, y) na wartość pixel.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

x i y mogą być przekazane niezależnie lub jako krotka.

pixel może być krotką RGB888 (r, g, b) lub podstawową wartością piksela (tzn. wartością RGB565 dla obrazów RGB565 lub wartością 8-bitową dla obrazów w skali szarości).

Nieobsługiwane na obrazach skompresowanych.

Informacja

Image.get_pixel() i Image.set_pixel() to jedyne metody, które pozwalają manipulować obrazami we wzorze Bayera. Obrazy we wzorze Bayera to dosłowne obrazy, w których piksele to R/G/R/G/itd. dla parzystych wierszy oraz G/B/G/B/itd. dla nieparzystych wierszy. Każdy piksel ma 8 bitów. Jeśli wywołasz tę metodę z krotką RGB888, wartość w skali szarości tej krotki RGB888 zostanie wyodrębniona i ustawiona w lokalizacji piksela.

Metody konwersji

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

Zwraca obiekt ndarray utworzony z obrazu. Obecnie działa to tylko dla obrazów GRAYSCALE lub RGB565.

dtype może być b, B lub f, aby utworzyć tablicę ndarray ze znakiem 8-bitową, bez znaku 8-bitową lub 32-bitową zmiennoprzecinkową. Obrazy GRAYSCALE są bezpośrednio konwertowane na obiekty ndarray bez znaku 8-bitowe. Dla obiektów ndarray ze znakiem 8-bitowych wartości (0:255) są mapowane na (-127:128). Dla obiektów ndarray 32-bitowych zmiennoprzecinkowych wartości są mapowane na (0.0:255.0). Obrazy RGB565 są konwertowane na 3-kanałowe obiekty ndarray, a do każdego kanału stosowany jest ten sam proces opisany powyżej dla obrazów GRAYSCALE w zależności od dtype. Należy pamiętać, że dtype przyjmuje również wartości całkowite (np. ord()) odpowiednio b, B oraz f.

buffer jeśli nie jest None, jest obiektem bytearray używanym jako bufor dla ndarray. Jeśli None, na stercie przydzielany jest nowy bufor do przechowywania danych obrazu ndarray. Możesz użyć argumentu buffer, aby bezpośrednio przydzielić ndarray w wstępnie przydzielonym buforze, oszczędzając przydzielenie na stercie oraz operację kopiowania.

Zwrócony ndarray ma kształt (height, width) dla obrazów GRAYSCALE oraz (height, width, 3) dla obrazów 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

Konwertuje obraz na obraz bitmapy (1 bit na piksel).

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Informacja

Obrazy bitmapy są jak obrazy w skali szarości z tylko dwiema wartościami pikseli - 0 i 1. Dodatkowo obrazy bitmapy są spakowane tak, że przechowują tylko 1 bit na piksel, co czyni je bardzo małymi. Biblioteka obrazów OpenMV pozwala używać obrazów bitmapy we wszystkich miejscach, w których można używać obrazów sensor.GRAYSCALE i sensor.RGB565. Jednak wiele operacji zastosowanych na obrazach bitmapy nie ma sensu, ponieważ obrazy bitmapy mają tylko 2 wartości. OpenMV zaleca używanie obrazów bitmapy jako wartości mask w operacjach itp., ponieważ z łatwością mieszczą się na stercie MicroPython. Wreszcie, wartości pikseli obrazu bitmapy 0 i 1 są interpretowane jako czarny i biały podczas stosowania ich na obrazach sensor.GRAYSCALE lub sensor.RGB565. Biblioteka automatycznie obsługuje konwersję.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Konwertuje obraz na obraz w skali szarości (8 bitów na piksel).

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Konwertuje obraz na obraz RGB565 (16 bitów na piksel).

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Konwertuje obraz na obraz RGB565 w palecie tęczy (rainbow) (16 bitów na piksel).

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Konwertuje obraz na obraz RGB565 w palecie ironbow (16 bitów na piksel).

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Konwertuje obraz na obraz głębi RGB565 (16 bitów na piksel).

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być image.PALETTE_DEPTH lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Konwertuje obraz na obraz RGB565 zdarzeń ciemnych (Dark Event) (16 bitów na piksel).

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Konwertuje obraz na obraz RGB565 zdarzeń jasnych (Light Event) (16 bitów na piksel).

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Konwertuje obraz na obraz JPEG.

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

quality kontroluje jakość kompresji obrazu jpeg. Wartość może wynosić od 0 do 100.

subsampling może być:

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Konwertuje obraz na obraz PNG.

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Konwertuje obraz na obraz JPEG.

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

quality kontroluje jakość kompresji obrazu jpeg. Wartość może wynosić od 0 do 100.

subsampling może być:

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Informacja

Image.compress to alias dla 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

Tworzy głęboką kopię obiektu obrazu.

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Modyfikuje obraz w miejscu bez zmiany podstawowego typu obrazu.

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Modyfikuje obraz w miejscu bez zmiany podstawowego typu obrazu.

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniem image.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

copy jeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.

copy_to_fb jeśli True, obraz jest ładowany bezpośrednio do bufora ramki. copy_to_fb ma priorytet nad copy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Informacja

Image.scale to alias dla Image.crop.

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

Zapisuje kopię obrazu w systemie plików w ścieżce path.

Obsługuje pliki obrazów bmp/pgm/ppm/jpg/jpeg. Należy pamiętać, że nie można zapisać skompresowanych obrazów jpeg w formacie nieskompresowanym.

roi to prostokąt obszaru zainteresowania (x, y, w, h), z którego zapisywać. Jeśli nie jest określony, jest równy prostokątowi obrazu, co kopiuje cały obraz. Ten argument nie ma zastosowania dla obrazów JPEG.

quality to jakość kompresji jpeg używana do zapisania obrazu w formacie jpeg, jeśli obraz nie jest jeszcze skompresowany (0-100) (int).

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

flush() None

Aktualizuje bufor ramki w IDE obrazem znajdującym się w buforze ramki na kamerze.

Metody rysowania

clear(mask: Image | None = None) Image

Ustawia wszystkie piksele obrazu na zero (bardzo szybko).

mask to inny obraz używany jako maska na poziomie pikseli dla operacji. Maska powinna być obrazem z samymi czarnymi lub białymi pikselami i powinna mieć ten sam rozmiar co obraz, na którym wykonywana jest operacja. Modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych.

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

Rysuje linię od (x0, y0) do (x1, y1) na obrazie. Możesz przekazać x0, y0, x1, y1 oddzielnie lub jako krotkę (x0, y0, x1, y1).

color to krotka RGB888 dla obrazów w skali szarości lub RGB565. Domyślnie biały. Możesz jednak również przekazać podstawową wartość piksela (0-255) dla obrazów w skali szarości lub wartość RGB565 dla obrazów RGB565.

thickness kontroluje grubość linii w pikselach.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Rysuje prostokąt na obrazie. Możesz przekazać x, y, w, h oddzielnie lub jako krotkę (x, y, w, h).

color to krotka RGB888 dla obrazów w skali szarości lub RGB565. Domyślnie biały. Możesz jednak również przekazać podstawową wartość piksela (0-255) dla obrazów w skali szarości lub wartość RGB565 dla obrazów RGB565.

thickness kontroluje grubość linii w pikselach.

Przekaż fill ustawione na True, aby wypełnić prostokąt.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Rysuje okrąg na obrazie. Możesz przekazać x, y, radius oddzielnie lub jako krotkę (x, y, radius).

color to krotka RGB888 dla obrazów w skali szarości lub RGB565. Domyślnie biały. Możesz jednak również przekazać podstawową wartość piksela (0-255) dla obrazów w skali szarości lub wartość RGB565 dla obrazów RGB565.

thickness kontroluje grubość krawędzi w pikselach.

Przekaż fill ustawione na True, aby wypełnić okrąg.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Rysuje elipsę na obrazie. Możesz przekazać cx, cy, rx, ry oraz rotację (w stopniach) oddzielnie lub jako krotkę (cx, yc, rx, ry, rotation).

color to krotka RGB888 dla obrazów w skali szarości lub RGB565. Domyślnie biały. Możesz jednak również przekazać podstawową wartość piksela (0-255) dla obrazów w skali szarości lub wartość RGB565 dla obrazów RGB565.

thickness kontroluje grubość krawędzi w pikselach.

Przekaż fill ustawione na True, aby wypełnić elipsę.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Rysuje tekst 8x10 zaczynając od lokalizacji (x, y) na obrazie. Możesz przekazać x, y oddzielnie lub jako krotkę (x, y).

text to ciąg znaków do zapisania na obrazie. Zakończenia linii \n, \r oraz \r\n przesuwają kursor do następnej linii.

color to krotka RGB888 dla obrazów w skali szarości lub RGB565. Domyślnie biały. Możesz jednak również przekazać podstawową wartość piksela (0-255) dla obrazów w skali szarości lub wartość RGB565 dla obrazów RGB565.

scale można zwiększyć, aby zwiększyć/zmniejszyć rozmiar tekstu na obrazie. Możesz przekazać wartości całkowite lub zmiennoprzecinkowe większe od 0.

x_spacing pozwala dodać (jeśli dodatnie) lub odjąć (jeśli ujemne) piksele x między znakami.

y_spacing pozwala dodać (jeśli dodatnie) lub odjąć (jeśli ujemne) piksele y między znakami (dla tekstu wieloliniowego).

mono_space domyślnie True, co wymusza stałe odstępy tekstu. Dla dużych skal tekstu wygląda to okropnie. Ustaw na False, aby uzyskać odstępy znaków o niestałej szerokości, które wyglądają DUŻO lepiej.

char_rotation może wynosić 0, 90, 180, 270, aby obrócić każdy znak w ciągu o tę wartość.

char_hmirror jeśli True, odbija poziomo wszystkie znaki w ciągu.

char_vflip jeśli True, odwraca pionowo wszystkie znaki w ciągu.

string_rotation może wynosić 0, 90, 180, 270, aby obrócić ciąg o tę wartość.

string_hmirror jeśli True, odbija ciąg poziomo.

string_vflip jeśli True, odwraca ciąg pionowo.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Rysuje krzyżyk w lokalizacji x, y. Możesz przekazać x, y oddzielnie lub jako krotkę (x, y).

color to krotka RGB888 dla obrazów w skali szarości lub RGB565. Domyślnie biały. Możesz jednak również przekazać podstawową wartość piksela (0-255) dla obrazów w skali szarości lub wartość RGB565 dla obrazów RGB565.

size kontroluje, jak długo rozciągają się linie krzyżyka.

thickness kontroluje grubość krawędzi w pikselach.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Rysuje strzałkę od (x0, y0) do (x1, y1) na obrazie. Możesz przekazać x0, y0, x1, y1 oddzielnie lub jako krotkę (x0, y0, x1, y1).

color to krotka RGB888 dla obrazów w skali szarości lub RGB565. Domyślnie biały. Możesz jednak również przekazać podstawową wartość piksela (0-255) dla obrazów w skali szarości lub wartość RGB565 dla obrazów RGB565.

thickness kontroluje grubość linii w pikselach.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Rysuje wynik wykrywania na obrazie. detection to 6-elementowa krotka (rx, ry, rw, rh, cx, cy) opisująca prostokąt ograniczający oraz centroid (zwykle zwracane przez kod NN lub śledzenia kolorów).

color1 to kolor prostokąta, a color2 to kolor krzyżyka centroidu. size to rozmiar krzyżyka centroidu, thickness kontroluje szerokość obrysu, a fill wypełnia prostokąt.

label jeśli podany, jest rysowany w pobliżu prostokąta, przesunięty o label_offset (x, y).

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Rysuje krawędzie linii między listą narożników zwróconą przez metody takie jak blob.corners. Corners to krotka o czterech wartościach złożona z dwuwartościowych krotek x/y. Np. [(x1,y1),(x2,y2),(x3,y3),(x4,y4)].

color to krotka RGB888 dla obrazów w skali szarości lub RGB565. Domyślnie biały. Możesz jednak również przekazać podstawową wartość piksela (0-255) dla obrazów w skali szarości lub wartość RGB565 dla obrazów RGB565.

size jeśli większe od 0, powoduje narysowanie narożników jako okręgów o promieniu size.

thickness kontroluje grubość linii w pikselach.

Przekaż fill ustawione na True, aby wypełnić okręgi narożników, jeśli są rysowane.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Rysuje image, którego lewy górny narożnik zaczyna się w lokalizacji x, y. Możesz przekazać x, y oddzielnie lub jako krotkę (x, y). Ta metoda automatycznie obsługuje renderowanie przekazanego obrazu w prawidłowym formacie pikseli dla obrazu docelowego, jednocześnie bezproblemowo obsługując przycinanie.

Możesz również przekazać ścieżkę zamiast obiektu obrazu, aby ta metoda automatycznie wczytała obraz z dysku i użyła go w jednym kroku. Np. draw_image("test.jpg").

x_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku x (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity poziomo. Należy pamiętać, że jeśli y_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

y_scale kontroluje, o ile wyświetlany obraz jest skalowany w kierunku y (float). Jeśli ta wartość jest ujemna, obraz zostanie odbity pionowo. Należy pamiętać, że jeśli x_scale nie jest określone, zostanie ono dopasowane do x_scale, aby zachować proporcje.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h) obrazu źródłowego do narysowania. Pozwala to wyodrębnić tylko piksele w ROI, aby je przeskalować i narysować na obrazie docelowym.

rgb_channel to kanał RGB (0=R, G=1, B=2) do wyodrębnienia z obrazu RGB565 (jeśli przekazany) i wyrenderowania na obrazie docelowym. Na przykład, jeśli przekażesz rgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.

alpha kontroluje, jaka część obrazu źródłowego jest mieszana z obrazem docelowym. Wartość 255 rysuje nieprzezroczysty obraz źródłowy, podczas gdy wartość niższa niż 255 daje mieszankę obrazu źródłowego i docelowego. 0 powoduje brak modyfikacji obrazu docelowego.

color_palette jeśli nie jest None, może być wartością enum palety kolorów lub obrazem RGB565 o łącznie 256 pikselach używanym jako tablica przeglądowa kolorów dla wartości w skali szarości dowolnego obrazu źródłowego. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

alpha_palette jeśli nie jest None, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartość alpha rysowanego obrazu źródłowego na poziomie pojedynczego piksela, pozwalając precyzyjnie kontrolować wartość alfa pikseli na podstawie ich wartości w skali szarości. Wartość piksela 255 w tablicy przeglądowej alfa jest nieprzezroczysta, a wszystko poniżej 255 staje się coraz bardziej przezroczyste aż do 0. Stosowane po wyodrębnieniu rgb_channel, jeśli jest używane.

hint to logiczny OR flag wymienionych w Flagi podpowiedzi (w tym image.BLACK_BACKGROUND, który jest tutaj obsługiwany).

transform to tablica ndarray 3x3 używana do wykonania transformacji perspektywicznej na obrazie. Obecnie obsługiwane tylko na OpenMV Cam N6, ponieważ ma ona GPU, który może to zrobić sprzętowo.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

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

Rysuje punkty kluczowe obiektu keypoints na obrazie. Możesz również przekazać listę trójwartościowych krotek zawierających (x, y, rotation_angle_in_degrees), aby ponownie wykorzystać tę metodę do rysowania glifów punktów kluczowych, które są okręgiem z linią wskazującą w określonym kierunku.

color to krotka RGB888 dla obrazów w skali szarości lub RGB565. Domyślnie biały. Możesz jednak również przekazać podstawową wartość piksela (0-255) dla obrazów w skali szarości lub wartość RGB565 dla obrazów RGB565.

size kontroluje, jak duże są punkty kluczowe.

thickness kontroluje grubość linii w pikselach.

Przekaż fill ustawione na True, aby wypełnić punkty kluczowe.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Wykonuje wypełnienie zalewowe (flood fill) regionu obrazu zaczynając od lokalizacji x, y. Możesz przekazać x, y oddzielnie lub jako krotkę (x, y).

seed_threshold kontroluje, jak bardzo dowolny piksel w obszarze wypełnienia może różnić się od oryginalnego piksela początkowego.

floating_threshold kontroluje, jak bardzo dowolny piksel w obszarze wypełnienia może różnić się od dowolnych pikseli sąsiednich.

color to krotka RGB888 dla obrazów w skali szarości lub RGB565. Domyślnie biały. Możesz jednak również przekazać podstawową wartość piksela (0-255) dla obrazów w skali szarości lub wartość RGB565 dla obrazów RGB565.

Przekaż invert jako True, aby zmienić kolor wszystkiego poza połączonym obszarem wypełnienia zalewowego.

Przekaż clear_background jako True, aby wyzerować pozostałe piksele, którym wypełnienie zalewowe nie zmieniło koloru.

mask to inny obraz używany jako maska na poziomie pikseli dla operacji. Maska powinna być obrazem z samymi czarnymi lub białymi pikselami i powinna mieć ten sam rozmiar co obraz, na którym wykonywana jest operacja. Tylko piksele ustawione w masce są oceniane podczas wypełniania zalewowego.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

Ta metoda nie jest dostępna na OpenMV Cam M4.

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

Rasteryzuje tablicę ndarray zdarzeń (wypełnioną przez csi.IOCTL_GENX320_READ_EVENTS) na obraz Image w celu wizualizacji. Bufor obrazu musi być obrazem GRAYSCALE 320x320.

Dla każdego wiersza csi.PIX_ON_EVENT do piksela zdarzenia dodawane jest +contrast; dla każdego wiersza csi.PIX_OFF_EVENT od piksela odejmowane jest -contrast. Zdarzenia wyzwalające są ignorowane. Wartości pikseli są ograniczane do zakresu 0-255.

clear jeśli True, resetuje bufor obrazu do brightness przed rysowaniem — każda ramka staje się świeżym renderem zawierającym tylko zdarzenia. Ustaw na False, aby akumulować zdarzenia w wielu wywołaniach (przydatne dla śladów ruchu z długim czasem ekspozycji).

brightness kontroluje bazową wartość średniej szarości, do której bufor jest resetowany, gdy clear ma wartość True. Domyślna wartość 128 umieszcza zdarzenia ON na jasnym końcu, a zdarzenia OFF na ciemnym końcu z równym zapasem.

contrast kontroluje, o ile każde zdarzenie przesuwa swój piksel — wyższe wartości sprawiają, że zdarzenia są bardziej widoczne, kosztem szybkiego nasycenia, gdy wiele zdarzeń trafia na ten sam piksel.

Metody maskowania

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

Zeruje prostokątną część obrazu. Jeśli nie podano żadnych argumentów, ta metoda zeruje środek obrazu.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Zeruje kołową część obrazu. Jeśli nie podano żadnych argumentów, ta metoda zeruje środek obrazu.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Zeruje część obrazu w kształcie elipsy. Jeśli nie podano żadnych argumentów, ta metoda zeruje środek obrazu.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

Metody binarne

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

Ustawia wszystkie piksele obrazu na czarne lub białe w zależności od tego, czy każdy piksel mieści się w jednej z krotek progowych w thresholds.

thresholds to lista krotek (lo, hi) dla obrazów w skali szarości lub krotek (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) dla obrazów RGB565. Zamienione wartości min/max są automatycznie poprawiane; brakujące składowe domyślnie przyjmują maksymalny zakres.

invert odwraca dopasowanie progu.

zero jeśli True, zeruje piksele spełniające próg, pozostawiając pozostałe nietknięte.

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

to_bitmap jeśli True, konwertuje dane obrazu na bitmapę 1-bitową na piksel. Dla bardzo małych obrazów może to wymagać copy=True.

copy jeśli True, zwraca nowy obraz na stercie zamiast modyfikować obraz źródłowy.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

invert() Image

Odwraca wszystkie wartości pikseli obrazu (każdy piksel staje się 255 - pixel dla kanałów 8-bitowych).

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer/yuv.

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

Wykonuje logiczne AND tego obrazu z innym obrazem.

image może być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Wykonuje logiczne NAND tego obrazu z innym obrazem.

image może być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Wykonuje logiczne OR tego obrazu z innym obrazem.

image może być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Wykonuje logiczne NOR tego obrazu z innym obrazem.

image może być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Wykonuje logiczne XOR tego obrazu z innym obrazem.

image może być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Wykonuje logiczne XNOR tego obrazu z innym obrazem.

image może być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

Metody ISP

awb(max: bool = False) Image

Wykonuje automatyczny balans bieli na obrazie przy użyciu algorytmu gray-world. Działa na surowych obrazach Bayer lub RGB565. Nie ma wpływu na obrazy binarne/w skali szarości.

max jeśli True, używa zamiast tego algorytmu white-patch.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani yuv.

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

Mnoży przekazaną zmiennoprzecinkową macierz korekcji koloru przez obraz. Macierze mogą być 3x3 lub 3x4 (z kolumną przesunięcia), w postaci zagnieżdżonej listy lub płaskiej listy:

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

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer/yuv.

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

Dostosowuje gamma, kontrast oraz jasność obrazu.

gamma stosuje pow(pixel, 1/gamma) po normalizacji. Wartości większe od 1.0 rozjaśniają; mniejsze od 1.0 przyciemniają.

contrast stosuje pixel * contrast po normalizacji.

brightness stosuje pixel + brightness po normalizacji.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer/yuv.

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

Alias dla Image.gamma.

Metody matematyczne

negate() Image

Alias dla Image.invert.

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

Alias dla Image.draw_image(). Zastępuje ten obraz obrazem image (lub transformuje ten obraz w miejscu, jeśli image zostanie pominięte) przy użyciu standardowych argumentów słownych draw_image. Argument transform to tablica ndarray 3x3 opisująca transformację perspektywiczną (obsługiwana tylko na kamerach OpenMV z włączonym ULAB).

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

Alias dla Image.replace().

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

Alias dla Image.replace().

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

Dodaje obraz do tego obrazu piksel po pikselu.

image może być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Odejmuje obraz image od tego obrazu piksel po pikselu (self - image).

image może być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Ta metoda przyjmuje również pełny zestaw argumentów słownych Image.draw_image() (x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint, transform).

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Odwrotne odejmowanie: zastępuje ten obraz wynikiem image - self piksel po pikselu. Poza tym identyczne z Image.sub().

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

Zwraca obraz będący minimum dwóch obrazów piksel po pikselu.

image może być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Zwraca obraz będący maksimum dwóch obrazów piksel po pikselu.

image może być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Zwraca obraz bezwzględnej różnicy między dwoma obrazami (np. ||a-b||).

image może być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

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

Alias dla Image.draw_image(). Wykonuje mieszanie alfa obrazu image z tym obrazem. alpha to liczba całkowita 0-256; wartości bliższe 256 faworyzują obraz źródłowy. Przyjmuje wszystkie argumenty słowne Image.draw_image().

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

Wykonuje wyrównanie histogramu na obrazie, aby znormalizować kontrast i jasność.

adaptive jeśli True, wykonuje adaptacyjne wyrównanie histogramu (wolniejsze, ale na ogół lepsze).

clip_limit ogranicza kontrast w wariancie adaptacyjnym (mała wartość jak 10 daje dobre wyniki CLAHE).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

Metody filtrowania

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

Usuwa piksele z krawędzi segmentowanych obszarów. Splata jądro ((size*2)+1)x((size*2)+1) po obrazie, czyszcząc piksel środkowy, jeśli więcej niż threshold sąsiadów jest wyczyszczonych (działa jak standardowa erozja, jeśli threshold jest None).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer/yuv.

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

Dodaje piksele do krawędzi segmentowanych obszarów. Splata jądro ((size*2)+1)x((size*2)+1) po obrazie, ustawiając piksel środkowy, jeśli więcej niż threshold sąsiadów jest ustawionych (działa jak standardowa dylatacja, jeśli threshold jest None).

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer/yuv.

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

Wykonuje erozję, a następnie dylatację. Zobacz Image.erode() oraz Image.dilate().

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer/yuv.

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

Wykonuje dylatację, a następnie erozję. Zobacz Image.dilate() oraz Image.erode().

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer/yuv.

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

Zwraca różnicę obrazu między obrazem a obrazem po operacji Image.open().

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer/yuv.

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

Zwraca różnicę obrazu między obrazem a obrazem po operacji Image.close().

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer/yuv.

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

Standardowy filtr rozmycia średniego przy użyciu filtra pudełkowego.

size to rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.

threshold jeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego. offset przesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej). invert odwraca wyjście binarne.

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Uruchamia filtr percentylowy na obrazie (domyślnie mediana).

size to rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.

percentile to percentyl do wybrania z każdego jądra (0 = min, 0.5 = mediana, 1.0 = max). Domyślnie 0.5.

threshold jeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego. offset przesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej). invert odwraca wyjście binarne.

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer/yuv.

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

Zastępuje każdy piksel modą jego sąsiadów. Może powodować artefakty na krawędziach obrazów RGB z powodu operacji nieliniowej.

size to rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.

threshold jeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego. offset przesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej). invert odwraca wyjście binarne.

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Uruchamia filtr punktu środkowego (midpoint) na obrazie. Ten filtr znajduje punkt środkowy ((max-min)/2) każdego sąsiedztwa pikseli na obrazie.

size to rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.

bias kontroluje mieszanie min/max. 0 dla filtrowania tylko min, 1.0 dla filtrowania tylko max. Używając bias możesz filtrować obraz metodą min/max.

threshold jeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego. offset przesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej). invert odwraca wyjście binarne.

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Splata obraz z dowolnym jądrem filtra.

size kontroluje rozmiar jądra, który musi mieć ((size*2)+1)x((size*2)+1) elementów.

kernel to jądro do splotu, jako płaska 1-wymiarowa lista/krotka ((size*2)+1)*((size*2)+1) elementów lub jako 2-wymiarowa lista/krotka z ((size*2)+1) wierszami po ((size*2)+1) elementów.

mul to multiplikatywna skala kontrastu (domyślnie 1.0).

add to addytywne przesunięcie jasności (domyślnie 0.0).

threshold jeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego. offset przesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej). invert odwraca wyjście binarne.

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Splata obraz z wygładzającym jądrem gaussowskim.

size to rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.

unsharp jeśli True, wykonuje operację maski wyostrzającej (unsharp mask) (wyostrza krawędzie) zamiast zwykłego gaussa.

mul to multiplikatywna skala kontrastu (domyślnie 1.0).

add to addytywne przesunięcie jasności (domyślnie 0.0).

threshold jeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego. offset przesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej). invert odwraca wyjście binarne.

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Splata obraz z jądrem laplasjanu wykrywającym krawędzie.

size to rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.

sharpen jeśli True, wyostrza obraz zamiast wyprowadzać surową, nieprogowaną odpowiedź krawędziową.

mul to multiplikatywna skala kontrastu (domyślnie 1.0).

add to addytywne przesunięcie jasności (domyślnie 0.0).

threshold jeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego. offset przesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej). invert odwraca wyjście binarne.

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Splata obraz z filtrem dwustronnym (bilateral) (wygładzanie z zachowaniem krawędzi).

size to rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.

color_sigma kontroluje tolerancję dopasowania koloru; większe wartości dają więcej rozmycia koloru.

space_sigma kontroluje rozmycie przestrzenne; większe wartości dają więcej rozmycia pikseli.

threshold jeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego. offset przesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej). invert odwraca wyjście binarne.

mask to obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer/yuv.

Metody geometryczne

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

Ponownie rzutuje obraz ze współrzędnych kartezjańskich na liniowe współrzędne biegunowe.

Ustaw reverse=True, aby ponownie rzutować w przeciwnym kierunku.

x i y określają współrzędną środka transformacji w pikselach obrazu. Jeśli x jest None (domyślnie), jest ustawiane na połowę szerokości obrazu; podobnie y domyślnie przyjmuje połowę wysokości obrazu.

Liniowa reprojekcja biegunowa zamienia obrót obrazu na przesunięcie w osi x.

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

Ta metoda nie jest dostępna na OpenMV Cam M4.

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

Ponownie rzutuje obraz ze współrzędnych kartezjańskich na logarytmiczne współrzędne biegunowe.

Ustaw reverse=True, aby ponownie rzutować w przeciwnym kierunku.

x i y określają współrzędną środka transformacji w pikselach obrazu. Jeśli x jest None (domyślnie), jest ustawiane na połowę szerokości obrazu; podobnie y domyślnie przyjmuje połowę wysokości obrazu.

Logarytmiczna reprojekcja biegunowa zamienia obrót obrazu na przesunięcie w osi x, a skalowanie/przybliżanie na przesunięcie w osi y.

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

Ta metoda nie jest dostępna 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

Wykonuje korekcję obiektywu, aby usunąć efekt rybiego oka spowodowany zniekształceniem obiektywu.

strength to float określający, jak bardzo usuwać efekt rybiego oka z obrazu. Wypróbuj domyślnie 1.8, a następnie zwiększaj lub zmniejszaj od tej wartości, aż obraz będzie wyglądał dobrze.

zoom to wielkość przybliżenia obrazu. Domyślnie 1.0.

x_corr zmiennoprzecinkowe przesunięcie piksela od środka. Może być ujemne lub dodatnie.

y_corr zmiennoprzecinkowe przesunięcie piksela od środka. Może być ujemne lub dodatnie.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Koryguje problemy perspektywy na obrazie poprzez wykonanie obrotu 3D bufora ramki.

x_rotation to liczba stopni obrotu obrazu w buforze ramki wokół osi x (tzn. obraca to obraz w górę i w dół).

y_rotation to liczba stopni obrotu obrazu w buforze ramki wokół osi y (tzn. obraca to obraz w lewo i w prawo).

z_rotation to liczba stopni obrotu obrazu w buforze ramki wokół osi z (tzn. obraca to obraz w miejscu).

x_translation to liczba jednostek do przesunięcia obrazu w lewo lub w prawo po obrocie. Ponieważ to przesunięcie jest stosowane w przestrzeni 3D, jednostki nie są pikselami…

y_translation to liczba jednostek do przesunięcia obrazu w górę lub w dół po obrocie. Ponieważ to przesunięcie jest stosowane w przestrzeni 3D, jednostki nie są pikselami…

zoom to wielkość przybliżenia obrazu. Domyślnie 1.0.

fov to pole widzenia używane do wewnętrznej projekcji 2D->3D. Gdy fov zbliża się do 0, obraz jest umieszczany w nieskończoności; gdy zbliża się do 180, obraz jest umieszczany wewnątrz widoku.

corners to lista czterech krotek (x, y) używanych do zbudowania homografii 4-punktowej mapującej narożniki na (0, 0), (image_width-1, 0), (image_width-1, image_height-1) oraz (0, image_height-1) przed zastosowaniem obrotu 3D. Przydatne do transformacji z widoku z lotu ptaka.

Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji ..

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

Ta metoda nie jest dostępna na OpenMV Cam M4.

Metody pobierania

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

Oblicza podobieństwo między dwoma obrazami przy użyciu wskaźnika podobieństwa strukturalnego (SSIM). SSIM mieści się w zakresie od -1 (przeciwne) do 1 (identyczne). Zwraca obiekt image.similarity.

image to obraz do porównania (obiekt obrazu lub ciąg ścieżki, np. "test.jpg").

x, y, x_scale, y_scale, roi, rgb_channel, alpha, color_palette, alpha_palette, hint oraz transform przyjmują te same wartości co Image.draw_image().

dssim jeśli True, zwraca zamiast tego wskaźnik niepodobieństwa strukturalnego (DSSIM), gdzie 0 oznacza identyczne, a 1 oznacza całkowicie różne.

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

Oblicza znormalizowany histogram dla wszystkich kanałów koloru dla roi i zwraca obiekt image.histogram. Dostępne również jako Image.get_hist() lub Image.histogram().

thresholds to lista krotek (lo, hi) dla obrazów w skali szarości lub krotek (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) dla obrazów RGB565. Jeśli przekazane, histogram jest obliczany tylko na pikselach mieszczących się w progach.

invert odwraca dopasowanie progu.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

bins (skala szarości) lub l_bins/a_bins/b_bins (RGB565) ustawiają liczbę przedziałów histogramu na kanał. Musi być większe od 2. Domyślnie maksymalna liczba przedziałów na kanał.

difference może być ustawione na obiekt obrazu, aby operować na różnicy między bieżącym obrazem a tym obrazem bez dodatkowego bufora.

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Oblicza średnią, medianę, modę, odchylenie standardowe, min, max, dolny kwartyl oraz górny kwartyl dla wszystkich kanałów koloru dla roi i zwraca obiekt image.statistics. Dostępne również jako Image.get_stats() lub Image.statistics().

thresholds to lista krotek (lo, hi) dla obrazów w skali szarości lub krotek (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) dla obrazów RGB565. Jeśli przekazane, statystyki są obliczane tylko na pikselach mieszczących się w progach.

invert odwraca dopasowanie progu.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

bins (skala szarości) lub l_bins/a_bins/b_bins (RGB565) ustawiają liczbę przedziałów histogramu na kanał. Musi być większe od 2. Domyślnie maksymalna liczba przedziałów na kanał.

difference może być ustawione na obiekt obrazu, aby operować na różnicy między bieżącym obrazem a tym obrazem bez dodatkowego bufora.

Nieobsługiwane na obrazach skompresowanych ani obrazach 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

Oblicza regresję liniową (Theil-Sen) na wszystkich progowanych pikselach obrazu. Zwraca obiekt image.line lub None, jeśli nie znaleziono linii.

thresholds to lista krotek (lo, hi) dla obrazów w skali szarości lub krotek (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) dla obrazów RGB565.

invert odwraca dopasowanie progu.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

x_stride i y_stride kontrolują, ile pikseli jest pomijanych podczas oceny obrazu.

area_threshold minimalna powierzchnia prostokąta ograniczającego; mniejsze wyniki zwracają None.

pixels_threshold minimalna liczba progowanych pikseli; mniejsze wyniki zwracają None.

target_size to krotka (w, h). ROI jest skalowane obszarowo w dół, aby zmieścić się w tym rozmiarze przed uruchomieniem algorytmu O(N^2). Domyślnie (80, 60).

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

Metody wykrywania

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]

Znajduje wszystkie plamy (blob) (połączone obszary pikseli, które przechodzą test progu) na obrazie i zwraca listę obiektów image.blob.

thresholds to lista krotek (lo, hi) dla obrazów w skali szarości lub krotek (l_lo, l_hi, a_lo, a_hi, b_lo, b_hi) dla obrazów RGB565 (kanały LAB). Można przekazać do 32 krotek. Zamienione wartości min/max są automatycznie poprawiane; brakujące składowe domyślnie przyjmują maksymalny zakres.

invert odwraca dopasowanie progu.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

x_stride i y_stride kontrolują, ile pikseli jest pomijanych podczas wyszukiwania plamy (blob). Zwiększ, jeśli wiadomo, że plamy są duże.

area_threshold minimalna powierzchnia prostokąta ograniczającego; mniejsze plamy są filtrowane.

pixels_threshold minimalna liczba progowanych pikseli; mniejsze plamy są filtrowane.

merge jeśli True, scala plamy, których prostokąty ograniczające się przecinają. margin powiększa/pomniejsza prostokąty ograniczające używane do przecięcia. Scalone plamy wykonują OR na swoich wektorach bitowych code (jeden bit na próg).

threshold_cb jest wywoływane dla każdej plamy po progowaniu; zwróć True, aby zachować, False, aby odfiltrować.

merge_cb jest wywoływane dla każdej pary plam mających zostać scalonych; zwróć True, aby zezwolić na scalenie, False, aby mu zapobiec.

x_hist_bins_max jeśli niezerowe, wypełnia każdą plamę projekcją x_histogram używając tylu przedziałów.

y_hist_bins_max jeśli niezerowe, wypełnia każdą plamę projekcją y_histogram używając tylu przedziałów.

Nieobsługiwane na obrazach skompresowanych ani obrazach 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]

Znajduje wszystkie nieskończone linie na obrazie przy użyciu transformaty Hougha. Zwraca listę obiektów image.line.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

x_stride i y_stride kontrolują, ile pikseli jest pomijanych podczas transformaty Hougha.

threshold minimalna magnituda linii (suma magnitud sobela wzdłuż linii); linie poniżej tej wartości są odfiltrowywane.

theta_margin i rho_margin kontrolują scalanie: linie mieszczące się w tych progach są scalane.

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer.

Ta metoda nie jest dostępna 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]

Znajduje segmenty linii na obrazie. Zwraca listę obiektów image.line.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

merge_distance to maksymalna odległość w pikselach między dwoma segmentami, aby zostały scalone.

max_theta_difference to maksymalna różnica theta w stopniach między segmentami, aby zostały scalone.

Ta metoda nie jest dostępna 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]

Znajduje okręgi na obrazie przy użyciu transformaty Hougha. Zwraca listę obiektów image.circle.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

x_stride i y_stride kontrolują, ile pikseli jest pomijanych podczas transformaty Hougha.

threshold minimalna magnituda okręgu (suma magnitud sobela wzdłuż okręgu); okręgi poniżej tej wartości są odfiltrowywane.

x_margin, y_margin oraz r_margin kontrolują scalanie: okręgi mieszczące się w tych progach są scalane.

r_min minimalny promień okręgu. Domyślnie 2.

r_max maksymalny promień okręgu. Domyślnie min(roi.w/2, roi.h/2).

r_step rozmiar kroku promienia. Domyślnie 2.

Ta metoda nie jest dostępna na OpenMV Cam M4.

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

Znajduje prostokąty na obrazie przy użyciu algorytmu wykrywania czworokątów apriltag. Zwraca listę obiektów image.rect.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

threshold minimalna magnituda krawędzi (suma magnitud sobela wzdłuż krawędzi prostokąta); prostokąty poniżej tej wartości są odfiltrowywane.

Ta metoda nie jest dostępna na OpenMV Cam M4.

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

Znajduje wszystkie kody qrcode w roi i zwraca listę obiektów image.qrcode.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

Ta metoda nie jest dostępna 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]

Znajduje wszystkie apriltagi w roi i zwraca listę obiektów image.apriltag.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

families to maska bitowa rodzin tagów do dekodowania. Jest to logiczny OR z:

Domyślnie image.TAG36H11. Czas wykrywania skaluje się wraz z liczbą włączonych rodzin.

fx i fy to ogniskowe kamery X i Y w pikselach.

cx i cy to środek obrazu, zwykle image.width()/2 oraz image.height()/2.

Nieobsługiwane na obrazach skompresowanych.

Ta metoda nie jest dostępna na OpenMV Cam M4.

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

Znajduje wszystkie kody datamatrix w roi i zwraca listę obiektów image.datamatrix.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

effort kontroluje, ile czasu poświęcić na próby znalezienia dopasowań data matrix. Wyższe wartości poprawiają wykrywanie kosztem liczby klatek na sekundę. Wartości poniżej ~160 nie wykrywają; wartości powyżej ~240 dają malejące korzyści. Domyślnie 200.

Ta metoda nie jest dostępna na OpenMV Cam M4.

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

Znajduje wszystkie kody kreskowe 1D w roi i zwraca listę obiektów image.barcode. Skanuje zarówno poziomo, jak i pionowo.

Obsługiwane typy kodów kreskowych: 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 to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

Ta metoda nie jest dostępna 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

Znajduje przesunięcie translacji tego obrazu względem template przy użyciu korelacji fazowej. Zwraca obiekt image.displacement.

roi to prostokąt obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

template_roi to obszar zainteresowania szablonu. Domyślnie prostokąt obrazu szablonu. roi oraz template_roi muszą mieć tę samą szerokość i wysokość.

logpolar jeśli True, zwraca zmianę obrotu/skali zamiast translacji x/y.

fix_rotation_scale jeśli True, oblicza przesunięcie po wyrównaniu obrotu i skali (ma znaczenie tylko gdy logpolar=False).

Informacja

Używaj tej metody na rozmiarach obrazu będących potęgą 2 (np. sensor.B64X64).

Nieobsługiwane na obrazach skompresowanych ani obrazach bayer. Niedostępne 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

Próbuje znaleźć pierwszą lokalizację na obrazie, gdzie template dopasowuje się przy użyciu znormalizowanej korelacji krzyżowej. Zwraca krotkę prostokąta ograniczającego (x, y, w, h) lub None.

template to obraz w skali szarości do dopasowania do tego obrazu.

threshold to wartość (0.0-1.0). Wyższe wartości zmniejszają liczbę fałszywych alarmów i wykryć; niższe wartości działają odwrotnie.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

step to liczba pikseli do pominięcia podczas wyszukiwania (używane tylko w trybie image.SEARCH_EX).

search to image.SEARCH_DS (szybsze wyszukiwanie diamentowe) lub image.SEARCH_EX (wyszukiwanie wyczerpujące).

Działa tylko na obrazach w skali szarości.

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

Przeszukuje obraz w poszukiwaniu obszarów pasujących do przekazanej kaskady Haara i zwraca listę krotek prostokątów ograniczających (x, y, w, h). Zwraca pustą listę, jeśli nie znaleziono żadnych cech.

cascade to obiekt kaskady Haara (zobacz image.HaarCascade()).

threshold (0.0-1.0). Niższe wartości zwiększają wskaźnik wykrywania oraz wskaźnik fałszywych alarmów.

scale musi być większe od 1.0. Wyższe wartości działają szybciej, ale dają gorsze dopasowania.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

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

Szuka źrenicy w krotce obszaru zainteresowania (x, y, w, h) wokół oka. Zwraca lokalizację (x, y) źrenicy lub (0, 0), jeśli żadnej nie znaleziono.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h).

Działa tylko na obrazach w skali szarości.

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

Wyodrębnia punkty kluczowe LBP (lokalne wzorce binarne) z obszaru zainteresowania. Użyj image.match_descriptor(), aby porównać dwa deskryptory.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h).

Działa tylko na obrazach w skali szarości.

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

Wyodrębnia punkty kluczowe ORB z obszaru zainteresowania. Użyj image.match_descriptor(), aby porównać dwa deskryptory. Zwraca None, jeśli nie znaleziono punktów kluczowych.

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.

threshold (0-255) kontroluje liczbę wyodrębnionych narożników. Niższe progi dają więcej narożników. Użyj ~20 dla AGAST, ~60-80 dla FAST.

normalized jeśli True, wyłącza wieloskalowe wyodrębnianie punktów kluczowych.

scale_factor musi być większe od 1.0. Wyższe wartości działają szybciej, ale dają gorsze dopasowania.

max_keypoints to maksymalna liczba punktów kluczowych do zachowania.

corner_detector to image.CORNER_FAST lub image.CORNER_AGAST.

Działa tylko na obrazach w skali szarości.

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

Zmienia obraz na czarno-biały, pozostawiając jako białe piksele tylko krawędzie.

  • image.EDGE_SIMPLE - Prosty algorytm filtra górnoprzepustowego z progowaniem.

  • image.EDGE_CANNY - Algorytm wykrywania krawędzi Canny’ego.

threshold to dwuwartościowa krotka zawierająca niski próg i wysoki próg. Możesz kontrolować jakość krawędzi, dostosowując te wartości. Domyślnie (100, 200).

Działa tylko na obrazach w skali szarości.

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

Zastępuje piksele w ROI liniami HOG (histogram zorientowanych gradientów).

roi to krotka prostokąta obszaru zainteresowania (x, y, w, h). Jeśli nie jest określona, jest równa prostokątowi obrazu. Operacja dotyczy tylko pikseli w obrębie roi.

Działa tylko na obrazach w skali szarości.

Ta metoda nie jest dostępna na OpenMV Cam M4.

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

Pobiera podwójnie szeroki obraz w skali szarości zawierający wyjście dwóch sensorów kamery umieszczonych obok siebie i zastępuje jedną połowę obrazem dysparycji stereo (każdy piksel reprezentuje głębię). Np. dla dwóch kamer 320x240 przekaż obraz 640x240.

reversed Domyślnie lewy obraz jest porównywany z prawym, a prawy obraz jest zastępowany. Ustaw True, aby porównywać prawy->lewy i zastąpić lewy obraz.

max_disparity to maksymalna odległość (1-255) do przeszukania w celu znalezienia pasującego bloku pikseli przy użyciu sumy bezwzględnych różnic. Większe wartości zajmują wykładniczo więcej czasu, ale dają wyższą jakość wyjścia.

threshold jeśli suma bezwzględnych różnic między dwoma blokami jest mniejsza lub równa temu progowi, są one uznawane za pasujące.

Uruchamia wyszukiwanie selektywne (selective search) na obrazie i zwraca listę krotek prostokątów ograniczających (x, y, w, h) propozycji obiektów.

threshold to próg segmentacji; wyższe wartości dają mniej/większe obszary.

size to minimalny rozmiar obszaru po scaleniu.

a1, a2, a3 to wagi podobieństwa koloru/tekstury/rozmiaru używane podczas scalania obszarów.