1
votes

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)
1

1 Answers

2
votes

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)