Processamento de imagens na prática

Threshold – Simples e funciona, mas não para todos…

A segmentação por threshold (pode ser traduzido como limiar) é provavelmente o método de segmentação de imagens mais utilizado, e com certeza é o mais simples. Me arrisco a dizer que ele aparece em todos os programas de processamento e edição de imagens, com excessão dos milhões de editores on-line que surgem na web todos os dias, claro.

Qualquer pessoa com um mínimo conhecimento em imagens digitais (ou até mesmo sem conhecimento algum) pode entendê-lo a ponto de utilizá-lo com sucesso, se a imagem assim permitir. As aplicações profissionais e científicas fazem uso deste método constantemente, e existe uma forma muito simples de saber se ele vai funcionar ou não nas suas imagens.

Assim funciona:


Imagem do Wikimedia Commons, sob domínio público.

Esta imagem é típica do grupo de imagens de células ao microscópio. Tem algumas células (bactérias, no caso) distribuídas sobre um fundo mais claro. Na sua versão em tons de cinza (aqui usei a conversão para 8 bits do ImageJ) fica com um histograma de dois picos. O primeito deles é o mais escuro, e corresponde às células. O segundo pico corresponde ao fundo, que é maior porque o fundo é o elemento predominante da imagem.

O que o thresshold faz é dividir a imagem por um ponto de corte no histograma, normalmente chamado de nível de threshold, ou threshold level. A maioria dos programas permite que o usuário determine este ponto de corte, interagindo com o gráfico e conferindo o resultado em um preview da imagem resultado. Além do método interativo, existem outros, que determinam automaticamente o nível de threshold, mas isto é outro assunto.

Depois de determinado o nível do threshold, o programa divide a imagem em preto (píxels com valores abaixo do nível) e branco (tudo o que tiver um valor acima do nível estabelecido). O resultado é uma imagem em que os softwares de processamento de imagens podem separar o fundo dos objetos de interesse, para numa etapa posterior rotular e medir os objetos.

Assim não funciona:

Agora vamos ver outra imagem…o histograma, aqui, não tem dois picos, tem 1. Então, onde fica o threshold? Não fica. Repare que esta imagem não tem um fundo, nem objetos que podem ser separados claramente pela intensidade do cinza. O que temos são paredes celulares aparentemente mais claras que o interior das células. Usei a palavra aparentemente porque as paredes são mais claras apenas para nossos olhos, que têm um sistema altamente sofisticado para ver o que queremos ver, mas na realidade os valores dos píxels não são tão diferentes como nos aparentam.

Imagem original, colorida, por kaibara.

E porque não usei as imagens coloridas?

Primeiro porque em nenhum desses dois casos ia fazer diferença. Segundo porque a maioria dos programas de processamento ou edição de imagens não oferece threshold colorido que realmente faça sentido. O ImageJ só faz threshold em imagens tons de cinza, o Gimp faz o threshold de uma imagem colorida usando um histograma que chama de “value”, que provavelmente é o canal do brilho. No Adobe Photoshop é possível segmentar os três canais do RGB no memo nível, ou usar níveis separados e depois combinar o reusultado, no caso de usar níveis diferentes, é preciso segmentar novamente a imagem resultado, para obter uma imagem binária.

7 Comentários para Threshold – Simples e funciona, mas não para todos…

  1. Elizângela's Gravatar Elizângela - 5 de novembro de 2008 at 16:54 | Permalink

    Olá! Estou fazendo um trabalho de processamento de imagem. E preciso fazer uma análise de marcha com o programa imageJ, vou utilizar o pluging multitracker, mas estou com muita dificuldade. Consegui transformar o vídeo em uma sequência de imagem e passá-la para 8bits, paralisei neste ponto. Preciso medir os ângulos das articulações (tornozelo, joelho e quadril) e se possível medir o deslocamento lateral e pra cima e para baixo. Imagino que deve existir ferramentas para isso!?!?

    Alguém pode me dar alguma dica de como continuar???

    Elizângela.

  2. Antonio Lino's Gravatar Antonio Lino - 13 de novembro de 2008 at 12:51 | Permalink

    O ImageJ tem um plugin chamado “Threshold colour” que pode ser útil para limiarizar imagens coloridas

  3. Sandro's Gravatar Sandro - 22 de fevereiro de 2009 at 19:28 | Permalink

    Olá

    Estou tentando fazer uma trabalho para mensurar a area da folha (area foliar) de algumas plantas. Gostaria de saber como posso fazer isso? Depois dessas imagens ser escaneadoas elas devem ter a mesma resolução e o mesmo tamanho? Devo ter algum padarão junto com as imagens?

    Desde já agradeço a atenção

  4. Daniele's Gravatar Daniele - 19 de março de 2009 at 14:34 | Permalink

    Ola td bem, preciso de uma ajuda e n entendo nada desses softwares deimagens. Eu tenho lâminas de tecido de coração coradas que marcam rosa (tecido) e roxo (núcleo), acontece que as vezes nem toda área da lâmina está coberta de tecido, portanto tb com fundo branco. Como faço p calcular a área roxa+rosa? Obrigada

  5. Joacir's Gravatar Joacir - 3 de março de 2011 at 14:11 | Permalink

    Excelente artigo. Apesar de estar trabalhando há pouco tempo com imagens digitais, não tive uma disciplinan específica sobre o assunto no mestrado e seu site está me ajudando demais

Trackbacks/Pingbacks

           
  1. [...] mais comum já foi apresentada aqui – o Threshold ou Limiar. A técnica divide o histograma da imagem em duas partes ou mais (chamado threshold múltiplo). Mas [...]

  2. [...] contar objetos – parte I – sempre há alguns leitores interessados. – Formato de arquivos Dicom – Threshold: simples e funciona mas não para todos – recebe vários links internos por ser um texto introdutório a um método bastante [...]

  3. [...] de obter a imagem binária por threshold é só chamar Process –> Binary –> Watershed e você terá uma imagem como a da [...]

  4. [...] médico é uma das aplicações que mais aparece, provavelmente porque na maioria dos cados o threshold não resolve o problema, então é necessário recorrer a uma técnica mais sofisticada, que pode [...]

  5. [...] Aplicar threshold, descartando o máximo as bordas inúteis e mantendo apenas a informação que [...]

  6. [...] aqui a irregularidade na iluminação do primeiro plano e as cores do fundo. Quem tentar com threshold simples vai descobrir que não é possível manter todas as folhas e retirar todo o fundo ao mesmo [...]

  7.        

Comente

Você pode usar estas tags e atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>