class Blob – objeto Blob

O objeto blob é um attrtuple devolvido por Image.find_blobs(). Cada mancha representa uma região contígua de pixéis que correspondeu a um ou mais dos limiares de cor passados a find_blobs(). O objeto agrupa a caixa delimitadora da mancha, centroide, contagem de pixéis, perímetro, orientação, métricas de densidade de área, o conjunto de limiares que a detetaram, o retângulo rotacionado de área mínima e histogramas de projeção X/Y opcionais.

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

class image.blob

Utilize Image.find_blobs() para criar este objeto.

Caixa delimitadora e centroide

x

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

y

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

w

Largura da caixa delimitadora, em pixéis. Inteiro. Índice [2].

h

Altura da caixa delimitadora, em pixéis. Inteiro. Índice [3].

cx

Coordenada x do centroide (média de pixéis da mancha), arredondada para inteiro. Inteiro. Índice [4].

cy

Coordenada y do centroide (média de pixéis da mancha), arredondada para inteiro. Inteiro. Índice [5].

cxf

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

cyf

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

rect

4-tuplo (x, y, w, h) da caixa delimitadora. Adequado para passar diretamente a métodos de desenho/recorte como Image.draw_rectangle() ou Image.crop(). Índice [22].

Descritores de forma

pixels

Número de pixéis que compõem esta mancha. Inteiro. Índice [6].

area

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

density

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

perimeter

Número de pixéis no perímetro exterior da mancha. Inteiro. Índice [10].

roundness

Rácio entre o eixo menor e o eixo maior da mancha, calculado a partir dos seus momentos de segunda ordem. Float no intervalo 0.0 – 1.0; 1.0 é um círculo perfeito, 0.0 é uma linha. Índice [11].

elongation

1.0 - roundness – um valor no intervalo 0.0 – 1.0 em que 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, pelo que esta métrica é 1.0 para um círculo perfeito e diminui à medida que a mancha se torna mais irregular ou alongada. Float. Índice [21].

rotation

Orientação da mancha em radianos, derivada dos seus momentos de segunda ordem. Float no intervalo 0 a pi (o eixo é simétrico, pelo que a direção é ambígua além de pi). Mais precisa para manchas alongadas – para manchas quase circulares o valor torna-se instável. Índice [7].

Metadados de limiar / fusão

code

Mapa de bits de 32 bits com um bit definido para cada limiar de cor (conforme passado a Image.find_blobs()) que esta mancha correspondeu. Com um único limiar, code == 1. Com manchas multi-cor fundidas (merge=True) pode haver mais do que um bit definido. Índice [8].

count

Número de manchas de origem fundidas nesta. 1 quando merge=False; pode ser superior quando merge=True. Índice [9].

Cantos

corners

4-tuplo de tuplos inteiros (x, y) para os quatro cantos extremos da mancha, ordenados no sentido horário a partir do canto superior esquerdo. Estes são os cantos derivados do contorno (os pontos na fronteira da mancha mais afastados do centroide ao longo de quatro diagonais). Índice [14].

min_corners

4-tuplo de tuplos inteiros (x, y) para os quatro cantos do retângulo delimitador rotacionado de área mínima da mancha. Combinados com rotation, fornecem o ajuste mais justo em torno da mancha. Índice [15].

Histogramas de projeção

x_hist_bins

Lista de contagens inteiras para o histograma de projeção do eixo X (colunas) da mancha. Apenas preenchida 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 do eixo Y (linhas) da mancha. Apenas preenchida quando find_blobs(...) é chamado com y_hist_bins_max > 0; caso contrário vazia. Índice [13].