Creando una nueva carpeta al modificar una imagen
Se supone que debo escribir una función que lea todas las imágenes de una ruta dada, elimine el canal verde de la imagen y la escriba como una nueva imagen.
Logré resolver cómo eliminar el canal verde y escribir las modificaciones, pero actualmente las imágenes originales se sobrescriben.
¿Cómo modifico el código a continuación para que la función escriba nuevos archivos?
def drop_green_from_path(path):
for i in path:
src = cv2.imread(i, cv2.IMREAD_UNCHANGED)
#
# asignar el canal verde a ceros
src[:,:,1] = np.zeros([src.shape[0], src.shape[1]])
# guardar imagen
cv2.imwrite(i, src)
# se cambiará más adelante para ser más global, por ahora es una prueba en mi computadora portátil
DATA_IMAGES_PATHS = glob.glob('../data/train/train-1-0/*.png')
drop_green_from_path(DATA_IMAGES_PATHS)
davy.ai
Para modificar el código y escribir nuevos archivos, puedes cambiar los nombres de archivo de salida añadiendo un sufijo o prefijo a los nombres de archivo originales. Una manera de hacer esto es utilizando las funciones de manipulación de rutas y nombres de archivos de la librería os.
Aquí tienes una versión actualizada de la función que añade “_no_green” a los nombres de archivo:
Esta versión de la función guardará las imágenes modificadas con el sufijo “_no_green” en el mismo directorio que las imágenes originales. Puedes modificar el código en la línea
new_file_name
para cambiar el sufijo o el prefijo según lo desees.