<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Thanks a lot Marco for your thorough explanation. I know how the degrees will look like, but, the main issue was for instance why 45 degrees' offset is {1,-1}, and likewise for the other degrees. Is that just a convention? Or, there is a way to find that 45 degrees is {1,-1}?<br>


<br></div>Thanks.<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 22, 2014 at 12:52 PM, Marco Ulgelmo <span dir="ltr"><<a href="mailto:marco.ulge@gmail.com" target="_blank">marco.ulge@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Let's make an example, let's suppose that you have a 4x4 matrix defined this way:<br>

<br></div>A = [0, 1, 0, 2<br></div>       0, 2 , 1, 1<br>       3, 1, 0, 0<br>       0, 0, 2, 3]<br>

<br></div>with distance 1 and direction = 45 degrees<br><br></div><div>The GLCM associated to A will be a 4x4 matrix because values in A are from 0 to 3. If A had values ranging from 0 to 7 than the GLCM would have been 8x8. GLCM by definition tells you the grey level occurrences.<br>



</div><div><br></div>Now our goal is to understand how we should populate the GLCM matrix. Let's start from GLCM[0][0]. Since as i said before the GLCM tells you the occurrences in gray level, GLCM[0][0] will be the number of occurrences of (0, 0) according to 45 degrees.<br>



</div><div>So you take each pixel in the A matrix which is 0 and count the pairs for each 0 which has a 0 with distance 1 in its 45 degree diagonal. In A we can easily observe the only A[3][1] satisfies this property, in fact we take take pixel, we notice that the pixel according to 45 degree direction will be 0 so we found a pair (0,0) with the required direction.<br>



<br></div><div>Since there is only 1 occurrence of (0, 0) with direction= 45 degrees, GLCM[0][0] will be 1 (infact 1 is the number of occurrences). <br><br></div><div>In the same way, GLCM[1][0] will look for all the occurrences of pair (1,0) with direction 45 degrees and we can observe that there are no occurrences in A so GLCM[1][0] = 0.<br>



<br></div><div>GLCM[2][0] = 2 (A[1][1] and A[3][2] satify the direction) and so on.<br><br></div><div>I suggest you taking a look at this example: <a href="http://www.itk.org/Wiki/ITK/Examples/Statistics/TextureFeatures" target="_blank">http://www.itk.org/Wiki/ITK/Examples/Statistics/TextureFeatures</a><br>


<br></div><div>Beside what this code does (which is not what you are looking for maybe), you can see that it's enough changin the line <br><pre>glcmGenerator<span>-</span><span>></span>SetOffset<span>(</span>offset<span>)</span><span>;<br>


<br></span></pre><pre><span>with the offset you want.<br><br><br></span></pre></div><div>If you need to compute GLCM for different directions (obtaining a single GLCM as result), you first compute GLCM for each direction and then compute finalGLCM as a mean of the others GLCM<br>


</div><div><br>Regards,<br><br>Marco<br>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-07-22 12:13 GMT+02:00 med aweng <span dir="ltr"><<a href="mailto:medswengineer@gmail.com" target="_blank">medswengineer@gmail.com</a>></span>:<div>

<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Dear Marco,<br><br></div>Thanks a lot for your reply and very helpful answer. For instance, when we say that {1,-1} is 45 degrees. How can this be understood geometrically? In other words, say that I have an image represented as a set of pixels (squares). How can I derive that {1,-1} for instance mean 45 degrees, and likewise for the other degrees?<br>



<br></div>Thanks.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 22, 2014 at 10:39 AM, Marco Ulge <span dir="ltr"><<a href="mailto:marco.ulge@gmail.com" target="_blank">marco.ulge@gmail.com</a>></span> wrote:<br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Offsets are defined in ITK wether you are using them for GLCM or Neighborhood<br>
Iterators for example. I believe you can find a complete list off offset in<br>
the Software Guide in the Neighborhood Iterator section (chapter 11).<br>
<br>
Anyway here's the list of offsets (with distance = 1):<br>
<br>
0 degree : {1,0}<br>
45 degree: {1, -1}<br>
90 degree: {0,-1}<br>
135 degree: {-1,-1}<br>
180 degree: {-1,0}<br>
225 degree: {-1,1}<br>
270 degree: {0,1}<br>
315 degree: {1,1}<br>
<br>
Please notice that there is no offset for 35 degrees, that just doesn't make<br>
sense<br>
<br>
Marco<br>
<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://itk-users.7.n7.nabble.com/ITK-users-Offset-directions-tp34274p34277.html" target="_blank">http://itk-users.7.n7.nabble.com/ITK-users-Offset-directions-tp34274p34277.html</a><br>




Sent from the ITK - Users mailing list archive at Nabble.com.<br>
_____________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at<br>
<a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Kitware offers ITK Training Courses, for more information visit:<br>
<a href="http://www.kitware.com/products/protraining.php" target="_blank">http://www.kitware.com/products/protraining.php</a><br>
<br>
Please keep messages on-topic and check the ITK FAQ at:<br>
<a href="http://www.itk.org/Wiki/ITK_FAQ" target="_blank">http://www.itk.org/Wiki/ITK_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/insight-users" target="_blank">http://public.kitware.com/mailman/listinfo/insight-users</a><br>
</blockquote></div><br></div>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>