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