class Blob – oggetto Blob

L’oggetto blob è un attrtuple restituito da Image.find_blobs(). Ogni blob rappresenta una regione connessa di pixel che corrisponde a una o più soglie di colore passate a find_blobs(). L’oggetto raggruppa il bounding box del blob, il centroide, il conteggio dei pixel, il perimetro, l’orientamento, le metriche di densità d’area, l’insieme delle soglie che lo hanno individuato, il rettangolo ruotato di area minima e gli istogrammi opzionali di proiezione X/Y.

I campi sono accessibili per nome di attributo (blob.x) oppure per indice (blob[0]). L’oggetto non ha un costruttore pubblico.

class image.blob

Chiamare Image.find_blobs() per creare questo oggetto.

Bounding box e centroide

x

Coordinata x dell’angolo superiore sinistro del bounding box, in pixel. Intero. Indice [0].

y

Coordinata y dell’angolo superiore sinistro del bounding box, in pixel. Intero. Indice [1].

w

Larghezza del bounding box, in pixel. Intero. Indice [2].

h

Altezza del bounding box, in pixel. Intero. Indice [3].

cx

Coordinata x del centroide (media dei pixel del blob), arrotondata a intero. Intero. Indice [4].

cy

Coordinata y del centroide (media dei pixel del blob), arrotondata a intero. Intero. Indice [5].

cxf

Coordinata x del centroide come float sub-pixel. Indice [16].

cyf

Coordinata y del centroide come float sub-pixel. Indice [17].

rect

Tupla di 4 elementi (x, y, w, h) del bounding box. Adatta per essere passata direttamente a metodi di disegno/ritaglio come Image.draw_rectangle() o Image.crop(). Indice [22].

Descrittori di forma

pixels

Numero di pixel che compongono questo blob. Intero. Indice [6].

area

Area del bounding box allineato agli assi (w * h). Intero. Indice [19].

density

pixels / area – la frazione del bounding box riempita dal blob. Float nell’intervallo 0.0 – 1.0. Un rettangolo pieno si avvicina a 1.0; una linea diagonale sottile si avvicina a 0.0. Indice [20].

perimeter

Numero di pixel sul perimetro esterno del blob. Intero. Indice [10].

roundness

Rapporto tra l’asse minore e l’asse maggiore del blob, calcolato dai suoi momenti del secondo ordine. Float nell’intervallo 0.0 – 1.0; 1.0 è un cerchio perfetto, 0.0 è una linea. Indice [11].

elongation

1.0 - roundness – un valore nell’intervallo 0.0 – 1.0 dove 0.0 è un cerchio perfetto e 1.0 è una linea. Indice [18].

compactness

(pixels * 4 * pi) / (perimeter * perimeter). Un cerchio ha il perimetro più piccolo per una data area, quindi questa metrica vale 1.0 per un cerchio perfetto e diminuisce man mano che il blob diventa più irregolare o allungato. Float. Indice [21].

rotation

Orientamento del blob in radianti, derivato dai suoi momenti del secondo ordine. Float nell’intervallo da 0 a pi (l’asse è simmetrico, quindi oltre pi la direzione è ambigua). Più accurato per i blob allungati: per i blob quasi circolari il valore diventa rumoroso. Indice [7].

Metadati di soglia / fusione

code

Bitmap a 32 bit con un bit impostato per ogni soglia di colore (come passata a Image.find_blobs()) corrispondente a questo blob. Con una sola soglia, code == 1. Con blob multicolore fusi (merge=True) possono essere impostati più bit. Indice [8].

count

Numero di blob sorgente fusi in questo. 1 quando merge=False; può essere maggiore quando merge=True. Indice [9].

Angoli

corners

Tupla di 4 elementi di tuple intere (x, y) per i quattro angoli estremi del blob, ordinati in senso orario a partire dall’angolo superiore sinistro. Sono gli angoli derivati dal contorno (i punti sul confine del blob più lontani dal centroide lungo quattro diagonali). Indice [14].

min_corners

Tupla di 4 elementi di tuple intere (x, y) per i quattro angoli del rettangolo di delimitazione ruotato di area minima del blob. Combinati con rotation forniscono l’adattamento più stretto attorno al blob. Indice [15].

Istogrammi di proiezione

x_hist_bins

Lista di conteggi interi per l’istogramma di proiezione sull’asse X (colonne) del blob. Popolata solo quando find_blobs(...) viene chiamato con x_hist_bins_max > 0; altrimenti vuota. Indice [12].

y_hist_bins

Lista di conteggi interi per l’istogramma di proiezione sull’asse Y (righe) del blob. Popolata solo quando find_blobs(...) viene chiamato con y_hist_bins_max > 0; altrimenti vuota. Indice [13].