Blog

Aprenda visão computacional rodando: explicações, demos interativas, código executável e benchmarks honestos.

Os artigos traduzidos para o português até agora, do mais novo ao mais antigo. Todos os posts, em inglês →

Fundamentos
·8 min de leitura Iniciante

Achar todas as bolas numa mesa de sinuca com OpenCV

O segundo projeto de OpenCV na Prática: achar as bolas numa mesa de sinuca pela única cor que elas não têm, a do pano, e avaliar o resultado bola a bola contra uma contagem à mão em três fotos. 29 de 41 achadas com 2 alarmes falsos; 9 das 12 que faltaram estão encostadas em outra bola.

opencvimage-processing
Ler →
Fundamentos
·7 min de leitura Iniciante

Corrigir uma foto mal exposta com OpenCV

O primeiro projeto de OpenCV na Prática: abrir uma foto tirada dois stops escura demais, ler seu histograma, testar cinco formas de corrigi-la e medir cada uma contra uma foto mais longa e bem exposta da mesma cena (o alvo). Multiplicar chega mais perto; as correções automáticas ficam mais longe.

opencvimage-processing
Ler →
Fundamentos
·4 min de leitura Iniciante

Brilho e contraste no OpenCV

Clareie uma foto subexposta de dois jeitos, somando uma constante com cv2.add ou multiplicando com cv2.convertScaleAbs, e meça qual chega mais perto da exposição alvo: 18,0 contra 9,1.

opencvimage-processing
Ler →
Fundamentos
·6 min de leitura Iniciante

Onde a detecção por cor falha no OpenCV

Compare um pipeline de máscara de cor com uma contagem feita à mão em três fotos de mesa de sinuca, corrija as caçapas e as sombras e veja o que a cor não resolve: 27 de 41 bolas achadas no início, 29 depois das correções, 9 das 12 perdidas encostadas em outra bola.

opencvimage-processing
Ler →
Fundamentos
·3 min de leitura Iniciante

Recortar, redimensionar e salvar uma imagem no OpenCV

Termine a correção: recorte a carta de cores com fatiamento de array, reduza a foto com cv2.resize e INTER_AREA e salve com cv2.imwrite, onde a mesma imagem tem 54 KB como JPEG e 276 KB como PNG.

opencvimage-processing
Ler →
Fundamentos
·5 min de leitura Iniciante

Encontrar, medir e filtrar contornos no OpenCV

Encontre o contorno de cada blob de uma máscara com cv2.findContours, meça sua área e circularidade e fique com os que têm forma de bola. Na mesa de sinuca 11 de 14 blobs passam e o taco é rejeitado com circularidade 0,12.

opencvimage-processing
Ler →
Fundamentos
·5 min de leitura Iniciante

Achar a faixa HSV de um objeto no OpenCV

Leia os pixels de uma mesa de sinuca em HSV com cv2.cvtColor e ache a faixa que o pano ocupa: o valor de verde cai quase dez vezes entre a ponta iluminada e uma sombra, enquanto o matiz fica entre 86 e 90.

opencvimage-processing
Ler →
Fundamentos
·4 min de leitura Iniciante

Correção gama no OpenCV com uma tabela de consulta

Monte uma tabela de consulta de 256 entradas e aplique com cv2.LUT para clarear mais os tons escuros que os claros. Com dois stops de falta, multiplicar vence (9,1 contra 10,7); com três, a gama vence (13,9 contra 15,1).

opencvimage-processing
Ler →
Fundamentos
·4 min de leitura Iniciante

Histogramas de imagem no OpenCV

Conte quantos pixels há em cada brilho com cv2.calcHist, desenhe o histograma e leia nele que a foto escura tem 79,3% dos pixels no quarto inferior e 7,8% estourados.

opencvimage-processing
Ler →
Fundamentos
·4 min de leitura Iniciante

Máscara de cor com cv2.inRange no OpenCV

Transforme uma faixa HSV numa máscara preto e branco com cv2.inRange, inverta-a com bitwise_not e aplique-a com bitwise_and. Na mesa de sinuca uma chamada marca 79,3% da foto como pano.

opencvimage-processing
Ler →
Fundamentos
·4 min de leitura Iniciante

Equalização de histograma e CLAHE no OpenCV

Teste as correções automáticas de contraste do OpenCV, cv2.equalizeHist e CLAHE, numa foto escura com um abajur aceso, e meça por que elas ficam mais longe da exposição alvo (30,6 e 35,5) do que um simples multiplicador (9,1).

opencvimage-processing
Ler →
Fundamentos
·5 min de leitura Iniciante

Erosão, dilatação, abertura e fechamento de uma máscara no OpenCV

Limpe uma máscara de cor com morfologia: a erosão encolhe as áreas brancas, a dilatação as aumenta, a abertura remove pontinhos e o fechamento preenche buracos. Na mesa de sinuca a máscara vai de 59 blobs para 14.

opencvimage-processing
Ler →
Fundamentos
·4 min de leitura Iniciante

Abrir uma imagem e ler seus pixels no OpenCV

Carregue uma foto com cv2.imread, veja que ela é uma grade de números com forma e tipo, e leia um pixel e o brilho médio de uma foto tirada dois stops escura demais.

opencvimage-processing
Ler →