[Insight-users] itkStreamingImageFilter with itkHessianSmoothed3DToVesselnessMeasureImageFilter
Dan Mueller
dan.muel at gmail.com
Sun Oct 12 23:04:37 EDT 2008
Hi Karthik, Moti, others,
Out of interest, I am in the process of transferring Ivan's
contribution to the ITK Review folder: I already have the filters and
some tests in my local copy, I just have to add a few more tests. I
expect to commit the files by week's end.
Regards, Dan
2008/10/12 Karthik Krishnan <karthik.krishnan at kitware.com>:
> Moti:
>
> Yes, you can make the hessian filters in ITK streamable. It has been on
> my TODO list, since I have a need to detect needles in CT in realtime,
> for which I'd like to do a localized hessian analysis, which I cannot
> do with the existing framework.
>
> The Hessian filter in ITK, uses the RecursiveGaussianFilter to compute
> scale-space derivatives (see Deriche). This is fast, however its an IIR
> approximation of the gaussian and cannot be streamed.
>
> ITK provides a discrete gaussian operator for smoothing, (approximated
> from weighted sums of bessel functions). This is used in the
> DiscreteGaussianImageFilter. These are streamable.
>
> Ivan Macia, (see contribution on Insight-journal below [1]) has very
> nicely provided implementation of operators for
>
> * Local gaussian derivatives using the discrete gaussian
> * Local hessian using the above
>
> They are provided both in the form of operators and image functions,
> which you can quite trivially wrap into filters. These filters should
> be streamable.
>
> Unfortunately, the RecursiveGaussian has been used as the
> building block for most filters in ITK, so at some point, I would
> envision having duplicate filters using these.
>
> ------
> [1] http://www.insight-journal.org/browse/publication/179
> "Generalized Computation of Gaussian Derivatives Using ITK", Ivan
> Macia, VICOMTech.
>
>
> Thanks
> --
> Karthik Krishnan
> R&D Engineer,
> Kitware Inc.
> Ph: 518 371 3971 x119
> Fax: 518 371 3971
>
>
> On Sun, Oct 12, 2008 at 1:55 AM, Moti Freiman <freiman at cs.huji.ac.il> wrote:
>> Hi Luis,
>> Thanks for your detailed answer.
>> According to your answer, the Hessian filter itself is not streamable,
>> However, the main cause for memory insufficient is this filter,
>> since it produces images that are 6-times (in 3D) larger than the original
>> file.
>> If I'm right, streaming the EigenAnalysisFilter and the vesselness will not
>> solve the problem of large files. ?
>> Moti
>>
>> On Mon, Oct 6, 2008 at 3:34 PM, Luis Ibanez <luis.ibanez at kitware.com> wrote:
>>>
>>> Hi Moti,
>>>
>>> Looking at the code of this filter, the piece that looks suspicious is
>>> the internal use of the Symmetric Eigen Analysis filter.
>>>
>>> Both of these filters should be able to stream data, but, in the way
>>> they are nested, the EigenAnalysys filter may be trying to update the
>>> entire image unnecessarily.
>>>
>>> Please try the following:
>>>
>>> 1) Remove the EigenAnalysisFilter from inside the
>>> itkHessianSmoothed3DToVesselnessMeasureImageFilter
>>>
>>> 2) create a sequential pipeline where you connect:
>>>
>>> Hessian --> Symm.EigenAnalysis --> VesselnessFilter
>>>
>>> The Hessian filter itself is not streamable, but the
>>> Symm.EigenAnalysis and the Vesselness ones, are both
>>> pixel-wise filter, and they should be streamable.
>>>
>>>
>>> Please let us know if you encounter any problem.
>>>
>>> BTW: Once we sort this out, it will be great if you
>>> could add the conclusions of your observations
>>> as a review to this paper, and if you found it
>>> useful, we could try moving this contribution
>>> to the Review directory, in order to include it
>>> with the upcoming release of ITK 3.10.
>>>
>>>
>>> Regards,
>>>
>>>
>>> Luis
>>>
>>>
>>> ---------------------
>>> Moti Freiman wrote:
>>>>
>>>> Hi,
>>>> I want to compute a vesselness measure on a large CT volume (512*512*512,
>>>> 16bit per voxel) using the
>>>> itkHessianSmoothed3DToVesselnessMeasureImageFilter
>>>> published in the InsightJournal
>>>> (http://www.insight-journal.org/browse/publication/163).
>>>> Since my machine memory is limited I tried to use the
>>>> itkStreamingImageFilter to divide the computation for several small parts
>>>> which do not require so much memory, and then merge them.
>>>> However it seems that the streaming filter do not divide the computation
>>>> using the itkHessianSmoothed3DToVesselnessMeasureImageFilter.
>>>> Any reason, idea?
>>>> Thanks,
>>>> Moti
>>>> --
>>>> __
>>>> Moti Freiman, Ph.D Student.
>>>> Medical Image Processing and Computer-Assisted Surgery Laboratory.
>>>> School of Computer Science and Engineering.
>>>> The Hebrew University of Jerusalem Givat Ram, Jerusalem 91904, Israel
>>>> Phone: +(972)-2-658-5371 (laboratory)
>>>> WWW site: http://www.cs.huji.ac.il/~freiman
>>>>
>>>>
>>>> ------------------------------------------------------------------------
>>>>
>>>> _______________________________________________
>>>> Insight-users mailing list
>>>> Insight-users at itk.org
>>>> http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>>
>> --
>> __
>> Moti Freiman, Ph.D Student.
>> Medical Image Processing and Computer-Assisted Surgery Laboratory.
>> School of Computer Science and Engineering.
>> The Hebrew University of Jerusalem Givat Ram, Jerusalem 91904, Israel
>> Phone: +(972)-2-658-5371 (laboratory)
>> WWW site: http://www.cs.huji.ac.il/~freiman
>>
>> _______________________________________________
>> Insight-users mailing list
>> Insight-users at itk.org
>> http://www.itk.org/mailman/listinfo/insight-users
>>
>>
>
>
>
> --
> Karthik Krishnan
> R&D Engineer,
> Kitware Inc.
> Ph: 518 371 3971 x119
> Fax: 518 371 3971
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
More information about the Insight-users
mailing list