Neste repositório, é explorado diferentes técnicas clássicas de segmentação de imagens, fundamentais para diversos problemas como detecção de objetos, análise médica e visão computacional embarcada.
Observação: Todas as explicações detalhadas, exemplos e experimentos estão documentados no notebook do Google Colab.
Método simples que separa pixels com base em um valor de intensidade.
- Global: Utiliza um único limiar para toda a imagem (
THRESH_BINARY,THRESH_BINARY_INV,THRESH_TRUNC, etc.). - Otsu: Calcula automaticamente o melhor limiar baseado na distribuição dos pixels.
O limiar é calculado localmente para pequenas regiões da imagem.
- Média: Usa a média da vizinhança.
- Gaussiana: Considera pesos diferentes para os pixels próximos.
Transformações aplicadas em imagens binárias para melhorar a segmentação.
- Erosão: Remove pequenas regiões/bruidos.
- Dilatação: Expande regiões de interesse.
- Abertura: Remove ruídos pequenos.
- Fechamento: Preenche falhas internas.
Detecta descontinuidades de intensidade para identificar objetos.
- Sobel: Detecta gradientes nas direções horizontal e vertical.
- Canny: Detector de bordas mais robusto, com múltiplas etapas.
Identifica os limites dos objetos segmentados, permitindo análise de forma e fechamento de regiões.
Aplica máscaras para isolar regiões específicas da imagem, focando apenas na área de interesse.
Agrupa pixels com características semelhantes (como intensidade ou textura), formando regiões homogêneas.
Algoritmo baseado em topografia que separa objetos conectados usando marcadores e distância.
O projeto foi desenvolvido em formato de notebook para facilitar a visualização dos resultados.
- Abra o notebook no Google Colab.
- Execute as células sequencialmente.
- Mude o caminho para a sua pasta com imagens.
- Teste com diferentes imagens para observar o comportamento das técnicas.
- Python
- OpenCV
- Numpy
- Matplotlib
- SkImage