Unfortunately the levels keyword is used as a hint to the function about
the number of levels when the image is uint16, because the possible number
of levels is huge. But if you want to convert the image to those levels,
you have to do it manually. I suggest you look at the "rescale_intensity"
and process your image before passing it to the glcm function.
I hope this helps! Keep pinging if you have more questions. =)
On Sun, Sep 18, 2016 at 4:57 AM, <ioannisgkan...@gmail.com> wrote:
> Hello everyone,
> I am using a SAR image (16-bit) and trying to implement GLCM algorithm
> using sciki-learn. When trying to calculate the GLCM using greycomatrix i
> get the following error:
> assert image.max() < levels. It says that the maximum value of the image
> intensity must be less than the number of grey levels.
> Because the SAR image is really big, i want to reduce the calculation time by
> reducing the levels to 8.
> Even if i remove the parameter 'level=8' when using greycomatrix, still gives
> me the same error
> My code is the following:
> from skimage.feature import greycomatrix, greycoprops
> import numpy as np
> from skimage import data
> import rasterio
> path = 'C:\Users\GLCM_implementation\glasgow.tif'
> with rasterio.open(path, 'r') as src:
> import_file = src.read()
> img = import_file[0,:,:] #i need only the two dimentions (height, width)
> print img.shape
> #calculate the GLCM specifying the distance, direction(4 directions) and
> number of grey levels
> GLCM = greycomatrix(img, , [0, np.pi/4, np.pi/2, 3*np.pi/4],levels=8,
> symmetric=False, normed=True)
> #Calculate texture statistics
> contrast = greycoprops(GLCM, 'contrast')
> dissimilarity = greycoprops(GLCM, 'dissimilarity')
> homogeneity = greycoprops(GLCM, 'homogeneity')
> energy = greycoprops(GLCM, 'energy')
> correlation = greycoprops(GLCM, 'correlation')
> ASM = greycoprops(GLCM, 'ASM')
> Error message:
> 101 image = np.ascontiguousarray(image) 102 assert image.min() >=
> 0--> 103 assert image.max() < levels 104 image =
> image.astype(np.uint8) 105 distances = np.ascontiguousarray(distances,
> I would appreciate any help.
> Thank you in advance
> You received this message because you are subscribed to the Google Groups
> "scikit-image" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to scikit-image+unsubscr...@googlegroups.com.
> To post to this group, send email to email@example.com.
> To view this discussion on the web, visit https://groups.google.com/d/
> For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to the Google Groups
To unsubscribe from this group and stop receiving emails from it, send an email
To post to this group, send an email to firstname.lastname@example.org.
To view this discussion on the web, visit
For more options, visit https://groups.google.com/d/optout.