<div dir="ltr"><div><div><div><div><div>Hello, if you want here some code to implement the offset values depending of the maximal radius (neighborhood_radius)<br></div> between the center voxel and his neighbors. <br><br> NeighborhoodType neighborhood;<br>    neighborhood.SetRadius(Neighborhood_Radius);<br>    unsigned int centerIndex = neighborhood.GetCenterNeighborhoodIndex(); <br><br>     OffsetType offset;<br><br>     int Nd=0;<br><br>     const OffsetVectorType::Pointer list_offset=OffsetVectorType::New();<br><br>     //list_offset->reserve(1000);//memory mamagement<br><br>     for ( unsigned int d = 0; d < centerIndex; d++ )  //limit the direction to 13 if you want the 26 standard one go to centerindex*2<br>      {<br>        offset = neighborhood.GetOffset(d);<br>        //std::cout << "test Offset"<<offset<<std::endl;<br>        Nd++;<br>        list_offset->push_back(offset);<br>      }<br>     //std::cout<<"Number of offset: "<<Nd<<std::endl;<br><br></div>It'll show yo uthe different direction that are used dependaing of the radius. <br></div>Also you can choose one direction.<br></div>Best regards, <br></div>Cyril Jaudet, UZBrussel, PhD<br><div><div><div><div><br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-09-28 14:19 GMT+02:00 Bradley Lowekamp <span dir="ltr"><<a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hello,<div><br></div><div>Use the source [1]! It's just a little debugging information, which should be changed to itkDebugMacro. Pull requests are welcomed.</div><div><br></div><div>The real offsets used relative to each pixel are the ones provided by "Offsets". What's printed out is all pairs used to generate the histogram in a neighborhood.</div><div><br></div><div>HTH,</div><div>Brad</div><div><br></div><div>[1] <a href="https://github.com/blowekamp/itkTextureAnalysis/blob/b3911a8ab891859c50c7e3c8819d1a9fa0eaf4af/include/itkTextureFeatureImageFilter.hxx#L129" target="_blank">https://github.com/blowekamp/itkTextureAnalysis/blob/b3911a8ab891859c50c7e3c8819d1a9fa0eaf4af/include/itkTextureFeatureImageFilter.hxx#L129</a></div><div><div class="h5"><div><br></div><div><br><div><div>On Sep 28, 2015, at 5:53 AM, Francisco Lopez de la Franca <<a href="mailto:franciscolopezdelafranca@gmail.com" target="_blank">franciscolopezdelafranca@gmail.com</a>> wrote:</div><br><blockquote type="cite"><div dir="ltr"><div><div><div><div><div>Hi Bradley,<br></div>I'm using your filter for a 3D image and the following is happpening: I store in a vector the offset list. When I print it, the list contains just 13 offsets (I've used the same code as in the itk::ScalarImageToTextureImageFilter). The problem comes when I call your SetOffsets(myOffsetList) method, my application starts printing a lot of offsets, I guess all the possible combinations for three dimensions.<br></div>Do you know this "problem"? Then, what is the real offsets your filter use?<br><br></div>Thank you so much.<br></div>Kind regards.<br></div>/Francisco<br></div><div class="gmail_extra"><br><div class="gmail_quote">2015-09-25 15:10 GMT+02:00 Bradley Lowekamp <span dir="ltr"><<a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hello,<div><br></div><div>For my itkTextureFeatureImageFilter, the default for the OffsetVector is an empty list. So it is required to set this member to get meaningful results.</div><div><br></div><div>ITK is an OpenSource project. When you don't know how something is implemented you can open the hood and find out [1].</div><div><br></div><div>HTH,</div><div>Brad</div><div><br></div><div>[1] <a href="https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Numerics/Statistics/include/itkScalarImageToTextureFeaturesFilter.hxx#L66-L76" target="_blank">https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Numerics/Statistics/include/itkScalarImageToTextureFeaturesFilter.hxx#L66-L76</a></div><div><div><br><div><div>On Sep 25, 2015, at 6:37 AM, Francisco Lopez de la Franca <<a href="mailto:franciscolopezdelafranca@gmail.com" target="_blank">franciscolopezdelafranca@gmail.com</a>> wrote:</div><br><blockquote type="cite"><div dir="ltr">Which directions (for 3D images) will your filter use if I donot specify any offset?<br></div><div class="gmail_extra"><br><div class="gmail_quote">2015-09-25 11:12 GMT+02:00 Francisco Lopez de la Franca <span dir="ltr"><<a href="mailto:franciscolopezdelafranca@gmail.com" target="_blank">franciscolopezdelafranca@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>Hi again,<br></div><br>For 3D images, what should I use as default offset vector if I use your class?<br><br>I've been using itk::ScalarImageToTextureFeaturesFilter for 3D images and I've also done some tests on 3D NIFTI images but its description talks only about the default 2D image offsets ({(-1, 0), (-1, -1), (0, -1), (1, -1)}) but not for 3D. Besides, the 2D default is missing some offsets.<br></div><br>I'd like to use your class and test it with the same default values as with the ScalarIm.... class.<br><br></div>Thank you very much.<br></div>My best regards.<br><div><br></div></div><div><div class="gmail_extra"><br><div class="gmail_quote">2015-09-22 14:27 GMT+02:00 Bradley Lowekamp <span dir="ltr"><<a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hello,<div><br></div><div>Please try to keep this discussion on the mailing list.</div><div><br></div><div>You can find a basic program here [1].  Which provide a good example for usage.</div><div><br></div><div> It allows writing to any file format that ITK supports with vector images. I know that mha, nii, and nrrd should support this. Others may and it varies based what modules are compiled into ITK.</div><div><br></div><div>You can see how the texture information is written into the vector here [2]. Contributions to improve the documentation are welcomed.</div><div><br></div><div><br></div><div><br></div><div>[1] <a href="https://github.com/blowekamp/itkTextureAnalysis/blob/master/test/itkTextureFeatureImageFilterTest.cxx" target="_blank">https://github.com/blowekamp/itkTextureAnalysis/blob/master/test/itkTextureFeatureImageFilterTest.cxx</a></div><div>[2] <a href="https://github.com/blowekamp/itkTextureAnalysis/blob/b3911a8ab891859c50c7e3c8819d1a9fa0eaf4af/include/itkTextureFeatureImageFilter.hxx#L217-L224" target="_blank">https://github.com/blowekamp/itkTextureAnalysis/blob/b3911a8ab891859c50c7e3c8819d1a9fa0eaf4af/include/itkTextureFeatureImageFilter.hxx#L217-L224</a></div><div><br><div><div>On Sep 22, 2015, at 3:25 AM, Francisco Lopez de la Franca <<a href="mailto:franciscolopezdelafranca@gmail.com" target="_blank">franciscolopezdelafranca@gmail.com</a>> wrote:</div><br><blockquote type="cite"><div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div>Hi Bradley,<br></div>I'd like to use your class. A couple of questions:<br><br></div>- Which format can the vectorimage generated be saved in? Is it possible to save it in Nifti format?<br><br></div>- Which information does the vector image contain, I mean, what is the info stored for each voxel? How can I access that info?<br><br></div>I guess the usage of yourclass is in the same way as any ITK filter:<br><br></div>yourFilter->setInput(inputImage);<br></div>yourFilter->setWindowSize(windowSize);<br></div><div>... // other sets...<br></div>yourFilter->update();<br></div>vectorImage = yourFilter->GetOutput();<br><br></div>but, how can I read the data of each voxel in the vector image?<br><br></div>Thank you very much.<br></div>Kind regards.<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">2015-09-21 14:30 GMT+02:00 Bradley Lowekamp <span dir="ltr"><<a href="mailto:blowekamp@mail.nih.gov" target="_blank">blowekamp@mail.nih.gov</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
I have a external ITK extension you may find useful:<br>
<a href="https://github.com/blowekamp/itkTextureAnalysis/blob/master/include/itkTextureFeatureImageFilter.h" rel="noreferrer" target="_blank">https://github.com/blowekamp/itkTextureAnalysis/blob/master/include/itkTextureFeatureImageFilter.h</a><br>
<br>
This computed the GLCM, for a neighborhood for every pixel and produces a VectorImage with all the features.<br>
<br>
Contributions to improving the class and documentation are welcome.<br>
<br>
HTH,<br>
Brad<br>
<div><br>
On Sep 21, 2015, at 7:15 AM, Francisco Lopez de la Franca <<a href="mailto:franciscolopezdelafranca@gmail.com" target="_blank">franciscolopezdelafranca@gmail.com</a>> wrote:<br>
<br>
> Hi,<br>
> I've used the itk::Statistics::ScalarImageToTextureFeaturesFilter class with the default parameters and everything was OK.<br>
><br>
> But now, I have to calculate the texture features of a 2D scalar image pixel by pixel, I mean, iterate over the whole image and calculate the texture features of every pixel.<br>
><br>
> I guess I've got to use each pixel as the masked region over which to calculate the texture features, but I think this process could be very slow (I have to do it with a lot of 2D images).<br>
><br>
> Is there a faster way to do it or isn't it possible as I've described?<br>
><br>
> Thanks a lot.<br>
> Kind regards.<br>
</div><div>> _____________________________________<br>
> Powered by <a href="http://www.kitware.com/" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/insight-users</a><br>
<br>
</div></blockquote></div><br></div>
</blockquote></div><br></div></div></blockquote></div><br></div>
</div></blockquote></div><br></div>
</blockquote></div><br></div></div></div></blockquote></div><br></div>
</blockquote></div><br></div></div></div></div><br>_____________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" 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" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/insight-users</a><br>
<br></blockquote></div><br></div>