Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Prof. Leonardo Gomes Visão Computacional Aula 3 Conversa Inicial Filtros lineares Filtros não lineares Detecção de bordas Realce de bordas Detector de bordas de Canny Aula Filtros lineares Filtros que atenuam ruídos Suavizam diferenças na imagem Borramento 16 14 9 7 11 3 3 19 4 2 6 4 15 3 13 15 8 15 6 4 13 9 11 14 4 16 7 2 16 10 11 9 10 3 18 2 -1 -1 -1 -1 8 -1 -1 -1 -1 35 Filtro 1 2 3 4 5 6 2 Filtros que realçam, passa-altas Filtros que suavizam, passa-baixas import cv2 img = cv2.imread("acaro.png") resultado = cv2.blur(img, (7,7)) cv2.imshow("Resposta", resultado) cv2.waitKey(0) Filtro da média Filtro da média 7x7 diy13/Shutterstock Filtro gaussiano 0 0 1 2 1 0 0 0 3 13 22 13 3 0 1 13 59 97 59 13 1 2 22 97 159 97 22 2 1 13 59 97 59 13 1 0 3 13 22 13 3 0 0 0 1 2 1 0 0 1 4 7 4 1 4 16 26 16 4 7 26 41 26 7 4 16 26 16 4 1 4 7 4 1 1 2 1 2 4 2 1 2 1 import cv2 img = cv2.imread("acaro.png") resultado = cv2.GaussianBlur(img, (7,7),5) cv2.imshow("Resposta", resultado) cv2.waitKey(0) Filtro gaussiano diy13/Shutterstock 7 8 9 10 11 12 3 Filtros não lineares Filtros que atenuam ruídos Reduzem efeito de suavização Filtros não lineares import cv2 img = cv2.imread("marioSalPimenta.png") resultado = cv2.medianBlur(img,7) cv2.imshow("Resposta", resultado) cv2.waitKey(0) Filtro da mediana fonte: O autor, 2021 import cv2 img = cv2.imread("araraGaussiana.png") resultado = cv2.bilateralFilter(img, 9, 75, 75) cv2.imshow("Resposta", resultado) cv2.waitKey(0) Filtro bilateral Imagem com ruído de gaussiano Goran Jakus/Shutterstock 13 14 15 16 17 18 4 Goran Jakus/Shutterstock Imagem após filtro gaussiano Goran Jakus/Shutterstock Imagem após filtro bilateral Detecção de bordas -1 0 +1 -2 0 +2 -1 0 +1 +1 +2 +1 0 0 0 -1 -2 -1 Filtro de Sobel import cv2 img = cv2.imread("grade.png") sobelH = cv2.Sobel(img, cv2.CV_8U, 1, 0, ksize = 3) sobelV = cv2.Sobel(img, cv2.CV_8U, 0, 1, ksize = 3) cv2.imshow("Horizontal", sobelH) cv2.imshow("Vertical", sobelV) cv2.waitKey(0) owen1978/Shutterstock 19 20 21 22 23 24 5 owen1978/Shutterstock 0 1 0 1 -4 1 0 1 0 1 1 1 1 -8 1 1 1 1 Filtro de Laplace import cv2 img = cv2.imread("grade.png") resultado = cv2.Laplacian(img, cv2.CV_8U) cv2.imshow("Resposta", resultado) cv2.waitKey(0) owen1978/Shutterstock owen1978/Shutterstock Realce de bordas 25 26 27 28 29 30 6 Realce com Laplace import cv2 imgOrig = cv2.imread("moeda.png",0) imgLaplace = cv2.Laplacian(imgOrig, cv2.CV_8U) resultado = cv2.subtract(imgOrig, imgLaplace) cv2.imshow("Laplace", imgLaplace) cv2.imshow("Resultado", resultado) cv2.waitKey(0) OlegRi/Shutterstock OlegRi/Shutterstock OlegRi/Shutterstock import cv2 imgOrig = cv2.imread("raiox.png",0) imgGaussiana =cv2.GaussianBlur(imgOrig, (13,13), 3) imgRealce = 3 * cv2.subtract(imgOrig, imgGaussiana) resultado = cv2.add(imgOrig, imgRealce) cv2.imshow("Original", imgOrig) cv2.imshow("Gaussiana", imgGaussiana) cv2.imshow("Realce", imgRealce) cv2.imshow("Resultado", resultado) cv2.waitKey(0) Realce com gaussiano Lena Si/Shutterstock 31 32 33 34 35 36 7 Lena Si/Shutterstock Detecção de bordas de Canny Desenvolvido nos anos 1980 John F. Canny Gaussiano, Sobel Bordas com um único pixel de espessura Canny import cv2 imgOrig = cv2.imread("grade.png",0) resultado = cv2.Canny(imgOrig, 50, 150) cv2.imshow("Resultado", resultado) cv2.waitKey(0) owen1978/Shutterstock 37 38 39 40 41
Compartilhar