Dear All,

I was trying to use the above code segment for performing Contrast Limited Adaptive Histogram Equalization (CLAHE).
def clahe_equalized(imgs):
    imgs_equalized = np.empty(imgs.shape)
    for i in range(imgs.shape[0]):
         
         print('imgs[i,0] ',imgs[i,0].dtype)
         print('imgs[i,0] ',imgs[i,0].max())
         print('imgs[i,0] ',imgs[i,0].min())
         imgs_equalized[i,0] = exposure.equalize_adapthist(imgs[i,0],clip_limit=0.03)
    return imgs_equalized

The dtype is float64, maximum value is 255.0 and minimum value is 0.0

Running the program generates the following error message ( I only keep the related ones)

imgs_equalized[i,0] = exposure.equalize_adapthist(imgs[i,0],clip_limit=0.03)
   raise ValueError("Images of type float must be between -1 and 1.")
ValueError: Images of type float must be between -1 and 1.  

In accordance with the above error message and image characteristics, what are the best way to handle this scenario. 

I have been thinking of two approaches

  1. add imgs[i,0] = imgs[i,0]/255.   which scale it to 0 and 1
  2.  convert imgs[i,0] from float64 to unit8 
but imgs[i,0] = imgs[i,0].astype(np.unit8) gives the error message such as
 imgs[i,0]=imgs[i,0].astype(np.unit8)                                                              
AttributeError: 'module' object has no attribute 'unit8'       

Would you like to give any advice on this problem? Thank you very much!