Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Prof. Leonardo Gomes Visão Computacional Aula 2 Conversa Inicial Nesta aula, vamos debater a etapa de pré- processamento no pipeline dos algoritmos de visão computacional Acessando pixels Histograma de cores Transformações geométricas em imagens Operações aritméticas Ruído em imagens Acessando pixels import cv2 imagem = cv2.imread("mario.jpg") valorPixel = imagem[100,200] print(valorPixel) Leitura de dados import cv2 imagem = cv2.imread("mario.jpg") imagem[100,200] = [50,100,150] imagem[100,200,2] = 250 valorPixel = imagem[100,200] print(valorPixel) Modificando pixel 2 import cv2 imagem = cv2.imread("mario.jpg") print(imagem.shape) # linhas colunas cores print(imagem.size) # tamanho print(imagem.size/imagem.shape[2])#total pixels print(imagem.shape[0]*imagem.shape[1])#total pixels Acessando dados da imagem Histograma de cores Histograma Contabilizar ocorrências dentro de um intervalo Por exemplo: as vendas de uma loja nos meses do ano Histograma de cores Histograma – preto e branco Imagem binária e seu histograma. 800000 – 700000 – 600000 – 500000 – 400000 – 300000 – 200000 – 100000 – 0 – | | | | | | 0 50 100 150 200 250 Fonte: Gomes, 2021 0 50 100 150 200 250 Histograma – tons de cinza 60000 – 50000 – 40000 – 30000 – 20000 – 10000 – 0 – | | | | | | Goran Jakus/Shutterstock Histograma – cores Goran Jakus/Shutterstock 250000 – 200000 – 150000 – 100000 – 50000 – 0 – 0 50 100 150 200 250 | | | | | | 70000 – 60000 – 50000 – 40000 – 30000 – 20000 – 10000 – 0 – 0 50 100 150 200 250 | | | | | | 70000 – 60000 – 50000 – 40000 – 30000 – 20000 – 10000 – 0 – 0 50 100 150 200 250 | | | | | | 3 Histograma – subexposta 70000 – 60000 – 50000 – 40000 – 30000 – 20000 – 10000 – 0 – 0 50 100 150 200 250 | | | | | | 20000 – 20000 – 10000 – 5000 – 0 – 0 50 100 150 200 250 | | | | | | 4-life-2-b/Shutterstock Histograma – superexposta Ezp/Shutterstock 50000 – 40000 – 30000 – 20000 – 10000 – 0 – 0 50 100 150 200 250 | | | | | | 17500 – 15000 – 12500 – 10000 – 7500 – 5000 – 2500 – 0 – 0 50 100 150 200 250 | | | | | | Transformações geométricas em imagens Rotação: girar a imagem, tendo como base um eixo Translação: mover a imagem horizontalmente e verticalmente Escala: esticar ou encolher a imagem nos eixos X e Y Perspectiva: uma combinação das outras transformações, para dar a ilusão de que a imagem está sendo observada de outro ponto de vista Transformações Rotação Fonte: Gomes, 2021 matriz = cv2.getRotationMatrix2D( (colunas / 2, linhas / 2), 90, 1) imgNova = cv2.warpAffine( imgOrig,matriz,(colunas, linhas)) Rotação 4 Translação Fonte: Gomes, 2021 matriz = np.float32([[1, 0, 100], [0, 1, 200]]) imgNova = cv2.warpAffine( imgOrig,matriz,(colunas, linhas)) Translação Escala Fonte: Gomes, 2021 imgNova = cv2.resize(imgOrig, (200,400)) Escala Perspectiva Imagem de uma placa de carro com correção de perspectiva. Blue Corner Studio/Shutterstock. pontosOrigem = np.float32( [[13,1], [193,61], [13,51], [185,111]]) pontosDestino = np.float32( [[0,0], [200,0], [0,50], [200,50]]) matriz = cv2.getPerspectiveTransform( pontosOrigem, pontosDestino) imgNova = cv2.warpPerspective( imgOrig, matriz, (200, 50)) Perspectiva 5 Operações aritméticas Adição Imagem da esquerda e do meio somadas na imagem resultante da direita. Fonte: Gomes, 2021 Adição de um valor fixo 4-life-2-b/Shutterstock import cv2 imagem1 = cv2.imread("marioEsquerda.jpg") imagem2 = cv2.imread("marioDireita.jpg") imagemResultado = cv2.add(imagem1, imagem2) cv2.imshow("Resposta", imagemResultado) cv2.waitKey(0) Adição Subtração Fonte: Gomes, 2021 import cv2 imagem1 = cv2.imread("marioEsquerda.jpg") imagem2 = cv2.imread("marioDireita.jpg") imagemResultado = cv2.subtract(imagem1, imagem2) cv2.imshow("Resposta", imagemResultado) cv2.waitKey(0) Subtração 6 Combinação Fonte: Gomes, 2021 import cv2 imagem1 = cv2.imread("marioDireita.jpg") imagem2 = cv2.imread("marioEsquerda.jpg") imagemResultado = cv2.addWeighted( imagem1, 0.2, imagem2, 0.8, 0) cv2.imshow("Resultado", imagemResultado) cv2.waitKey(0) Combinação Ruído em imagens Ruído gaussiano Imagem original, ruído gaussiano e imagem somada ao ruído. Goran Jakus/Shutterstock Ruído sal e pimenta Fonte: Gomes, 2021 Ruído por codificação de imagem Goran Jakus/Shutterstock 7 Oclusões na imagem Fonte: Takada; Hotta, 2015.
Compartilhar