class Blob – obiekt Blob#

Obiekt blob to attrtuple zwracany przez Image.find_blobs(). Każda plama (blob) reprezentuje spójny obszar pikseli, który dopasował się do jednego lub więcej progów koloru przekazanych do find_blobs(). Obiekt pakuje razem ramkę ograniczającą plamy, jej centroid, liczbę pikseli, obwód, orientację, metryki gęstości pola, zbiór progów które ją trafiły, obrócony prostokąt o minimalnym polu oraz opcjonalne histogramy projekcji X/Y.

Pola są dostępne po nazwie atrybutu (blob.x) lub po indeksie (blob[0]). Obiekt nie ma publicznego konstruktora.

class image.blob#

Aby utworzyć ten obiekt, wywołaj Image.find_blobs().

Ramka ograniczająca i centroid#

x#

Współrzędna x lewego górnego rogu ramki ograniczającej, w pikselach. Liczba całkowita. Indeks [0].

y#

Współrzędna y lewego górnego rogu ramki ograniczającej, w pikselach. Liczba całkowita. Indeks [1].

w#

Szerokość ramki ograniczającej, w pikselach. Liczba całkowita. Indeks [2].

h#

Wysokość ramki ograniczającej, w pikselach. Liczba całkowita. Indeks [3].

cx#

Współrzędna x centroidu (średnia pikseli plamy), zaokrąglona do liczby całkowitej. Liczba całkowita. Indeks [4].

cy#

Współrzędna y centroidu (średnia pikseli plamy), zaokrąglona do liczby całkowitej. Liczba całkowita. Indeks [5].

cxf#

Współrzędna x centroidu jako subpikselowa liczba zmiennoprzecinkowa. Indeks [16].

cyf#

Współrzędna y centroidu jako subpikselowa liczba zmiennoprzecinkowa. Indeks [17].

rect#

4-elementowa krotka (x, y, w, h) ramki ograniczającej. Nadaje się do bezpośredniego przekazania do metod rysowania/przycinania, takich jak Image.draw_rectangle() lub Image.crop(). Indeks [22].

Deskryptory kształtu#

pixels#

Liczba pikseli tworzących tę plamę. Liczba całkowita. Indeks [6].

area#

Pole ramki ograniczającej wyrównanej do osi (w * h). Liczba całkowita. Indeks [19].

density#

pixels / area – ułamek ramki ograniczającej wypełniony przez plamę. Liczba zmiennoprzecinkowa w zakresie 0.0 – 1.0. Pełny prostokąt zbliża się do 1.0; cienka przekątna linia zbliża się do 0.0. Indeks [20].

perimeter#

Liczba pikseli na zewnętrznym obwodzie plamy. Liczba całkowita. Indeks [10].

roundness#

Stosunek osi mniejszej do osi większej plamy, obliczony z jej momentów drugiego rzędu. Liczba zmiennoprzecinkowa w zakresie 0.0 – 1.0; 1.0 to idealne koło, 0.0 to linia. Indeks [11].

elongation#

1.0 - roundness – wartość w zakresie 0.0 – 1.0, gdzie 0.0 to idealne koło, a 1.0 to linia. Indeks [18].

compactness#

(pixels * 4 * pi) / (perimeter * perimeter). Koło ma najmniejszy obwód dla danego pola, więc ta metryka wynosi 1.0 dla idealnego koła i maleje, gdy plama staje się bardziej nieregularna lub wydłużona. Liczba zmiennoprzecinkowa. Indeks [21].

rotation#

Orientacja plamy w radianach, wyprowadzona z jej momentów drugiego rzędu. Liczba zmiennoprzecinkowa w zakresie od 0 do pi (oś jest symetryczna, więc kierunek jest niejednoznaczny powyżej pi). Najdokładniejsza dla wydłużonych plam – dla niemal okrągłych plam wartość staje się zaszumiona. Indeks [7].

Metadane progów / scalania#

code#

32-bitowa mapa bitowa z jednym bitem ustawionym dla każdego progu koloru (przekazanego do Image.find_blobs()), który ta plama dopasowała. Przy jednym progu code == 1. Przy scalonych wielokolorowych plamach (merge=True) może być ustawiony więcej niż jeden bit. Indeks [8].

count#

Liczba źródłowych plam scalonych w tę jedną. 1 gdy merge=False; może być większa gdy merge=True. Indeks [9].

Narożniki#

corners#

4-elementowa krotka krotek całkowitych (x, y) dla czterech skrajnych narożników plamy, posortowanych zgodnie z ruchem wskazówek zegara, zaczynając od lewego górnego rogu. Są to narożniki wyprowadzone z konturu (punkty na granicy plamy najbardziej oddalone od centroidu wzdłuż czterech przekątnych). Indeks [14].

min_corners#

4-elementowa krotka krotek całkowitych (x, y) dla czterech narożników obróconego prostokąta ograniczającego plamę o minimalnym polu. W połączeniu z rotation dają najściślejsze dopasowanie wokół plamy. Indeks [15].

Histogramy projekcji#

x_hist_bins#

Lista liczb całkowitych dla histogramu projekcji plamy na oś X (kolumny). Wypełniana tylko gdy find_blobs(...) jest wywoływane z x_hist_bins_max > 0; w przeciwnym razie pusta. Indeks [12].

y_hist_bins#

Lista liczb całkowitych dla histogramu projekcji plamy na oś Y (wiersze). Wypełniana tylko gdy find_blobs(...) jest wywoływane z y_hist_bins_max > 0; w przeciwnym razie pusta. Indeks [13].