classe Blob – objeto Blob

O objeto blob é um attrtuple retornado por Image.find_blobs(). Cada blob representa uma região conectada de pixels que correspondeu a um ou mais dos limiares de cor passados para find_blobs(). O objeto reúne a caixa delimitadora do blob, o centroide, a contagem de pixels, o perímetro, a orientação, as métricas de densidade de área, o conjunto de limiares que o atingiram, o retângulo rotacionado de área mínima e os histogramas de projeção X/Y opcionais.

Os campos são acessíveis pelo nome do atributo (blob.x) ou pelo índice (blob[0]). O objeto não possui construtor público.

class image.blob

Chame Image.find_blobs() para criar este objeto.

Caixa delimitadora e centroide

x

Coordenada x do canto superior esquerdo da caixa delimitadora, em pixels. Inteiro. Índice [0].

y

Coordenada y do canto superior esquerdo da caixa delimitadora, em pixels. Inteiro. Índice [1].

w

Largura da caixa delimitadora, em pixels. Inteiro. Índice [2].

h

Altura da caixa delimitadora, em pixels. Inteiro. Índice [3].

cx

Coordenada x do centroide (média dos pixels do blob), arredondada para inteiro. Inteiro. Índice [4].

cy

Coordenada y do centroide (média dos pixels do blob), arredondada para inteiro. Inteiro. Índice [5].

cxf

Coordenada x do centroide como um float sub-pixel. Índice [16].

cyf

Coordenada y do centroide como um float sub-pixel. Índice [17].

rect

Tupla de 4 elementos (x, y, w, h) da caixa delimitadora. Adequada para ser passada diretamente a métodos de desenho/recorte como Image.draw_rectangle() ou Image.crop(). Índice [22].

Descritores de forma

pixels

Número de pixels que compõem este blob. Inteiro. Índice [6].

area

Área da caixa delimitadora alinhada aos eixos (w * h). Inteiro. Índice [19].

density

pixels / area – a fração da caixa delimitadora preenchida pelo blob. Float no intervalo de 0.0 a 1.0. Um retângulo sólido se aproxima de 1.0; uma linha diagonal fina se aproxima de 0.0. Índice [20].

perimeter

Número de pixels no perímetro externo do blob. Inteiro. Índice [10].

roundness

Razão entre o eixo menor e o eixo maior do blob, calculada a partir de seus momentos de segunda ordem. Float no intervalo de 0.0 a 1.0; 1.0 é um círculo perfeito, 0.0 é uma linha. Índice [11].

elongation

1.0 - roundness – um valor no intervalo de 0.0 a 1.0 onde 0.0 é um círculo perfeito e 1.0 é uma linha. Índice [18].

compactness

(pixels * 4 * pi) / (perimeter * perimeter). Um círculo tem o menor perímetro para uma dada área, portanto esta métrica é 1.0 para um círculo perfeito e diminui à medida que o blob se torna mais irregular ou alongado. Float. Índice [21].

rotation

Orientação do blob em radianos, derivada de seus momentos de segunda ordem. Float no intervalo de 0 a pi (o eixo é simétrico, então a direção é ambígua além de pi). Mais precisa para blobs alongados – para blobs quase circulares o valor se torna ruidoso. Índice [7].

Metadados de limiar / mesclagem

code

Bitmap de 32 bits com um bit definido para cada limiar de cor (conforme passado para Image.find_blobs()) que este blob correspondeu. Com um único limiar, code == 1. Com blobs multicoloridos mesclados (merge=True), mais de um bit pode estar definido. Índice [8].

count

Número de blobs de origem mesclados neste. 1 quando merge=False; pode ser maior quando merge=True. Índice [9].

Cantos

corners

Tupla de 4 elementos com tuplas de inteiros (x, y) para os quatro cantos extremos do blob, ordenados no sentido horário a partir do canto superior esquerdo. Estes são os cantos derivados do contorno (os pontos na fronteira do blob mais distantes do centroide ao longo de quatro diagonais). Índice [14].

min_corners

Tupla de 4 elementos com tuplas de inteiros (x, y) para os quatro cantos do retângulo delimitador rotacionado de área mínima do blob. Combinados com rotation, fornecem o ajuste mais justo ao redor do blob. Índice [15].

Histogramas de projeção

x_hist_bins

Lista de contagens inteiras para o histograma de projeção no eixo X (coluna) do blob. Preenchida apenas quando find_blobs(...) é chamado com x_hist_bins_max > 0; caso contrário, vazia. Índice [12].

y_hist_bins

Lista de contagens inteiras para o histograma de projeção no eixo Y (linha) do blob. Preenchida apenas quando find_blobs(...) é chamado com y_hist_bins_max > 0; caso contrário, vazia. Índice [13].