Como leer IMÁGENES de una CARPETA ? y almacenarlas AUTOMÁTICAMENTE | OpenCV con Python
Te doy la bienvenida a este post. He recibido algunas dudas sobre como leer varias imágenes de una carpeta, modificarlas y almacenarlas en una nueva ubicación, por ello he preparado un videotutorial en donde podrás encontrar:
- Leer imágenes con OpenCV alamacenadas en una carpeta
- Descartando archivos que no sean imágenes
- Leer solo ciertas extensiones de imágenes
- Almacenando imágenes automáticamente.
A continuación podrás encontrar el código desarrollado en el videotutorial (recuerda cambiar los paths de acuerdo a la ubicación que tengan tus carpetas):
import cv2 import os input_images_path = "C:/Users/Gaby/Desktop/Leer varias imagenes/input_images" files_names = os.listdir(input_images_path) print(files_names) output_images_path = "C:/Users/Gaby/Desktop/Leer varias imagenes/output_images" if not os.path.exists(output_images_path): os.makedirs(output_images_path) print("Directorio creado: ", output_images_path) count = 0 for file_name in files_names: #print(file_name) ''' if file_name.split(".")[-1] not in ["jpeg", "png"]: continue ''' image_path = input_images_path + "/" + file_name print(image_path) image = cv2.imread(image_path) if image is None: continue image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) image = cv2.resize(image, (100, 100), interpolation=cv2.INTER_CUBIC) cv2.imwrite(output_images_path + "/image" + str(count) + ".jpg", image) count += 1 ''' cv2.imshow("Image", image) cv2.waitKey(0) cv2.destroyAllWindows() '''
NOTA: Si te parecieron bonitas las imágenes de mascotas que usé en el video y deseas acceder a ellas, puedes encontrarlas en este link.
hola,
Muy claro tu video, además eres muy agradable 🙂
Quisiera preguntarte algo, si además de hacerle tratamiento a las imágenes que guardas en la carpeta output.., quisieras guardarlas con el mismo que tenían o quizá este nombre más algún identificador, como se puede hacer?
Mil gracias por tu video,
saludos,
Hernán Darío.
Hola Hernán, al momento de armar el for, tienes cada uno de los nombres de las imágenes contenidas en la carpeta (variable filename), puede usar esa información para construir un nuevo string por ejemplo.
Hola Gabi:
No consigo encontrar el Código para capturar una fotografía con mi cámara y lo que me es mas importante guardarla donde
yo desee para procesarla después.
te agradecería mucho si pudieras ayudarme
Gracias. Ruben
Hola Reuben, puedes usar este código: https://youtu.be/RLpXUP79U2Y, para crear un videostreaming. Allí utilizamos una tecla para cerrarlo, puedes emplear esto para agregarle funcionalidad a otra tecla y guardar la imagen con cv2.imwrite en alguna dirección y nombre específico.
Hola que tal! como puedo contactar contigo? es que me surgen varias dudas.
hola tengo que hacer eso mismo pero enviarla a una listas de imagenes luego apretar un boton de la lista de imagenes y selecionar esas imagenes aleatoriamente me podrias ayudar
Hola que tal. Como podría hacer que en una imagen pueda el usuario seleccionar el texto que quiere extraer y leer en vez de extraer todo el texto que esta dentro de la imagen. Y que se pueda hacer con cualquier imagen que contenga un texto. No se si me entiende 😀
hola. muchas gracias por tus videos, estan muy claros y buenos.
segui todos tus pasos pero me salieron muchos errores, estoy trabajando desde anaconda en Python
codigos
import cv2
import os
import matplotlib.pyplot as plt
input_images_path = «C:/Users/…/Picture»
files_names = os.listdir(input_images_path)
print(files_names) #aqui solo veo por pantall los nombre en texto #
asi: [‘ Exercise with openCV in gray.ipynb’, ‘ Exercise with openCV.ipynb’, ‘.ipynb_checkpoints’, ‘joha.jpeg’, ‘joha.png’, ‘joha_gray.png’, ‘output.png’, ‘Untitled.ipynb’, ‘Untitled1.ipynb’, ‘Untitled2.ipynb’, ‘Untitled3.ipynb’, ‘WhatsApp Image 2024-09-23 at 14.11.56.jpeg’, ‘WhatsApp Image 2024-09-23 at 14.12.10.jpeg’, ‘WhatsApp Image 2024-09-23 at 14.13.23.jpeg’, ‘WhatsApp Image 2024-09-23 at 14.13.35.jpeg’,…. , ‘WhatsApp Image 2024-09-23 at 17.33.51.jpeg’]
# Check if the file exists
if os.path.exists(input_images_path):
print(«File exists.»)
else:
print(«File does not exist. Check the path.»)
# File exists.
# Load the image
imagen = cv2.imread(input_images_path)
output_images_path = «C:/Users/…./output_Picture»
if not os.path.exists(output_images_path):
os.makedirs(output_images_path)
print(«new Directory: «, output_images_path)
#new Directory: C:/Users…/output_Picture
count = 0
for file_name in files_names:
#print(file_name)
if file_name.split(«.»)[-1] not in [«jpeg», «png»]:
continue
image_path = input_images_path + «/» + file_name
print(image_path)
image = cv2.imread(image_path)
if image is None:
continue
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
image = cv2.resize(image, (100,100), interpolation=cv2.INTER_CUBIC)
cv2.imwrite(output_images_path + «/image» + str(count) + «.jpg», image)
count +=1
cv2.imshow(«Image», image)
# y luego veo todo en texto otra vez
C:/Users/…/Picture/joha.jpeg
C:/Users/…/Picture/joha.png
C:/Users/…/Picture/joha_gray.png
C:/Users/…/output.png
C:/Users/…/Picture/WhatsApp Image 2024-09-23 at 14.11.56.jpeg
C:/Users/…/Picture/WhatsApp Image 2024-09-23 at 14.12.10.jpeg
pd. si reviso la carpeta, si se crea y si pasa las fotos en gama de grices