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, [1], [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 an email to scikit-image@googlegroups.com.
To view this discussion on the web, visit 
For more options, visit https://groups.google.com/d/optout.

Reply via email to