Código de Python - Binarizar imagen

Imágen de perfil

Binarizar imagengráfica de visualizaciones


Python

Publicado el 7 de Diciembre del 2023 por Hilario (123 códigos)
240 visualizaciones desde el 7 de Diciembre del 2023
En Python, el módulo pickle proporciona una forma de serializar y deserializar objetos. La serialización es el proceso de convertir un objeto en una secuencia de bytes, mientras que la deserialización es la reconstrucción del objeto a partir de esa secuencia de bytes. El propósito principal de pickle es facilitar el almacenamiento y recuperación de objetos complejos, como estructuras de datos, clases y otros objetos de Python.

El uso típico de pickle es para guardar objetos Python en archivos y luego recuperarlos más tarde. Sin embargo, debes tener precaución al usar pickle con datos no confiables o no seguros, ya que la deserialización de datos no confiables puede ser un riesgo de seguridad. No debes cargar archivos pickle de fuentes no confiables o desconocidas.

Alternativamente, si estás trabajando solo con datos simples y no necesitas interoperabilidad con otros lenguajes, podrías considerar otros formatos de serialización más seguros y eficientes, como JSON, que son humanamente legibles y no ejecutan código durante la deserialización.

Requerimientos

Aula_228-B.py
Fue realizado en una plataforma Linux, concretamente en Ubuntu 20.04.6 LTS.
Editado en Sublime Text.
Con el de ser llamadas, deberás asegurarte de tener en tu sistema cargadas las librerías:
from PIL import Image
import pickle.

Por defecto dederían estar cargadas en python3.

Ejecutar: python3 Aula_228-B.py

Bajo el directorio que ejecutes el programa deberás de tener la imagen a binarizar.
En el caso de este ejercicio lo llamamos 'gato.jpg'.
La salida binarizada la llamaremos: 'imagen_binarizada.pkl'

V-0

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

Imagen a binarizar.

gato
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
# Aula_228-B.py
#Ejecutar: python3  Aula_228-B.py
 
 
from PIL import Image
import pickle
 
def binarize_image(image_path, threshold=128):
    # Abre la imagen utilizando PIL
    image = Image.open(image_path).convert('L')  # Convierte a escala de grises
 
    # Convierte la imagen a una matriz de píxeles
    pixels = list(image.getdata())
 
    # Aplica la binarización según el umbral
    binary_pixels = [1 if pixel > threshold else 0 for pixel in pixels]
 
    # Obtiene las dimensiones originales de la imagen
    width, height = image.size
 
    # Reconstruye la imagen binarizada
    binary_image = Image.new('1', (width, height))
    binary_image.putdata(binary_pixels)
 
    return binary_image
 
def save_binary_image_pickle(binary_image, output_path):
    # Serializa la imagen binarizada y la guarda en un archivo con pickle
    with open(output_path, 'wb') as file:
        pickle.dump(binary_image, file)
 
def load_binary_image_pickle(input_path):
    # Carga la imagen binarizada desde el archivo pickle
    with open(input_path, 'rb') as file:
        binary_image = pickle.load(file)
 
    return binary_image
 
# Ejemplo de uso
input_image_path = 'gato.jpg'
output_pickle_path = 'imagen_binarizada.pkl'
 
# Binariza la imagen y la guarda en un archivo pickle
binary_image = binarize_image(input_image_path)
save_binary_image_pickle(binary_image, output_pickle_path)
 
# Carga la imagen binarizada desde el archivo pickle
loaded_binary_image = load_binary_image_pickle(output_pickle_path)
 
# Muestra la imagen original y la imagen binarizada
binary_image.show(title='Imagen Binarizada')
Image.open(input_image_path).show(title='Imagen Original')



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/s7463