[Insight-users] Intensity histogram
Bradley Lowekamp
blowekamp at mail.nih.gov
Tue May 7 09:53:24 EDT 2013
There is no readily available mechanism in SimpleITK to wrap a calculator.
But with a bit of work you should be able to wrap a custom calculator based image filter.
To be able to do this you will need to compile ITK and include your additional calculator and filter.
Then build SimpleITK without the Superbuild against that ITK build[1].
You would need to write an ITK Calculator and ImageFilter filter which uses it. Take an existing one as an example:
https://github.com/Kitware/ITK/blob/master/Modules/Filtering/Thresholding/include/itkLiThresholdCalculator.h
https://github.com/Kitware/ITK/blob/master/Modules/Filtering/Thresholding/include/itkLiThresholdCalculator.hxx
https://github.com/Kitware/ITK/blob/master/Modules/Filtering/Thresholding/include/itkLiThresholdImageFilter.h
Then write the json in SimpleITK and recompile.
https://github.com/SimpleITK/SimpleITK/blob/master/Code/BasicFilters/json/LiThresholdImageFilter.json
Brad
[1] http://www.itk.org/Wiki/SimpleITK/GettingStarted#Building_manually
On May 7, 2013, at 9:31 AM, Thibault Varacca <thibault.varacca at gmail.com> wrote:
> ok, i will use statistics.
> How could I wrapp ITK histogram calculator to simpleitk?
>
>
> 2013/5/7 Bradley Lowekamp <blowekamp at mail.nih.gov>
> Hello,
>
> ITK proper has a very nice framework for creating new thresholds based on histograms contributed by Richard Beare and Gaetan Lehmann in the Insight Journal[1]. In SimpleITK the ~dozen filters[2] which use this framework are available[3].
>
> It may be reasonable to crate a new ITK histogram calculator and matching threshold filter, then add the new json wrapping to SimpleITK.
>
> So these methods, are a global threshold, not a connected threshold. However, if you run a global threshold followed by a connected component algorithm you can get the same result by choosing a selected component. For large images with large components this can be more computation efficient, and both the global threshold and connected components methods are efficiently multi-threaded.
>
> I have also used the Statistics[3] and LabelStatistics[3] image filters to compute thresholds based on certain standard deviations. I have also computed certain robust nth-order statistics with numpy by getting access to image buffer. Unfortunately, this buffer access method is not available in Java yet. There is likely just a little bit of SWIG code that is needed, and some TESTS written. We aiming to get some community support to put some sugar on top for many of the languages that SimpleITK supports. So there have been a couple of discussions on the mailing list regarding this interface.
>
> There are quite a number of options you have. Please let me know if need any additional info deciding what is best for you or help getting started.
>
> Brad
>
> [1] http://hdl.handle.net/10380/3279
> [2] http://www.itk.org/Doxygen/html/group__ITKThresholding.html
> [3] http://www.itk.org/SimpleITKDoxygen/html/annotated.html
> [4] http://www.itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1StatisticsImageFilter.html
> [5] http://www.itk.org/SimpleITKDoxygen/html/classitk_1_1simple_1_1LabelStatisticsImageFilter.html
>
>
> On May 7, 2013, at 7:55 AM, Thibault Varacca <thibault.varacca at gmail.com> wrote:
>
>> Yes, i'm using JAVA and my volumes are 32 bit float value.
>> I want to use an histogram to set automaticaly the lower and upper values of the connectedthresholdfilter that i use later.
>>
>>
>> 2013/5/7 Bradley Lowekamp <blowekamp at mail.nih.gov>
>> Hello,
>>
>> SimpleITK does not have the Statistics module wrapped.
>>
>> What language are you using with SimpleITK? I have just been using numpy's histogram functionality from python when needed.
>>
>> The AdaptiveHistogramEqualizationImageFilter is a way to vary the intensity of an image so that in a local region of each pixel the histogram has a certain shape. This can be done for local contrast enhancement and similar effects.
>>
>> Brad
>>
>>
>>
>> On May 7, 2013, at 7:44 AM, Thibault Varacca <thibault.varacca at gmail.com> wrote:
>>
>>> But using simpleITK, I juste have AdaptiveHistogramEqualizationImageFilter() ... Do you know how it works? I didn't really understand the description.
>>> Regards
>>>
>>>
>>> 2013/5/7 Thibault Varacca <thibault.varacca at gmail.com>
>>> Thank you Parseval :)
>>>
>>>
>>> 2013/5/7 parseval <cabkai at web.de>
>>> Hi,
>>>
>>> in "<Itk-Folder>\Examples\Statistics\"
>>> you can find several examples of ImageHistograms#.cxx.
>>> ITK doesn't restrict an image to be 2D. Therefore you can simply modify the
>>> examples for 3D case.
>>>
>>> best,
>>> Parseval
>>>
>>>
>>>
>>> --
>>> View this message in context: http://itk-users.7.n7.nabble.com/Intensity-histogram-tp31364p31365.html
>>> Sent from the ITK - Users mailing list archive at Nabble.com.
>>> _____________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Kitware offers ITK Training Courses, for more information visit:
>>> http://www.kitware.com/products/protraining.php
>>>
>>> Please keep messages on-topic and check the ITK FAQ at:
>>> http://www.itk.org/Wiki/ITK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>>
>>>
>>> --
>>> Thibault Varacca
>>> EFREI Promo 2014
>>> 06 60 53 11 35
>>>
>>>
>>>
>>> --
>>> Thibault Varacca
>>> EFREI Promo 2014
>>> 06 60 53 11 35
>>> _____________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Kitware offers ITK Training Courses, for more information visit:
>>> http://www.kitware.com/products/protraining.php
>>>
>>> Please keep messages on-topic and check the ITK FAQ at:
>>> http://www.itk.org/Wiki/ITK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>>
>>
>> --
>> Thibault Varacca
>> EFREI Promo 2014
>> 06 60 53 11 35
>
>
>
>
> --
> Thibault Varacca
> EFREI Promo 2014
> 06 60 53 11 35
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20130507/1de8327a/attachment-0001.htm>
More information about the Insight-users
mailing list