Separe o primeiro plano do fundo
Transforme uma imagem em uma máscara de primeiro plano com um limiar e escolha o limiar em um histograma.
- Aplique um limiar para criar uma máscara binária
- Leia um histograma de brilho e escolha um limiar
- Explique por que um único limiar falha quando a iluminação é irregular
Digitalizar um documento, contar células em um microscópio, encontrar uma peça em uma esteira transportadora: muitas vezes, a primeira tarefa é separar o primeiro plano (as coisas que são importantes para você) do fundo. A ferramenta mais simples é um limiar: cada pixel pelo menos tão brilhante quanto um corte torna-se 1 (primeiro plano), o restante 0. O resultado é uma máscara binária - uma forma simples de segmentação.
pixels = [20, 90, 140, 230]
mask = [1 if value >= 128 else 0 for value in pixels]
print(mask)[0, 0, 1, 1]
Escolhendo o limiar
Um histograma conta quantos pixels têm cada brilho. Quando os objetos e o fundo diferem claramente, ele mostra duas saliências e um bom limiar fica no vale entre elas. O método de Otsu encontra esse vale automaticamente, escolhendo o ponto de corte que torna os dois grupos tão diferentes quanto possível.
Experimente
Até 15 XPControle deslizante de limiar
Esta cena tem um quadrado brilhante (canto superior esquerdo) e um disco brilhante (canto inferior direito) - mas está iluminado de forma irregular: mais escuro à esquerda, mais claro à direita.
- Deslize o limiar para capturar ambos objetos e nada mais. Você pode?
- Experimente o limiar automático de Otsu. Um método automático corrige a iluminação irregular?
- Observe as barras cinza e azul: o limiar divide o histograma em dois.
Histograma: quantos pixels têm cada brilho
Nenhum corte único funciona em todos os lugares da cena: o lado direito claro do fundo é tão claro quanto o quadrado no lado esquerdo escuro. Limiar adaptativo corrige isso calculando um limiar separado para cada vizinhança (por exemplo, “mais claro que a média local”). O guia de limiar do OpenCV mostra ambos os métodos em fotos reais.
Principais conclusões
Um limiar transforma o brilho em uma máscara sim/não - a segmentação mais simples.
Um histograma mostra a distribuição de brilho; um bom corte fica entre as lombadas (Otsu o encontra automaticamente).
A iluminação irregular precisa de limiares adaptativos que variam na imagem.
Quiz da aula
6 perguntas · aprovação com 5 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Pratique: aplique visão computacional com Python
Use pequenas matrizes de pixels para explorar conceitos de visão, execute seu código com imagens de exemplo e relacione cada resultado à ideia maior de visão computacional.
Construa uma máscara binária
Leia uma lista JSON de valores em tons de cinza e, na linha seguinte, um limiar inteiro. Imprima uma lista com 1 para cada pixel maior ou igual ao limiar e 0 para os demais.
- Dividir escuro e claro
- Incluir o corte
O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.
Construa um histograma de brilho
Leia uma imagem JSON em tons de cinza. Conte seus pixels em quatro faixas de brilho - 0–63, 64–127, 128–191 e 192–255 – e imprima as quatro contagens separadas por espaços.
- Escuro e brilhante
- Tudo meio cinza
O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…