viernes, 6 de septiembre de 2024

Ejemplo 7_tecnologias inteligentes_ CE3.2 Ejemplo de Visualización de Imágenes sin ejes:

Instalar la biblioteca:

pip install matplotlib


Aplicación.py:


import matplotlib.pyplot as plt

import matplotlib.image as mpimg


# Cargar y mostrar imagen

image = mpimg.imread('floree.jpg')

plt.imshow(image)

plt.title('Imagen Cargada')

plt.axis('off')  # No mostrar ejes

plt.show()



Aplicación.py  de nuevo, escribe el nombre del imagen en la misma carpeta:

import matplotlib.pyplot as plt
import matplotlib.image as mpimg

# Cargar y mostrar imagen
image = mpimg.imread('ruta_a_tu_imagen.jpg')
plt.imshow(image)
plt.title('Imagen Cargada')
plt.axis('off')  # No mostrar ejes
plt.show()

CE3.2 Ejemplo de Operaciones Matemáticas en Imágenes, INSTALAR TAMBIÉN LA biblioteca NumPy Y TAMBIEN Pillow (PIL)

¡¡¡Ojo!!! Instalar estas bibliotecas


pip install numpy

pip install pillow

pip install opencv-python matplotlib






import numpy as np

from PIL import Image

import matplotlib.pyplot as plt


# Cargar imagen y convertir a array NumPy

image = Image.open('ruta_a_tu_imagen.jpg')

image_array = np.array(image)


# Aplicar una operación matemática (aumentar brillo)

bright_image_array = image_array + 50

bright_image_array = np.clip(bright_image_array, 0, 255).astype(np.uint8)


# Convertir array de nuevo a imagen

bright_image = Image.fromarray(bright_image_array)


# Mostrar imagen original y con mayor brillo

plt.subplot(1, 2, 1)

plt.title('Original')

plt.imshow(image)


plt.subplot(1, 2, 2)

plt.title('Brillo Aumentado')

plt.imshow(bright_image)


plt.show()


RESULTADO:

Aplicación.py  de nuevo con el nombre de la imagen:


import numpy as np

from PIL import Image

import matplotlib.pyplot as plt


# Cargar imagen y convertir a array NumPy

image = Image.open('floree.jpg')

image_array = np.array(image)


# Aplicar una operación matemática (aumentar brillo)

bright_image_array = image_array + 50

bright_image_array = np.clip(bright_image_array, 0, 255).astype(np.uint8)


# Convertir array de nuevo a imagen

bright_image = Image.fromarray(bright_image_array)


# Mostrar imagen original y con mayor brillo

plt.subplot(1, 2, 1)

plt.title('Original')

plt.imshow(image)


plt.subplot(1, 2, 2)

plt.title('Brillo Aumentado')

plt.imshow(bright_image)


plt.show()


jueves, 5 de septiembre de 2024

tecnologias inteligentes_ CE3.2 segmentación por umbral Ejercicio 5

Segmentación por umbral Ejercicio 5

 


OJO!!! Instala también esta bliblioteca  pip install scikit-image


pip install scikit-image
pip install opencv-python matplotlib       ya las instalé antes, son                                                                          necesarias
pip install pillow                                       ya la instalé antes (parece                                                                      que no hace falta)

Programa:


from skimage import io, color, filters
import matplotlib.pyplot as plt

# Cargar imagen y convertir a escala de grises
image = io.imread('ruta_a_tu_imagen.jpg')
gray_image = color.rgb2gray(image)

# Aplicar umbral
thresh = filters.threshold_otsu(gray_image)
binary_image = gray_image > thresh

# Mostrar imagen binaria
plt.imshow(binary_image, cmap='gray')
plt.title('Segmentación por Umbral')
plt.show()


Cambiar ruta_a_tu_imagen.jpg  por nombre del archivo

