ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Resumen Capitulo 2: OpenCV 3.x with Python


Enviado por   •  22 de Abril de 2022  •  Resumen  •  830 Palabras (4 Páginas)  •  217 Visitas

Página 1 de 4

Introducción.

Este capitulo va a tratar de aplicar efectos visuales a las imágenes que queramos, desde detección de bordes que la imagen tenga, hasta filtros sencillos a la imagen como resaltar varios aspectos específicos de la imagen o darle énfasis a una determinada zona de la imagen.

Desarrollo.

# Andoni Cardenas Alonso 18310437

# Blurring

import cv2

import numpy as np

img = cv2.imread('images/c83ce45.png')

filas, columnas = img.shape[:2]

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

kernel_3x3 = np.ones((3, 3), np.float32) / 9.0 # Divide by 9 to normalize the kernel

kernel_5x5 = np.ones((5, 5), np.float32) / 25.0 # Divide by 25 to normalize the kernel

cv2.imshow('Original', img)

output = cv2.filter2D(img, -1, identidad_kernel) # (imagen a editar, para mantener la profundidad de la imagen original

cv2.imshow('Indentidad de kernel', output) # operacion a realizar)

output = cv2.filter2D(img, -1, kernel_3x3)

cv2.imshow('Filtro 3x3', output)

output = cv2.filter2D(img, -1, kernel_5x5) # Entre mayor sea la identidad de kerner

cv2.imshow('Filtro 5x5', output) # mas efecto blur obtienen las imágenes

cv2.waitKey(0)

output = cv2.blur(img, (3,3)) # Para no escribir las identidades kernel individualmente tenemos esta funcion

cv2.imshow('Filtro 3x3 con funcion', output)

cv2.waitKey(0)

cv2.destroyAllWindows()

# Motion blur (como si tomaramos la imagen en movimiento)

img = cv2.imread('images/c83ce45.png')

cv2.imshow('Original', img)

tam = 15

kernel_motion_blur = np.zeros((tam, tam)) # Generar el Kernel

kernel_motion_blur[int((tam-1)/2), :] = np.ones(tam)

kernel_motion_blur = kernel_motion_blur / tam

output = cv2.filter2D(img, -1, kernel_motion_blur) # Aplicando el kernel a la imagen de entrada

cv2.imshow('Motion Blur', output)

cv2.waitKey()

cv2.destroyAllWindows()

# Sharpening ("Afilar" la imagen)

img = cv2.imread('images/c83ce45.png')

cv2.imshow('Original', img)

kernel_sharpen_normal = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]]) # generamos los kernels

kernel_sharpen_agresivo = np.array([[1,1,1], [1,-7,1], [1,1,1]])

kernel_sharpen_3 = np.array([[-1,-1,-1,-1,-1],[-1,2,2,2,-1],[-1,2,8,2,-1],[-1,2,2,2,-1],[-1,-1,-1,-1,-1]]) / 8.0

output_1 = cv2.filter2D(img, -1, kernel_sharpen_normal) # aplicamos los kernels a la imagen de entrada

output_2 = cv2.filter2D(img, -1, kernel_sharpen_agresivo)

output_3 = cv2.filter2D(img, -1, kernel_sharpen_3)

cv2.imshow('Sharpening', output_1)

cv2.imshow('Sharpening Agresivo', output_2)

cv2.imshow('Realce de bordes', output_3)

cv2.waitKey()

cv2.destroyAllWindows()

# Embosing (Alzar la imagen)

realce_entrada = cv2.imread('images/c83ce45.png')

kernel_realce_1= np.array([[0, -1, -1], [1, 0, -1], [1, 1, 0]]) # Generamos los kernels

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

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

realce_gris = cv2.cvtColor(realce_entrada,cv2.COLOR_BGR2GRAY) # se convierte la imagen de entrada a escala de grises

# applying the kernels to the grayscale image and adding the offset to produce the shadow

output_1 = cv2.filter2D(realce_gris, -1, kernel_realce_1) + 128

output_2 = cv2.filter2D(realce_gris, -1, kernel_realce_2) + 128

output_3 = cv2.filter2D(realce_gris, -1, kernel_realce_3) + 128

cv2.imshow('Entrada', realce_entrada)

cv2.imshow('Realzado - Suroueste', output_1)

cv2.imshow('Realzado - Sureste', output_2)

cv2.imshow('Realzado - Noroeste', output_3)

cv2.waitKey()

cv2.destroyAllWindows()

# Edge detection (analizis de bordes)

img = cv2.imread('images/c83ce45.png', cv2.IMREAD_GRAYSCALE)

filas, columnas = img.shape

lineas_horizontales = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=5) # profundidad cv2.CV_64F. Filtro sobel

lineas_verticales

...

Descargar como (para miembros actualizados) txt (8 Kb) pdf (52 Kb) docx (13 Kb)
Leer 3 páginas más »
Disponible sólo en Clubensayos.com