Código de Python - Representación digital de imágenes.

Imágen de perfil

Representación digital de imágenes.gráfica de visualizaciones


Python

Publicado el 13 de Diciembre del 2023 por Hilario (124 códigos)
221 visualizaciones desde el 13 de Diciembre del 2023
Representación digital de imágenes.
----------------------------------

Con el fin de ir familiarizandonos con las redes convolucionales. Proponemos este otro ejercicio: Aula-38-Define-Imagen-CNN.py.

En este programa, definimos una imagen de entrada en color (3 canales).
Mediante np.array.
Por otro lado definimos el filtro, o kernel, de la convolución, por medio de otro array.

Realizamos la convolución usando la función convolve de SciPy.
Al final mostramos la imagen original y la imagen convolucionada.

Básicamente en este ejercicio muestra el contexto de la representación digital de imágenes, cada píxel tiene un valor numérico que indica su color. Estos valores suelen estar en forma de un array bidimensional, también conocido como matriz.

En una imagen en escala de grises, cada píxel puede tener un valor numérico que representa la intensidad de gris en esa posición. Los valores comúnmente van desde 0 (negro) hasta 255 (blanco) en una imagen de 8 bits.

En una imagen en color, se utilizan varios canales de color (como rojo, verde y azul en el modelo RGB). Cada canal tiene su propia matriz de píxeles y, cuando se combinan, forman el color de cada píxel. Los valores numéricos en este caso también suelen estar en el rango de 0 a 255.

Por ejemplo, si tienes una imagen de 100x100 píxeles en escala de grises, podrías representarla como una matriz de 100x100, donde cada elemento de la matriz contiene un valor numérico que representa la intensidad de gris en esa posición específica.
Figure_1
Figure_2

Requerimientos

Ejercicio realizado en una plataforma Linux, con Ubuntu 20.04.6 LTS.
Editado con Sublime Text.

El sistema operativo en el que se ejecute deberá de tener instaladas para importarlas las siguientes librerías:

import numpy as np
import matplotlib.pyplot as plt
from scipy import ndimage

------------------------------------------------------------------------------------
La ejecución del programa se hizo bajo consola, con este comando.

python3 Aula-38-Define-Imagen-CNN.py



V-0.

Publicado el 13 de Diciembre del 2023gráfica de visualizaciones de la versión: V-0.
222 visualizaciones desde el 13 de Diciembre del 2023
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#Aula-38-Define-Imagen-CNN.py.
#Ejecución: python3 Aula-38-Define-Imagen-CNN.py
 
import numpy as np
import matplotlib.pyplot as plt
from scipy import ndimage
 
# Definir la imagen de entrada en color (3 canales)
image = np.array([[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]],
                  [[1, 14, 15], [16, 7, 18], [9, 20, 21], [22, 23, 24]],
                  [[25, 26, 27], [8, 9, 0], [31, 32, 33], [34, 35, 36]],
                  [[37, 48, 39], [40, 41, 42], [43, 44, 45], [46, 47, 48]]], dtype=np.uint8)
 
# Definir el filtro de convolución
filter_matrix = np.array([[[1, 0, -1], [1, 0, -1], [1, 0, -1]],
                          [[-1, 0, 1], [-1, 0, 1], [-1, 0, 1]],
                          [[1, 0, -1], [1, 0, -1], [1, 0, -1]]])
 
# Realizar la convolución usando la función convolve de SciPy
convolved_image = ndimage.convolve(image, filter_matrix, mode='constant', cval=0.0)
print("*********************************************")
print("Salida valores pixel convolucionado /n")
print(convolved_image)
print("*********************************************")
# Mostrar la imagen original y la imagen convolucionada
plt.figure(figsize=(8, 4))
 
plt.subplot(1, 2, 1)
plt.title('Imagen Original')
plt.imshow(image, interpolation='none')
plt.axis('off')
 
plt.subplot(1, 2, 2)
plt.title('Imagen Convolucionada')
plt.imshow(convolved_image, interpolation='none')
plt.axis('off')
 
plt.show()
# Separar canales de la imagen original
red_channel = image[:, :, 0]
green_channel = image[:, :, 1]
blue_channel = image[:, :, 2]
 
# Separar canales de la imagen convolucionada
convolved_red_channel = convolved_image[:, :, 0]
convolved_green_channel = convolved_image[:, :, 1]
convolved_blue_channel = convolved_image[:, :, 2]
 
# Mostrar las imágenes originales y convolucionadas por canal
plt.figure(figsize=(12, 6))
 
plt.subplot(2, 4, 1)
plt.imshow(red_channel, cmap='gray')
plt.title('Canal Rojo Original')
plt.axis('off')
 
plt.subplot(2, 4, 2)
plt.imshow(green_channel, cmap='gray')
plt.title('Canal Verde Original')
plt.axis('off')
 
plt.subplot(2, 4, 3)
plt.imshow(blue_channel, cmap='gray')
plt.title('Canal Azul Original')
plt.axis('off')
 
plt.subplot(2, 4, 5)
plt.imshow(convolved_red_channel, cmap='gray')
plt.title('Canal Rojo Convolucionado')
plt.axis('off')
 
plt.subplot(2, 4, 6)
plt.imshow(convolved_green_channel, cmap='gray')
plt.title('Canal Verde Convolucionado')
plt.axis('off')
 
plt.subplot(2, 4, 7)
plt.imshow(convolved_blue_channel, cmap='gray')
plt.title('Canal Azul Convolucionado')
plt.axis('off')
 
plt.show()



Comentarios sobre la versión: V-0. (0)


No hay comentarios
 

Comentar la versión: V-0.

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7466