No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

El kernel en acción

9/24
Recursos

Aportes 7

Preguntas 0

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

El kernel de bordes horizontales puede quedar como

img_new_horizontal = nd.convolve(img_gray,kernel.T)

Con el kernel original que definimos en la clase

Por si se preguntaban qué pasa con un Kernel = 0’s

Probando distintos Kernels:

kernel = np.array([[ 0, 0, 0],
[ 0, 0, 0],
[ 0, 0, 0]])


kernel = np.array([[ 1, 0, 1],
[ 0, 0, 0],
[ 1, 0, 1]])



kernel = np.array([[ 0, 0, 0],
[ 0, -1, 0],
[ 0, 0, 0]])

Lo convertí en función para ir probando varios kernels más fácil.

def test_kernels(img: np.ndarray, kernel: np.ndarray):
    img_new = nd.convolve(img_gray, kernel)
    fig, axes = plt.subplots(1,2, figsize=(15,10))
    axes[0].imshow(img, cmap=plt.cm.gray)
    axes[0].set_title('Original')
    axes[0].axis('off')

    axes[1].imshow(img_new, cmap=plt.cm.gray)
    axes[1].set_title('New')
    axes[1].axis('off')

test_kernels(img_gray, kernel)

# test con matriz identidad
test_kernels(img_gray, [[1,0,0],[0,1,0],[0,0,1]])
<#kernel, para bordes verticales

kernel = np.array([[-1, 0, 1],
                   [-1, 0, 1],
                   [-1, 0, 1]])
#utilizo la traspuesta de kernel
img_new = nd.convolve(img_gray, kernel.T)
fig, axes = plt.subplots(1,2, figsize=(15,10))
axes[0].imshow(img_gray ,cmap=plt.cm.gray)
axes[0].set_title('Original')
axes[0].axis('off')

axes[1].imshow(img_new ,cmap=plt.cm.gray)
axes[1].set_title('Convolucion')
axes[1].axis('off')
import cv2
cv2.imwrite('kernel.png',img_new)> 

Probando el kernel para bordes horizontales

Código:

kernel_2 = np.array([[1,1,1],
                  [0,0,0],
                  [-1,-1,-1]])

img_2 = nd.convolve(img_gray, kernel_2)

fig, axes = plt.subplots(1,2, figsize = (15,10))
axes[0].imshow(img_gray, cmap=plt.cm.gray)
axes[0].set_title('Original')
axes[0].axis('off')

axes[1].imshow(img_2, cmap=plt.cm.gray)
axes[1].set_title('Convolution')
axes[1].axis('off')