Thank you very much for your quick reply, i appreciate it. It seems you 
always have a good answer to give me.

Ioannis 

On Sunday, 2 October 2016 03:41:10 UTC+1, Juan Nunez-Iglesias wrote:
>
> Hi Ioannis,
>
> So, the size of the GLCM for a 32-bit image that uses all possible 
> intensity levels is 2**64, way too big to fit in memory. The key is:
>
> - rescale the image to be in [0, max_value-1] (for some integer max_value 
> that you determine)
> - call greycomatrix on this rescaled image with the keyword argument 
> `levels=max_value`.
>
> That should work. However, note that the size of the matrix will be `4 * 
> max_value ** 2` or `8 * max_value ** 2`, and multiple temporary matrices of 
> the same size might be created for processing. So, you need to make sure 
> that your computer has enough memory for that. Typically, this will require 
> your image to have much fewer levels than even 16-bit.
>
> Additionally, I think this feature requires the development version of 
> scikit-image. You can install that with "pip install git+
> https://github.com/scikit-image/scikit-image.git";. (I think that's the 
> command anyway...)
>
> Juan.
>
> On Sun, Oct 2, 2016 at 6:33 AM, <ioannis...@gmail.com <javascript:>> 
> wrote:
>
>> Hello Juan,
>>
>> I want to thank you for your quick reply to my question the last time and 
>> i do not want to bother you with my questions. I always try to solve my 
>> problems before posting my question here. Sometime, i just cannot figure 
>> out how to fix the error.
>>
>> What i want to do is to create a GLCM image using different  grey levels 
>> (8-bit, 16-bit and 32-bit) and compare the results. The type of the image i 
>> am using is a float32. I used the '' rescale intensity'' as you suggested, 
>> i converted the image to 8-bit and it worked. When i try to rescale the 
>> image in 16-bit and 32-bit for some reason it doesn't work.
>>
>> i get the error:
>>
>>
>> AssertionError                            Traceback (most recent call 
>> last)<ipython-input-16-ca616e8222fb> in <module>()     22      23     for j 
>> in xrange(img.shape[1] ):---> 24         glcm = greycomatrix(rescale, [1], 
>> [0],  symmetric = True, normed = True )     25      26         
>> testraster1[i,j] = greycoprops(glcm, 'contrast')
>> C:\Anaconda2\lib\site-packages\skimage\feature\texture.pyc in 
>> greycomatrix(image, distances, angles, levels, symmetric, normed)    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, dtype=np.float64)
>> AssertionError: 
>>
>> It seems that i am allowed only to use an 8-bit image for the GLCM 
>> calculation.
>> So, does this code in scikit-image work only for 8-bit images? is there 
>> another way to solve my problem?
>> I will keep trying to find a solution but if you have an idea on how to 
>> solve this problem, please tell me
>>
>> Thank you in advance
>> Ioannis
>>
>>
>>
>> On Monday, 19 September 2016 15:41:07 UTC+1, ioannis...@gmail.com wrote:
>>>
>>> Thank you very much Juan for your quick reply.
>>> That was helpful :)
>>>
>>> Ioannis
>>>
>>> On Monday, 19 September 2016 01:03:45 UTC+1, Juan Nunez-Iglesias wrote:
>>>>
>>>> Hi Ioannis,
>>>>
>>>> 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" function:
>>>>
>>>>
>>>> http://scikit-image.org/docs/dev/api/skimage.exposure.html#skimage.exposure.rescale_intensity
>>>>
>>>> and process your image before passing it to the glcm function.
>>>>
>>>> I hope this helps! Keep pinging if you have more questions. =)
>>>>
>>>> Juan.
>>>>
>>>> On Sun, Sep 18, 2016 at 4:57 AM, <ioannis...@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, [1], [0, np.pi/4, np.pi/2, 3*np.pi/4],levels=8, 
>>>>> symmetric=False, normed=True)
>>>>> #list(GLCM[:,:,0,2])
>>>>>
>>>>>
>>>>> #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, dtype=np.float64)
>>>>> AssertionError: 
>>>>>
>>>>>
>>>>> I would appreciate any help.
>>>>> Thank you in advance
>>>>>
>>>>> Ioannis 
>>>>>
>>>>> -- 
>>>>> 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...@googlegroups.com.
>>>>> To post to this group, send email to scikit...@googlegroups.com.
>>>>> To view this discussion on the web, visit 
>>>>> https://groups.google.com/d/msgid/scikit-image/520f5f2b-4750-4b56-a40b-28b938b750d8%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/scikit-image/520f5f2b-4750-4b56-a40b-28b938b750d8%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> -- 
>> 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...@googlegroups.com <javascript:>.
>> To post to this group, send email to scikit...@googlegroups.com 
>> <javascript:>.
>> To view this discussion on the web, visit 
>> https://groups.google.com/d/msgid/scikit-image/978af8fd-0dfa-47ca-9e16-4a4ccccb4bc3%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/scikit-image/978af8fd-0dfa-47ca-9e16-4a4ccccb4bc3%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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 
https://groups.google.com/d/msgid/scikit-image/98f6e5bf-7b1f-4580-835a-dda249a6dd64%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to