[scikit-image] image type issue and failed conversion

Egor Panfilov egor.v.panfilov at gmail.com
Tue Dec 27 02:39:29 EST 2016


Dear Yuanyuan,

First of all, it is not a good idea to initialize the array with values
using `np.empty`. I'd recommend to use either `np.random.rand` or
`np.random.randint`.

As for main point of your question, I believe you might need
http://scikit-image.org/docs/dev/api/skimage.html#img-as-float (see also
http://scikit-image.org/docs/dev/user_guide/data_types.html ).
So, you can either create an array of floats [0:1) via  `np.random.rand`,
or create an array of uints via `np.random.randint`, and call
`img_as_float`. Then `equalize_adapthist` should work flawlessly.

Regards,
Egor

2016-12-27 1:27 GMT+03:00 wine lover <winecoding at gmail.com>:

> 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!
>
>
>
> _______________________________________________
> scikit-image mailing list
> scikit-image at python.org
> https://mail.python.org/mailman/listinfo/scikit-image
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-image/attachments/20161227/240f1f1b/attachment-0001.html>


More information about the scikit-image mailing list