Funciona en Google Colab poniendo una ruta de imagen, una direccion de un imAGEN DE INTERNET CUALQUIERA (HTTPS/........























Desenfoque ejercicio tecnología inteligentes. CE3.2 Desenfoca perfectamente la foto seleccionada

Ejemplo de Manipulación de Imagen:


pip install pillow

pip install opencv-python matplotlib

En geany, la aplicación.py, recuerda cambiar la ruta a tu imagen por el nombre de la imagen

from PIL import Image, ImageFilter
import matplotlib.pyplot as plt

# Cargar imagen
image = Image.open('ruta_a_tu_imagen.jpg')

# Aplicar desenfoqueblurred_image = image.filter(ImageFilter.BLUR)

# Mostrar imagen original y desenfocada
plt.subplot(1, 2, 1)
plt.title('Original')
plt.imshow(image)

plt.subplot(1, 2, 2)
plt.title('Desenfoque')
plt.imshow(blurred_image)

plt.show()



La aplicación de nuevo, con el nombre de la imagen:


 from PIL import Image, ImageFilter

import matplotlib.pyplot as plt


# Cargar imagen

image = Image.open('flor.jpg')


# Aplicar desenfoque

blurred_image = image.filter(ImageFilter.BLUR)


# Mostrar imagen original y desenfocada

plt.subplot(1, 2, 1)

plt.title('Original')

plt.imshow(image)


plt.subplot(1, 2, 2)

plt.title('Desenfoque')

plt.imshow(blurred_image)


plt.show()










Trayectoria/path para escribir la aplicación .py después del  touch almohadila.py que crea un archivo .py vacío, tienes que pegar el programa.py

En el IES no es necesario, tienes el programa en GEANY en la carpeta del proyecto y ya está, cuando lo llamas funciona.





martes, 3 de septiembre de 2024

tecnologías inteligentes _CE3.2 Ejemplos nuevo_con comentariosCE 3.2

Estos ejemplos básicos ayudan a comprender cómo manejar imágenes, hacer manipulaciones sencillas y aplicar técnicas de visión computacional para segmentación y detección de patrones. Asegúrate de tener instaladas las librerías necesarias con

pip install opencv-python-headless numpy pillow


Para ayudar a los jóvenes a comprender y utilizar librerías para operaciones básicas en imágenes, así como la identificación y segmentación de patrones visuales, podemos utilizar Python con librerías como OpenCV, PIL (Pillow) y numpy. A continuación, te daré unos ejemplos sencillos:

1.Operaciones Básicas con Imágenes usando PIL (Pillow)

Objetivo: Mostrar cómo abrir, redimensionar y guardar una imagen.



from PIL import Image

# Abrir una imagen
imagen = Image.open('ruta_a_tu_imagen.jpg')

# Mostrar la imagen
imagen.show()

# Redimensionar la imagen
imagen_redimensionada = imagen.resize((200, 200))

# Guardar la imagen redimensionada
imagen_redimensionada.save('imagen_redimensionada.jpg')

¡¡¡Ojo!!!Funciona perfectamente, tienes que abrir la imagen redimensionada manualmente.
RECUERDA PONER EL NOMBRE EN ruta_a_tu_imagen.jpg


Ejemplo_número 2:

2. Conversión a Escala de Grises con OpenCV

Objetivo: Convertir una imagen a escala de grises usando OpenCV.

import cv2


# Leer la imagen

imagen = cv2.imread('ruta_a_tu_imagen.jpg')


# Convertir la imagen a escala de grises

imagen_gris = cv2.cvtColor(imagen, cv2.COLOR_BGR2GRAY)


# Mostrar la imagen en escala de grises

cv2.imshow('Imagen en Escala de Grises', imagen_gris)

cv2.waitKey(0)

cv2.destroyAllWindows()


# Guardar la imagen en escala de grises

cv2.imwrite('imagen_gris.jpg', imagen_gris)

Ejemplo 3. Detección de Bordes con Canny en OpenCV

Objetivo: Detectar bordes en una imagen usando el algoritmo de Canny.

import cv2


# Leer la imagen

imagen = cv2.imread('ruta_a_tu_imagen.jpg')


# Convertir a escala de grises

imagen_gris = cv2.cvtColor(imagen, cv2.COLOR_BGR2GRAY)


# Aplicar el detector de bordes Canny

bordes = cv2.Canny(imagen_gris, 100, 200)


# Mostrar los bordes detectados

cv2.imshow('Bordes Detectados', bordes)

cv2.waitKey(0)

cv2.destroyAllWindows()




tecnologias inteligentes CE3.2 bordes:

 

Ejemplo de Detección de Bordes (Canny):
¡¡¡Ojo!!!Pon en "ruta a tu imagen " el nombre de la foto


import cv2
import matplotlib.pyplot as plt

# Cargar imagen
image = cv2.imread('ruta_a_tu_imagen.jpg', cv2.IMREAD_GRAYSCALE)

# Aplicar detección de bordes Canny
edges = cv2.Canny(image, 100, 200)

# Mostrar imagen con bordes
plt.imshow(edges, cmap='gray')
plt.title('Bordes Canny')
plt.show()

 

¡¡¡Funciona!!! 


Pero si aparece este error
(borde) usuario@debian:~/proyectos/escalgrs2$ python3 bordes.py
/home/usuario/proyectos/escalgrs2/bordes.py:13: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown  plt.show()
 
El error que estás viendo, UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown, ocurre porque matplotlib está configurado para usar un backend que no es interactivo y no puede mostrar las gráficas directamente en algunas terminales de Python. Para solucionar este problema, tienes varias opciones: 


2. Guardar la imagen en lugar de mostrarla:

Si solo quieres ver el resultado y no necesariamente necesitas una ventana interactiva, puedes guardar la imagen en un archivo en lugar de mostrarla:

plt.imshow(edges, cmap='gray')

plt.title('Bordes Canny')

plt.savefig('bordes_canny.png')

 










 

Esto guardará la imagen con los bordes detectados en un archivo llamado bordes_canny.png que puedes abrir manualmente.

Programa con la solución si aparece el error (en mi debian): 

import cv2
import matplotlib.pyplot as plt

# Cargar imagen
image = cv2.imread('pajarito.jpg', cv2.IMREAD_GRAYSCALE)

# Aplicar detección de bordes Canny
edges = cv2.Canny(image, 100, 200)

# Mostrar imagen con bordes
plt.imshow(edges, cmap='gray')
plt.title('Bordes Canny')
plt.savefig('bordes_canny.png')





Capturas de la primera opción:




 

 



árboles de decisión_ BLOQUE 3 curso Cefo. Inteligencia_artificial para la sociedad

 https://app.diagrams.net/          --------->           Es draw.io, pones  draw.io en buscador, es bueno y fácil Tienes que tener cuenta...