Post

Contagem de Bolhas 🔍

Desenvolvemos um algoritmo de processamento de imagens para analisar imagens e contar o nĂșmero de ‘bolhas’ nelas presentes, identificando tambĂ©m aquelas que possuem furos. O algoritmo garante uma contagem precisa, mesmo em casos em que uma Ășnica bolha contenha mĂșltiplos furos. Utilizamos conversĂŁo de imagem para escala de cinza com a biblioteca OpenCV e o mĂ©todo principal de preenchimento de regiĂ”es Ă© o floodFill, disponĂ­vel na prĂłpria biblioteca OpenCV.

O algoritmo passou por 4 etapas até sua conclusão. Inicialmente, capturamos a imagem original em escala de cinza, pois assim trabalhamos apenas com a intensidade de cada pixel para diferenciar as regiÔes. No entanto, é comum encontrar bolhas nas extremidades da imagem, onde metade estå dentro da årea visível e a outra metade não pode ser determinada quanto à presença de furos. Por isso, essas amostras devem ser descartadas.

Em seguida, realizamos uma varredura nas laterais da imagem para remover todas as bolhas potenciais que possam estar tocando as bordas, deixando apenas aquelas cuja presença de furos (ou não) pode ser identificada com certeza.

Posteriormente, passamos para o processo de contagem, dividido em duas etapas. Primeiramente, contamos os furos nas bolhas e as removemos da contagem. Para isso, varremos a imagem em busca de tons de cinza que representam as bolhas, mas com uma variação interna indicativa de um furo para a cor de fundo. Inicialmente, não contabilizamos os furos, apenas modificamos a cor para indicar que jå passamos por ali. Durante o processo de contagem, se encontramos uma bolha com essa cor e, em seguida, um pixel com a cor de fundo, podemos concluir que ali hå um furo. Repetimos esse processo para todas as bolhas. Ao identificarmos um furo, alteramos a cor da bolha para a cor de fundo, fazendo com que as bolhas com furos desapareçam.

Por fim, resta contar quantas bolhas restam na imagem, que serão aquelas sem furos. O processo de “contar” simplesmente implica em identificar a presença de uma bolha pela intensidade e aplicar o floodfill para alterar a cor, mesclando aquela região com o background original.

Para ver o cĂłdigo correspondente, acesse: Github.com/ErnaneJ/pdi/bubble_counter

Execução 🚀

1
make main && /assets/pdi/bubble-counter/main

Para usar uma imagem diferente de “bubble.png”, altere a linha 5 correspondente ao macro IMAGE_FILE.

SaĂ­da đŸ–Œïž

1
2
3
4
5
6
7
8
9
10
┌──────────────────────────────────────────────┐
│          Contador de Bolhas - bubble.png
│───────────────────────────────────────────────
│✅ Bolhas com furos: 7
│✅ Bolhas sem furos: 14
│✅ Total de bolhas: 21
│✅ Furos: 7
│ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ──
│🎓 Estudante: Ernane Ferreira - DCA0445
└──────────────────────────────────────────────┘
OriginalBordas Removidas
OriginalBordas Removidas
Contagem de FurosContagem Completa
Contagem de FurosContagem Completa
Esta postagem estĂĄ licenciada sob CC BY 4.0 pelo autor.