Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Análisis III: Operaciones sobre campos escalares en imágenes, Esquemas y mapas conceptuales de Cálculo

En este documento se presenta un análisis III sobre operaciones sobre campos escalares aplicadas a imágenes en escala de grises y a color (RGB). Se realizan diagramas de dispersión 3D, se aplican filtros diferenciales y se estudia el concepto de gradiente aplicado a la imagen. Se utilizan librerías como NumPy, Matplotlib, PIL y Plotly Express.

Tipo: Esquemas y mapas conceptuales

2021/2022

Subido el 29/08/2022

sebastian-larcos
sebastian-larcos 🇪🇨

1 documento

1 / 8

Toggle sidebar

Documentos relacionados


Vista previa parcial del texto

¡Descarga Análisis III: Operaciones sobre campos escalares en imágenes y más Esquemas y mapas conceptuales en PDF de Cálculo solo en Docsity! Universidad Central del Ecuador Análisis III Operaciones sobre los campos escalares (Sobre imágenes) Nombre: • Sebastian Larcos • Emil Verkade • Joel Luna • Rensso Parra Trabajo grupal Descripción de la Actividad: 1. Use la imagen cargada en escala de grises para realizar un (Diagrama de dispersión en 3D). Eso significa que cada pixel en su ubicación (x, y) tiene un valor de escala de gris (valor de la matriz) que equivale al valor de z. Use puntos para el diagrama Scatter. 2. Haga lo mismo para la imagen a colores (RGB). En este caso haga un diagrama de dispersión 3D distinto para cada color, es decir uno para R, uno para G y otro para B. 3. Escriba detalladamente que significa la gráfica Scatter 3D que ha ploteado, como relaciona con los conceptos aprendidos sobre campos escalares. 4. Use la imagen en escala de grises cargada en la parte 1 del trabajo para implementar el FILTRO DIFERENCIAL. Use para esta implementación una máscara de tamaño 2x2 (Máscara de Roberts) y una máscara de tamaño 3x3 (Máscara de Prewitt) 5. Escriba detalladamente que entiende por gradiente aplicada a la imagen y cómo se empleó en este ejercicio práctico. 1. DIAGRAMA DE DISPERSIÓN 3D (ESCALA DE GRISES) Para la creación de este proyecto utilizamos las siguientes librerias disponibles del lenguaje de programación python: 1 import numpy as np 2 from matplotlib import pyplot as plt 3 from PIL.Image import open 4 import pandas as pd 5 from numpy import ndarray 6 from scipy.signal import convolve2d 7 from cv2 import imread, imwrite 8 import plotly.express as px 9 import plotly.graph_objects as go Código 1. Importamos las librerias que vamos a utilizar • Implementación Utilizando el lenguaje de programación Python. Primero llamamos a la imagen en escala de grises, la mostramos en pantalla: 1 imagen_Grices = "/data/notebook_files/Imagen_escala.png" 2 image_grices = cv2.imread(imagen_Grices) 3 plt.imshow(image_grices) Código 2. Llamamos a la imagen en escala de grises ahora obtenemos su matriz de datos: 1 Escala_grices_arr_imagen = Image.open(imagen_Grices) 2 escala_grices_array_imagen = np.array(Escala_grices_arr_imagen) Código 3. Obtenemos la matriz de datos asociada a la imagen en escala de grises Donde nos arroja la siguiente matriz:  187 186 186 · · · 158 158 158 187 186 187 · · · 159 159 159 186 187 186 · · · 159 158 158 · · · · · · · · · · · · · · · · · · · · · 134 129 123 · · · 138 137 136 134 128 123 · · · 137 137 137 131 126 121 · · · 135 136 137  (1) Acotamos la imagen para este trabajo ya que al ser una imagen en formato .png y contener una dimensión de 640×1200 nos dificulta trabajar con tal cantidad de datos por lo que la transformamos a una imagen 360× 360. 1 SQUARE_SIZE = 360 2 squared_image = image_grices[0:SQUARE_SIZE , 0:SQUARE_SIZE] 3 plt.imshow(squared_image) Código 4. Acotamos la imagen a trabajar La imagen queda como: Universidad Central del Ecuador 2 ▽F = ( ∂f ∂x , ∂f ∂y ) ; gradiente de una funcin f (x, y) (2) En forma simplificada, el gradiente nos muestra el como es que una imagen cambia en términos de color e intensidad. El módulo del gradiente nos permite observar la rapidez con la que una imagen se encuentra cambiando, y por último, la dirección del gradiente nos indica la dirección en la que la imagen está cambiando más rápido. Para una función f(x, y) el módulo de su vector gradiente se escribe como: ▽f = mag(▽F ) = (( ∂f ∂x )2 + ( ∂f ∂y )2) 1 2 (3) Esta ecuación a base de varias aproximaciones a la diferenciación de la imagen puede y mediante diferentes subíndices z que nos muestran la intensidad de los valores del color gris, podemos llegar a diferentes ecuaciones que nos permiten llegar a resultados similares. ▽f = [(z5 − z8) 2 + (z5 − z6) 2] 1 2 (4) ▽f = [(z5 − z9) 2 + (z6 − z8) 2] 1 2 (5) ▽f = [|z5 − z8|+ |z5 − z6|] 1 2 (6) ▽f = [|z5 − z9|+ |z6 − z8|] 1 2 (7) Estas ecuaciones son otra aplicación de los gradientes a las imágenes, para ser más exacto a las máscaras de tamaño 2x2. Estas mascaras se denominan los operadores de Roberts de gradiente. ▽f = |(z7 + z8 + z9)− (z1 + z2 + z3)|+ |(z3 + z6 + z9)− (z1 + z4 + z7)| (8) Esta ecuación puede ser aplicada para máscaras de tamaño 3x3 denominados mascara de Prewitt. Otra aplicación de los gradientes a la imagen. Uso en el ejercicio práctico: Usamos los gradientes para aplicar filtros diferenciables a una imagen en escales de grises. En el ejercicio practico aplicamos mascaras de Prewitt y Roberts en las matrices de la imagen en escala de grises. Tambien utilizamos un proceso llamado Convolución que es el tratamiento de una matriz por otra que se llama “kernel”. El filtro matriz de convolución usa una primera matriz que es la imagen que será tratada. La imagen es una colección bidimensional de píxeles en coordenada rectágular. El kernel usado depende del efecto deseado. • Máscara de Roberts Máscara de tamaño 2× 2 dada por la ecuación 6) y de la forma:1 0 0 −1  y  0 1 −1 0  (9) Aplicamos la máscara de Roberts para Y: 1 mascara_Roberts_Y = np.array([[1, 0], [0, -1]]) 2 Diferencial_de_imagen = convolve2d(escala_grices_array_imagen , mascara_Roberts_Y) 3 plt.imshow(Diferencial_de_imagen , cmap='gray') Código 11. Máscara de Roberts Y La cual al ser mostrada en pantalla nos da como resultado: Universidad Central del Ecuador 5 Aplicamos la máscara de Roberts para X: 1 mascara_Roberts_X = np.array([[0, 1], [-1, 0]]) 2 Diferencial_de_imagen = convolve2d(escala_grices_array_imagen , mascara_Roberts_X) 3 plt.imshow(Diferencial_de_imagen , cmap='gray') Código 12. Máscara de Roberts X La cual al ser mostrada en pantalla nos da como resultado: • Máscara de Prewitt Máscara de tamaño 3× 3 dada por la ecuación 7) y de la forma: −1 −1 −1 0 0 0 1 1 1  y  −1 0 1 −1 0 1 −1 0 1  (10) Aplicamos la máscara de Prewitt para Y: 1 mascara_Prewitt_Y = np.array([[-1, -1, -1], [0, 0, 0], [1, 1, 1]]) 2 Diferencial_de_imagen = convolve2d(escala_grices_array_imagen , mascara_Prewitt_Y) 3 plt.imshow(Diferencial_de_imagen , cmap='gray') Código 13. Máscara de Prewitt Y La cual al ser mostrada en pantalla nos da como resultado: Universidad Central del Ecuador 6 Aplicamos la máscara de Prewitt para X: 1 mascara_Prewitt_X = np.array([[-1, 0, 1], [-1, 0, 1], [-1, 0, 1]]) 2 Diferencial_de_imagen = convolve2d(escala_grices_array_imagen , mascara_Prewitt_X) 3 plt.imshow(Diferencial_de_imagen , cmap='gray') Código 14. Máscara de Prewitt X La cual al ser mostrada en pantalla nos da como resultado: Universidad Central del Ecuador 7
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved