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()lubto_rgb565().
Skąd pochodzą obiekty Image¶
Istnieją cztery sposoby uzyskania obiektu Image:
Z bufora ramki kamery –
csi.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ślicopy_to_fb=True).Z tablicy ndarray – przekaż tablicę float32 o kształcie
(h, w)lub(h, w, 3). Piksele są skalowane z zakresu0.0 -- 255.0odpowiednio do GRAYSCALE lub RGB565.Pusty – przekaż
(width, height, pixformat), aby przydzielić wyzerowaną powierzchnię rysunkową. Dla skompresowanych formatów pikseli (JPEG/PNG) wymagany jest argumentbuffer=, 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¶
Indeksowanie –
img[i]odczytuje pikseli(liniowo, wierszami).img[i] = valuezapisuje 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.Iteracja –
for px in img: ...przechodzi przez tablicę pikseli w tej samej kolejności co indeksowanie[].W stylu bytes –
Imageudostępnia protokół bufora odczytu, dzięki czemu można go przekazać bezpośrednio do wszystkiego, co przyjmuje obiektbytes/bytearray(np.uart.write(img),socket.send(img),hashlib.sha256(img)). Użyjbytearray(), aby uzyskać widok do odczytu/zapisu.
Flagi podpowiedzi (hint)¶
Wiele metod Image przyjmuje argument hint, który jest logicznym OR następujących flag:
image.AREA: Użyj skalowania obszarowego przy zmniejszaniu zamiast domyślnego najbliższego sąsiada.
image.BILINEAR: Użyj skalowania dwuliniowego zamiast domyślnego skalowania metodą najbliższego sąsiada.
image.BICUBIC: Użyj skalowania dwusześciennego zamiast domyślnego skalowania metodą najbliższego sąsiada.
image.CENTER: Wyśrodkuj rysowany obraz na wyświetlaczu. Stosowane po skalowaniu.
image.HMIRROR: Odbij obraz poziomo.
image.VFLIP: Odwróć obraz pionowo.
image.TRANSPOSE: Transponuj obraz (zamień x/y).
image.EXTRACT_RGB_CHANNEL_FIRST: Wykonaj wyodrębnienie rgb_channel przed skalowaniem.
image.APPLY_COLOR_PALETTE_FIRST: Zastosuj paletę kolorów przed skalowaniem.
image.SCALE_ASPECT_KEEP: Przeskaluj rysowany obraz tak, aby zmieścił się w wyświetlaczu.
image.SCALE_ASPECT_EXPAND: Przeskaluj rysowany obraz tak, aby wypełnił wyświetlacz (powoduje przycięcie)
image.SCALE_ASPECT_IGNORE: Przeskaluj rysowany obraz tak, aby wypełnił wyświetlacz (powoduje rozciągnięcie).
image.ROTATE_90: Obróć obraz o 90 stopni (to po prostu VFLIP | TRANSPOSE).
image.ROTATE_180: Obróć obraz o 180 stopni (to po prostu HMIRROR | VFLIP).
image.ROTATE_270: Obróć obraz o 270 stopni (to po prostu HMIRROR | TRANSPOSE).
image.BLACK_BACKGROUND: Załóż, że obraz tła, na którym rysujemy, jest czarny, co przyspiesza mieszanie. Obsługiwane tylko przezImage.draw_image()iImage.get_similarity().
- class image.Image(arg: str | int | ndarray, height: int = -1, pixformat: int = -1, *, buffer: bytes | bytearray | memoryview | None = None, copy_to_fb: bool = False)¶
Jeśli
argjest ciągiem znaków, tworzy to nowy obiekt obrazu z pliku znajdującego się w ścieżcearg. Obsługuje wczytywanie z dysku plików obrazów bmp/pgm/ppm/jpg/jpeg/png. Jeślicopy_to_fbma wartość true, obraz jest kopiowany do bufora ramki zamiast być przydzielany na stercie.Jeśli
argjest tablicąndarray, tworzy to nowy obiekt obrazu z tej tablicyndarray. Obiektyndarrayo kształcie(w, h)są traktowane jako obrazy w skali szarości, a(w, h, 3)jako obrazy RGB565. Obecnie obsługiwane są tylko tablicendarraystypu float32. Jeśli podczas tworzenia obrazu w ten sposób przekażesz argumentbuffer, zostanie on użyty do przechowywania danych obrazu zamiast przydzielania miejsca na stercie. Jeślicopy_to_fbma wartość true, obraz jest kopiowany do bufora ramki zamiast być przydzielany na stercie lub przy użyciubuffer.Jeśli
argjest typuint, jest on uznawany za szerokość nowego obrazu, a po nim muszą wystąpić wartośćheightoraz wartośćformat, aby utworzyć nowy pusty obiekt obrazu.formatmoż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.bufferjest w tym przypadku traktowany jako źródło danych obrazu do tworzenia obrazów. Jeśli zostanie użyty zcopy_to_fb, dane zbuffersą kopiowane do bufora ramki. Jeśli chcesz utworzyć obraz JPEG z obiektubytes()lubbytearray()zawierającego JPEG, możesz przekazaćwidth,height,image.JPEGdla JPEG wraz z ustawieniembufferna strumień bajtów JPEG, aby utworzyć obraz JPEG.Obrazy obsługują notację „[]”. Wykonaj
image[index] = 8/16-bit value, aby przypisać piksel obrazu, lubimage[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¶
- format() int¶
Zwraca
image.GRAYSCALEdla obrazów w skali szarości,image.RGB565dla obrazów RGB565,image.BAYERdla obrazów we wzorze Bayera orazimage.JPEGdla obrazów JPEG.
- 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 stylubytes. Jest to dostęp tylko do odczytu. Wywołajbytearray(), 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
xlubyznajduje się poza obrazem.xiymogą być przekazane niezależnie lub jako krotka.rgbtuplejeś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()iImage.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 ustawionymrgbtuple,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ść
pixelw 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
..xiymogą być przekazane niezależnie lub jako krotka.pixelmoż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()iImage.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
ndarrayutworzony z obrazu. Obecnie działa to tylko dla obrazów GRAYSCALE lub RGB565.dtypemoże byćb,Blubf, aby utworzyć tablicęndarrayze znakiem 8-bitową, bez znaku 8-bitową lub 32-bitową zmiennoprzecinkową. Obrazy GRAYSCALE są bezpośrednio konwertowane na obiektyndarraybez znaku 8-bitowe. Dla obiektówndarrayze znakiem 8-bitowych wartości (0:255) są mapowane na (-127:128). Dla obiektówndarray32-bitowych zmiennoprzecinkowych wartości są mapowane na (0.0:255.0). Obrazy RGB565 są konwertowane na 3-kanałowe obiektyndarray, a do każdego kanału stosowany jest ten sam proces opisany powyżej dla obrazów GRAYSCALE w zależności oddtype. Należy pamiętać, żedtypeprzyjmuje również wartości całkowite (np.ord()) odpowiedniob,Borazf.bufferjeśli nie jestNone, jest obiektembytearrayużywanym jako bufor dlandarray. JeśliNone, na stercie przydzielany jest nowy bufor do przechowywania danych obrazundarray. Możesz użyć argumentubuffer, aby bezpośrednio przydzielićndarrayw wstępnie przydzielonym buforze, oszczędzając przydzielenie na stercie oraz operację kopiowania.Zwrócony
ndarrayma 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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. 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.GRAYSCALEisensor.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ścimaskw 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 obrazachsensor.GRAYSCALElubsensor.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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. 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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. 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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. 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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. 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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, może byćimage.PALETTE_DEPTHlub 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. 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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. 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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. 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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.qualitykontroluje jakość kompresji obrazu jpeg. Wartość może wynosić od 0 do 100.subsamplingmoże być:image.JPEG_SUBSAMPLING_AUTO: Użyj najlepszego podpróbkowania dla obrazu na podstawie jakości.image.JPEG_SUBSAMPLING_444: Użyj podpróbkowania 4:4:4.image.JPEG_SUBSAMPLING_422: Użyj podpróbkowania 4:2:2.image.JPEG_SUBSAMPLING_420: Użyj podpróbkowania 4:2:0.
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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. 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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. Nie ma to specjalnego efektu, jeśli obraz już znajduje się w buforze ramki.qualitykontroluje jakość kompresji obrazu jpeg. Wartość może wynosić od 0 do 100.subsamplingmoże być:image.JPEG_SUBSAMPLING_AUTO: Użyj najlepszego podpróbkowania dla obrazu na podstawie jakości.image.JPEG_SUBSAMPLING_444: Użyj podpróbkowania 4:4:4.image.JPEG_SUBSAMPLING_422: Użyj podpróbkowania 4:2:2.image.JPEG_SUBSAMPLING_420: Użyj podpróbkowania 4:2:0.
Zwraca obiekt obrazu, dzięki czemu można wywołać kolejną metodę przy użyciu notacji
..Informacja
Image.compressto alias dlaImage.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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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_fbjeś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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. 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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (z wyłączeniemimage.BLACK_BACKGROUND, który nie jest tutaj obsługiwany).transformto tablicandarray3x3 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.copyjeśli True, tworzy głęboką kopię na stercie skonwertowanego obrazu zamiast konwertowania oryginalnego obrazu w miejscu.copy_to_fbjeśli True, obraz jest ładowany bezpośrednio do bufora ramki.copy_to_fbma priorytet nadcopy. 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.scaleto alias dlaImage.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.
roito 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.qualityto 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
..
Metody rysowania¶
- clear(mask: Image | None = None) Image¶
Ustawia wszystkie piksele obrazu na zero (bardzo szybko).
maskto 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).
colorto 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.thicknesskontroluje 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).
colorto 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.thicknesskontroluje grubość linii w pikselach.Przekaż
fillustawione 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).
colorto 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.thicknesskontroluje grubość krawędzi w pikselach.Przekaż
fillustawione 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).
colorto 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.thicknesskontroluje grubość krawędzi w pikselach.Przekaż
fillustawione 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).
textto ciąg znaków do zapisania na obrazie. Zakończenia linii\n,\roraz\r\nprzesuwają kursor do następnej linii.colorto 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.scalemoż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_spacingpozwala dodać (jeśli dodatnie) lub odjąć (jeśli ujemne) piksele x między znakami.y_spacingpozwala dodać (jeśli dodatnie) lub odjąć (jeśli ujemne) piksele y między znakami (dla tekstu wieloliniowego).mono_spacedomyś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_rotationmoże wynosić 0, 90, 180, 270, aby obrócić każdy znak w ciągu o tę wartość.char_hmirrorjeśli True, odbija poziomo wszystkie znaki w ciągu.char_vflipjeśli True, odwraca pionowo wszystkie znaki w ciągu.string_rotationmoże wynosić 0, 90, 180, 270, aby obrócić ciąg o tę wartość.string_hmirrorjeśli True, odbija ciąg poziomo.string_vflipjeś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).
colorto 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.sizekontroluje, jak długo rozciągają się linie krzyżyka.thicknesskontroluje 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).
colorto 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.thicknesskontroluje 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.
detectionto 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).color1to kolor prostokąta, acolor2to kolor krzyżyka centroidu.sizeto rozmiar krzyżyka centroidu,thicknesskontroluje szerokość obrysu, afillwypełnia prostokąt.labeljeśli podany, jest rysowany w pobliżu prostokąta, przesunięty olabel_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)].colorto 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.sizejeśli większe od 0, powoduje narysowanie narożników jako okręgów o promieniusize.thicknesskontroluje grubość linii w pikselach.Przekaż
fillustawione 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_scalekontroluje, 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śliy_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.y_scalekontroluje, 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ślix_scalenie jest określone, zostanie ono dopasowane dox_scale, aby zachować proporcje.roito 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_channelto 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żeszrgb_channel=1, wyodrębni to zielony kanał źródłowego obrazu RGB565 i narysuje go w skali szarości na obrazie docelowym.alphakontroluje, 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_palettejeśli nie jestNone, 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ębnieniurgb_channel, jeśli jest używane.alpha_palettejeśli nie jestNone, może być obrazem GRAYSCALE o łącznie 256 pikselach używanym jako paleta alfa, która moduluje wartośćalpharysowanego 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ębnieniurgb_channel, jeśli jest używane.hintto logiczny OR flag wymienionych w Flagi podpowiedzi (w tymimage.BLACK_BACKGROUND, który jest tutaj obsługiwany).transformto tablicandarray3x3 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.
colorto 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.sizekontroluje, jak duże są punkty kluczowe.thicknesskontroluje grubość linii w pikselach.Przekaż
fillustawione 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_thresholdkontroluje, jak bardzo dowolny piksel w obszarze wypełnienia może różnić się od oryginalnego piksela początkowego.floating_thresholdkontroluje, jak bardzo dowolny piksel w obszarze wypełnienia może różnić się od dowolnych pikseli sąsiednich.colorto 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ż
invertjako True, aby zmienić kolor wszystkiego poza połączonym obszarem wypełnienia zalewowego.Przekaż
clear_backgroundjako True, aby wyzerować pozostałe piksele, którym wypełnienie zalewowe nie zmieniło koloru.maskto 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 obrazImagew celu wizualizacji. Bufor obrazu musi być obrazem GRAYSCALE 320x320.Dla każdego wiersza
csi.PIX_ON_EVENTdo piksela zdarzenia dodawane jest+contrast; dla każdego wierszacsi.PIX_OFF_EVENTod piksela odejmowane jest-contrast. Zdarzenia wyzwalające są ignorowane. Wartości pikseli są ograniczane do zakresu 0-255.clearjeśli True, resetuje bufor obrazu dobrightnessprzed 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).brightnesskontroluje bazową wartość średniej szarości, do której bufor jest resetowany, gdyclearma wartość True. Domyślna wartość 128 umieszcza zdarzenia ON na jasnym końcu, a zdarzenia OFF na ciemnym końcu z równym zapasem.contrastkontroluje, 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.thresholdsto 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.invertodwraca dopasowanie progu.zerojeśli True, zeruje piksele spełniające próg, pozostawiając pozostałe nietknięte.maskto obraz binarny używany jako maska na poziomie pikseli; modyfikowane są tylko piksele ustawione w masce.to_bitmapjeśli True, konwertuje dane obrazu na bitmapę 1-bitową na piksel. Dla bardzo małych obrazów może to wymagaćcopy=True.copyjeś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 - pixeldla 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.
imagemoże być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).maskto 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.
imagemoże być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).maskto 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.
imagemoże być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).maskto 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.
imagemoże być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).maskto 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.
imagemoże być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).maskto 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.
imagemoże być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).maskto 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.
maxjeś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.
gammastosujepow(pixel, 1/gamma)po normalizacji. Wartości większe od 1.0 rozjaśniają; mniejsze od 1.0 przyciemniają.contraststosujepixel * contrastpo normalizacji.brightnessstosujepixel + brightnesspo 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.
Metody matematyczne¶
- negate() Image¶
Alias dla
Image.invert.
- replace(image: Image | None = None, **kwargs) Image¶
Alias dla
Image.draw_image(). Zastępuje ten obraz obrazemimage(lub transformuje ten obraz w miejscu, jeśliimagezostanie pominięte) przy użyciu standardowych argumentów słownychdraw_image. Argumenttransformto tablicandarray3x3 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.
imagemoże być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).maskto 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
imageod tego obrazu piksel po pikselu (self - image).imagemoże być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).maskto 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 - selfpiksel po pikselu. Poza tym identyczne zImage.sub().
- min(image: Image, mask: Image | None = None) Image¶
Zwraca obraz będący minimum dwóch obrazów piksel po pikselu.
imagemoże być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).maskto 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.
imagemoże być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).maskto 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||).
imagemoże być obiektem obrazu, ścieżką do nieskompresowanego pliku obrazu (bmp/pgm/ppm) lub wartością skalarną (krotką RGB888 lub podstawową wartością piksela).maskto 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 obrazuimagez tym obrazem.alphato liczba całkowita 0-256; wartości bliższe 256 faworyzują obraz źródłowy. Przyjmuje wszystkie argumenty słowneImage.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ść.
adaptivejeśli True, wykonuje adaptacyjne wyrównanie histogramu (wolniejsze, ale na ogół lepsze).clip_limitogranicza kontrast w wariancie adaptacyjnym (mała wartość jak 10 daje dobre wyniki CLAHE).maskto 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żthresholdsąsiadów jest wyczyszczonych (działa jak standardowa erozja, jeślithresholdjest None).maskto 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żthresholdsąsiadów jest ustawionych (działa jak standardowa dylatacja, jeślithresholdjest None).maskto 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()orazImage.dilate().maskto 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()orazImage.erode().maskto 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().maskto 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().maskto 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.
sizeto rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.thresholdjeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego.offsetprzesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej).invertodwraca wyjście binarne.maskto 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).
sizeto rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.percentileto percentyl do wybrania z każdego jądra (0 = min, 0.5 = mediana, 1.0 = max). Domyślnie 0.5.thresholdjeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego.offsetprzesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej).invertodwraca wyjście binarne.maskto 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.
sizeto rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.thresholdjeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego.offsetprzesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej).invertodwraca wyjście binarne.maskto 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.
sizeto rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.biaskontroluje mieszanie min/max. 0 dla filtrowania tylko min, 1.0 dla filtrowania tylko max. Używającbiasmożesz filtrować obraz metodą min/max.thresholdjeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego.offsetprzesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej).invertodwraca wyjście binarne.maskto 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.
sizekontroluje rozmiar jądra, który musi mieć((size*2)+1)x((size*2)+1)elementów.kernelto 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.multo multiplikatywna skala kontrastu (domyślnie 1.0).addto addytywne przesunięcie jasności (domyślnie 0.0).thresholdjeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego.offsetprzesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej).invertodwraca wyjście binarne.maskto 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.
sizeto rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.unsharpjeśli True, wykonuje operację maski wyostrzającej (unsharp mask) (wyostrza krawędzie) zamiast zwykłego gaussa.multo multiplikatywna skala kontrastu (domyślnie 1.0).addto addytywne przesunięcie jasności (domyślnie 0.0).thresholdjeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego.offsetprzesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej).invertodwraca wyjście binarne.maskto 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.
sizeto rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.sharpenjeśli True, wyostrza obraz zamiast wyprowadzać surową, nieprogowaną odpowiedź krawędziową.multo multiplikatywna skala kontrastu (domyślnie 1.0).addto addytywne przesunięcie jasności (domyślnie 0.0).thresholdjeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego.offsetprzesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej).invertodwraca wyjście binarne.maskto 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).
sizeto rozmiar jądra. Użyj 1 (jądro 3x3), 2 (jądro 5x5) itd.color_sigmakontroluje tolerancję dopasowania koloru; większe wartości dają więcej rozmycia koloru.space_sigmakontroluje rozmycie przestrzenne; większe wartości dają więcej rozmycia pikseli.thresholdjeśli True, adaptacyjnie progowanie wyjścia filtra do obrazu binarnego.offsetprzesuwa binaryzację (ujemna wartość sprawia, że więcej pikseli jest białych, dodatnia sprawia, że mniej).invertodwraca wyjście binarne.maskto 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.xiyokreślają współrzędną środka transformacji w pikselach obrazu. JeślixjestNone(domyślnie), jest ustawiane na połowę szerokości obrazu; podobnieydomyś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.xiyokreślają współrzędną środka transformacji w pikselach obrazu. JeślixjestNone(domyślnie), jest ustawiane na połowę szerokości obrazu; podobnieydomyś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.
strengthto 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.zoomto wielkość przybliżenia obrazu. Domyślnie 1.0.x_corrzmiennoprzecinkowe przesunięcie piksela od środka. Może być ujemne lub dodatnie.y_corrzmiennoprzecinkowe 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_rotationto liczba stopni obrotu obrazu w buforze ramki wokół osi x (tzn. obraca to obraz w górę i w dół).y_rotationto liczba stopni obrotu obrazu w buforze ramki wokół osi y (tzn. obraca to obraz w lewo i w prawo).z_rotationto liczba stopni obrotu obrazu w buforze ramki wokół osi z (tzn. obraca to obraz w miejscu).x_translationto 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_translationto 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…zoomto wielkość przybliżenia obrazu. Domyślnie 1.0.fovto pole widzenia używane do wewnętrznej projekcji 2D->3D. Gdyfovzbliża się do 0, obraz jest umieszczany w nieskończoności; gdy zbliża się do 180, obraz jest umieszczany wewnątrz widoku.cornersto 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.imageto 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,hintoraztransformprzyjmują te same wartości coImage.draw_image().dssimjeś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
roii zwraca obiektimage.histogram. Dostępne również jakoImage.get_hist()lubImage.histogram().thresholdsto 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.invertodwraca dopasowanie progu.roito krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.bins(skala szarości) lubl_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ł.differencemoż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
roii zwraca obiektimage.statistics. Dostępne również jakoImage.get_stats()lubImage.statistics().thresholdsto 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.invertodwraca dopasowanie progu.roito krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.bins(skala szarości) lubl_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ł.differencemoż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.linelub None, jeśli nie znaleziono linii.thresholdsto 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.invertodwraca dopasowanie progu.roito krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.x_strideiy_stridekontrolują, ile pikseli jest pomijanych podczas oceny obrazu.area_thresholdminimalna powierzchnia prostokąta ograniczającego; mniejsze wyniki zwracają None.pixels_thresholdminimalna liczba progowanych pikseli; mniejsze wyniki zwracają None.target_sizeto 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.thresholdsto 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.invertodwraca dopasowanie progu.roito krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.x_strideiy_stridekontrolują, ile pikseli jest pomijanych podczas wyszukiwania plamy (blob). Zwiększ, jeśli wiadomo, że plamy są duże.area_thresholdminimalna powierzchnia prostokąta ograniczającego; mniejsze plamy są filtrowane.pixels_thresholdminimalna liczba progowanych pikseli; mniejsze plamy są filtrowane.mergejeśli True, scala plamy, których prostokąty ograniczające się przecinają.marginpowiększa/pomniejsza prostokąty ograniczające używane do przecięcia. Scalone plamy wykonują OR na swoich wektorach bitowychcode(jeden bit na próg).threshold_cbjest wywoływane dla każdej plamy po progowaniu; zwróć True, aby zachować, False, aby odfiltrować.merge_cbjest wywoływane dla każdej pary plam mających zostać scalonych; zwróć True, aby zezwolić na scalenie, False, aby mu zapobiec.x_hist_bins_maxjeśli niezerowe, wypełnia każdą plamę projekcją x_histogram używając tylu przedziałów.y_hist_bins_maxjeś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.roito krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.x_strideiy_stridekontrolują, ile pikseli jest pomijanych podczas transformaty Hougha.thresholdminimalna magnituda linii (suma magnitud sobela wzdłuż linii); linie poniżej tej wartości są odfiltrowywane.theta_marginirho_marginkontrolują 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.roito krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.merge_distanceto maksymalna odległość w pikselach między dwoma segmentami, aby zostały scalone.max_theta_differenceto 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.roito krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.x_strideiy_stridekontrolują, ile pikseli jest pomijanych podczas transformaty Hougha.thresholdminimalna magnituda okręgu (suma magnitud sobela wzdłuż okręgu); okręgi poniżej tej wartości są odfiltrowywane.x_margin,y_marginorazr_marginkontrolują scalanie: okręgi mieszczące się w tych progach są scalane.r_minminimalny promień okręgu. Domyślnie 2.r_maxmaksymalny promień okręgu. Domyślniemin(roi.w/2, roi.h/2).r_steprozmiar 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.roito krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.thresholdminimalna 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
roii zwraca listę obiektówimage.qrcode.roito 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
roii zwraca listę obiektówimage.apriltag.roito krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.familiesto 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.fxifyto ogniskowe kamery X i Y w pikselach.cxicyto środek obrazu, zwykleimage.width()/2orazimage.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
roii zwraca listę obiektówimage.datamatrix.roito krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.effortkontroluje, 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
roii zwraca listę obiektówimage.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.roito 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
templateprzy użyciu korelacji fazowej. Zwraca obiektimage.displacement.roito prostokąt obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.template_roito obszar zainteresowania szablonu. Domyślnie prostokąt obrazu szablonu.roioraztemplate_roimuszą mieć tę samą szerokość i wysokość.logpolarjeśli True, zwraca zmianę obrotu/skali zamiast translacji x/y.fix_rotation_scalejeśli True, oblicza przesunięcie po wyrównaniu obrotu i skali (ma znaczenie tylko gdylogpolar=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
templatedopasowuje się przy użyciu znormalizowanej korelacji krzyżowej. Zwraca krotkę prostokąta ograniczającego (x, y, w, h) lub None.templateto obraz w skali szarości do dopasowania do tego obrazu.thresholdto wartość (0.0-1.0). Wyższe wartości zmniejszają liczbę fałszywych alarmów i wykryć; niższe wartości działają odwrotnie.roito krotka prostokąta obszaru zainteresowania (x, y, w, h). Domyślnie prostokąt obrazu.stepto liczba pikseli do pominięcia podczas wyszukiwania (używane tylko w trybieimage.SEARCH_EX).searchtoimage.SEARCH_DS(szybsze wyszukiwanie diamentowe) lubimage.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.
cascadeto obiekt kaskady Haara (zobaczimage.HaarCascade()).threshold(0.0-1.0). Niższe wartości zwiększają wskaźnik wykrywania oraz wskaźnik fałszywych alarmów.scalemusi być większe od 1.0. Wyższe wartości działają szybciej, ale dają gorsze dopasowania.roito 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.
roito 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.roito 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.roito 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.normalizedjeśli True, wyłącza wieloskalowe wyodrębnianie punktów kluczowych.scale_factormusi być większe od 1.0. Wyższe wartości działają szybciej, ale dają gorsze dopasowania.max_keypointsto maksymalna liczba punktów kluczowych do zachowania.corner_detectortoimage.CORNER_FASTlubimage.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.
thresholdto 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).
roito 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ębieroi.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.
reversedDomyś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_disparityto 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.thresholdjeśli suma bezwzględnych różnic między dwoma blokami jest mniejsza lub równa temu progowi, są one uznawane za pasujące.
- selective_search(threshold: int = 500, size: int = 20, a1: float = 1.0, a2: float = 1.0, a3: float = 1.0) List[Tuple[int, int, int, int]]¶
Uruchamia wyszukiwanie selektywne (selective search) na obrazie i zwraca listę krotek prostokątów ograniczających (x, y, w, h) propozycji obiektów.
thresholdto próg segmentacji; wyższe wartości dają mniej/większe obszary.sizeto minimalny rozmiar obszaru po scaleniu.a1,a2,a3to wagi podobieństwa koloru/tekstury/rozmiaru używane podczas scalania obszarów.