DC-UFRPE/Bacharelado em Ciência da Computação/Visão Computacional/Detecção de bordas e cantos
Detecção de bordas e cantos editar
A detecção de bordas é algo natural para o ser humano. Trata-se de compreender os limites de alguma figura geométrica. Porém, na computação, essa atividade não é nada trivial, porém extremamente necessária com diversas aplicações. Na visão computacional, para delimitar um objeto, é necessário encontrar suas bordas e para isso é necessário algoritmo que consigam fazer isso. Na maioria dos casos, os algoritmos tentam encontrar as mudança abrupta de luminosidades.
Operador de Sobel editar
O operador de Sobel usa uma matriz 3x3 para o eixo x ou y e calcular a diferença dos pixels da direita e esquerda ou de cima e baixo. Quando a diferença encontrar é alta, o operador realça aquele pixel detectado. O resultado final é uma imagem preto em branco com os pixels do contorno destacado.
Código com OpenCV editar
Exemplo do código:
import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
img = cv.imread('passarinho.jpg',0)
sobel = cv.Sobel(img, -1, 1, 1)
fig, ax = plt.subplots(ncols=2,figsize=(15,5))
ax[0].imshow(img, cmap = 'gray')
ax[0].set_title('Original')
ax[0].axis('off')
ax[1].imshow(sobel, cmap = 'gray')
ax[1].set_title('Sobel Aplicado')
ax[1].axis('off')
plt.show()