Search code examples
pythonopencvimage-preprocessing

Read multiple images from specific directory, prepossessed and save them another directory using python and opencv


I'm a beginner in Python and OpenCV. I want to read multiple images from a specific directory and preprocess them using CLAHE(Contrast Limited Adaptive histogram equalization) and finally save them (Preprocessed images) to another directory. I tried but it will work on a single image. How do I fix it? Here is my code below-

import numpy as np
import cv2
import glob

img = cv2.imread('00000001_000.png',0)

#create a CLAHE object (Arguments are optional).
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(20,20))
cl1 = clahe.apply(img)
cv2.imwrite('clahe_21.jpg',cl1)

Solution

  • Try having a list of path to all the images and iterate over them :

    all_img = glob.glob('.')
    other_dir = 'new_path'
    for img_id, img_path in enumerate(all_img):
        img = cv2.imread(img_path,0)
    
        #create a CLAHE object (Arguments are optional).
        clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(20,20))
        cl1 = clahe.apply(img)
        cv2.imwrite(f'{other_dir}/clahe_21_{img_id}.jpg',cl1)