class Blob – Blob-objekt#

Blob-objektet är en attrtuple som returneras av Image.find_blobs(). Varje blob representerar en sammanhängande region av pixlar som matchade ett eller flera av de färgtröskelvärden som skickades till find_blobs(). Objektet samlar blobbens begränsningsruta, tyngdpunkt, pixelantal, omkrets, orientering, area-densitetsmått, uppsättningen tröskelvärden som träffade den, den roterade rektangeln med minsta area samt valfria X/Y-projektionshistogram.

Fälten är åtkomliga via attributnamn (blob.x) eller via index (blob[0]). Objektet har ingen publik konstruktor.

class image.blob#

Anropa Image.find_blobs() för att skapa detta objekt.

Begränsningsruta och tyngdpunkt#

x#

Begränsningsrutans övre vänstra x-koordinat, i pixlar. Heltal. Index [0].

y#

Begränsningsrutans övre vänstra y-koordinat, i pixlar. Heltal. Index [1].

w#

Begränsningsrutans bredd, i pixlar. Heltal. Index [2].

h#

Begränsningsrutans höjd, i pixlar. Heltal. Index [3].

cx#

Tyngdpunktens x-koordinat (blobbens pixelmedelvärde), avrundad till heltal. Heltal. Index [4].

cy#

Tyngdpunktens y-koordinat (blobbens pixelmedelvärde), avrundad till heltal. Heltal. Index [5].

cxf#

Tyngdpunktens x-koordinat som ett subpixel-flyttal. Index [16].

cyf#

Tyngdpunktens y-koordinat som ett subpixel-flyttal. Index [17].

rect#

(x, y, w, h) 4-tupel för begränsningsrutan. Lämplig att skicka direkt till metoder för ritning/beskärning såsom Image.draw_rectangle() eller Image.crop(). Index [22].

Formdeskriptorer#

pixels#

Antalet pixlar som utgör denna blob. Heltal. Index [6].

area#

Arean av den axelinriktade begränsningsrutan (w * h). Heltal. Index [19].

density#

pixels / area – andelen av begränsningsrutan som fylls av blobben. Flyttal i intervallet 0.0 – 1.0. En solid rektangel närmar sig 1.0; en tunn diagonal linje närmar sig 0.0. Index [20].

perimeter#

Antalet pixlar på blobbens yttre omkrets. Heltal. Index [10].

roundness#

Förhållandet mellan blobbens lillaxel och storaxel, beräknat från dess andra ordningens moment. Flyttal i intervallet 0.0 – 1.0; 1.0 är en perfekt cirkel, 0.0 är en linje. Index [11].

elongation#

1.0 - roundness – ett värde i intervallet 0.0 – 1.0 där 0.0 är en perfekt cirkel och 1.0 är en linje. Index [18].

compactness#

(pixels * 4 * pi) / (perimeter * perimeter). En cirkel har den minsta omkretsen för en given area, så detta mått är 1.0 för en perfekt cirkel och minskar när blobben blir mer oregelbunden eller avlång. Flyttal. Index [21].

rotation#

Blobbens orientering i radianer, härledd från dess andra ordningens moment. Flyttal i intervallet 0 till pi (axeln är symmetrisk så riktningen är tvetydig bortom pi). Mest exakt för avlånga blobbar – för nästan runda blobbar blir värdet brusigt. Index [7].

Tröskelvärdes-/sammanslagningsmetadata#

code#

32-bitars bitmapp med en bit satt för varje färgtröskelvärde (som skickas till Image.find_blobs()) som denna blob matchade. Med ett tröskelvärde är code == 1. Med sammanslagna flerfärgsblobbar (merge=True) kan mer än en bit vara satt. Index [8].

count#

Antalet källblobbar som slogs samman till denna. 1 när merge=False; kan vara större när merge=True. Index [9].

Hörn#

corners#

4-tupel av (x, y)-heltalstupler för blobbens fyra extrema hörn, sorterade medurs med start från det övre vänstra hörnet. Dessa är de konturhärledda hörnen (punkterna på blobbgränsen som ligger längst från tyngdpunkten längs fyra diagonaler). Index [14].

min_corners#

4-tupel av (x, y)-heltalstupler för de fyra hörnen i blobbens roterade begränsningsrektangel med minsta area. Tillsammans med rotation ger dessa dig den tightaste passformen runt blobben. Index [15].

Projektionshistogram#

x_hist_bins#

Lista med heltalsantal för blobbens X-axelprojektionshistogram (kolumn). Fylls endast i när find_blobs(...) anropas med x_hist_bins_max > 0; annars tom. Index [12].

y_hist_bins#

Lista med heltalsantal för blobbens Y-axelprojektionshistogram (rad). Fylls endast i när find_blobs(...) anropas med y_hist_bins_max > 0; annars tom. Index [13].