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