A segmentação de imagens consiste em segmentar uma imagem em diferentes regiões de interesse. Geralmente esse processo consiste em encontrar limiares no Histograma da imagem que determinem diferentes regiões.
A segmentação é um processo que muitas vezes requer conhecimento empírico e inspeção visual, sendo bastante difícil produzir soluções exatas. Por conta disso, comumente são empregadas técnicas de aprendizado de máquina para gerar modelos capazes de segmentar imagens de maneira eficiente e precisa.
Algoritmo de Otsu
O algoritmo de Otsu é um dos mais populares algoritmos de segmentação de imagens. O objetivo do algoritmo é, a partir de uma imagem em tons de cinza, determinar o valor ideal de um threshold que minimize a variância entre as classes, efetivamente separando os elementos do fundo e os da frente da imagem em dois clusters.
Dada uma imagem em tons de cinza com as seguintes definições:
- : o valor máximo do nível de cinza da imagem;
- : pixel da imagem de entrada;
- : número de pixels para os quais ;
- : o número total de pixels da imagem;
- : probabilidade do nível de cinza ;
- : limiar (threshold do valor de cinza que separa as duas classes).
Temos que a probabilidade da classe 1 e 2 são dadas por e , respectivamente:
A ideia é minimizar a variância intraclasse, dada por:
Intuitivamente, minimizar a variância intraclasse equivale a maximizar a variância interclasses, ou seja, afastar as média dos valores de intensidade e das duas classes o máximo possível. Dessa forma, a variância interclasses é expressa como:
O cálculo das médias é feito utilizando o valor esperado de cada classe:
Tendo isso em vista, o Algoritmo de Otsu pode ser descrito através dos seguintes passos:
- Compute o Histograma da imagem;
- Para todos os possíveis valores de , compute a variância inter-classes ;
- Selecione o valor ótimo , ou seja, o valor de que maximiza .
Apesar de sua simplicidade de implementação, o algoritmo utiliza fundamentos estatísticos que produzem bons resultados na maioria dos casos.