[Insight-users] GradientRecursiveGaussianImageFilter bug?
Luis Ibanez
luis.ibanez at kitware.com
Thu Oct 7 21:05:23 EDT 2004
Hi Neilson,
Yes, you can blurr an image by different amounts along
each axis. In fact, the fundamental filter used for
blurring the image is the RecursiveGaussianImageFilter.
http://www.itk.org/Insight/Doxygen/html/classitk_1_1RecursiveGaussianImageFilter.html
This filter blurrs the image along a user-specified
direction.
Regards,
Luis
---------------------------
N.E. Mackenzie Mackay wrote:
> Hey Luis,
>
> I was actually using the 2d set up just to test out my registration
> before applying a *thinkness* to my 2D slice. Ironically it was failing
> for the reason you have just informed me about.
>
> I will just make the 2D slice bigger by blurring it on all axis.
>
> A question about that. Is it possible to blur it more along one
> axis? for instance blur more along the orthogonal/perpendicular
> direction of the plane so that the values that are black at first can
> get some values while not harming the sharpness of the 2d image itself.
>
> Neilson
>
> On Oct 7, 2004, at 4:51 PM, Luis Ibanez wrote:
>
>>
>> Hi Neilson,
>>
>> The GradientRecursiveGaussianImageFilter requires your image
>> to have *at least* of 4 pixels along every dimension.
>>
>> The reason is that it internally computes IIR filters of 4th
>> order and therefore it requires minimum 4 input values in order
>> to compute an output.
>>
>> If you pass a 2D image inside a 3D one, (e.g. a Degenerate image)
>> it is to expect that *ANY* 3D filter based on neighborhoods will
>> fail because they will be looking for data outside of the plane
>> of your slice.
>>
>> If what you have is a 2D image, then you should run the filter
>> instantiated in 2D.
>>
>> The current version of this filter is actually throwing an
>> exception when you attempt to run it on an input image that has
>> less than 4 pixels along any dimension.
>>
>>
>> If you are doing this in order to register a point set versus
>> a set of 2D slices, note that the slices *DO NOT* provide any
>> information along the direction orthogonal to their plane.
>> Therefore, the Gradients that you compute from slices *must* be
>> 2D gradients that you then place in a 3D space by using the position
>> of the plane in 3D space. If you imagine a scene with the image
>> slices and their associated vectors, the vectors will be in 3D
>> but they will be parallel to the slice plane.
>>
>>
>> Please let us know if you have further questions.
>>
>>
>> Thanks
>>
>>
>> Luis
>>
>>
>>
>> ------------------------------
>> N.E. Mackenzie Mackay wrote:
>>
>>> Howdy,
>>> I am currently trying to run the
>>> GradientRecursiveGaussianImageFilter on an image and am having some
>>> troubles. I am using the GradientRecursiveGaussianImageFilter filter
>>> example code provided in the itk version 1.6.0 version and have made
>>> no changes.
>>> My problem is I cannot run the filter on a specific kind of 3
>>> dimensional image. The image is actually a 2 dimensional image that
>>> I have simply read in as a 3 dimensional one. When I run the filter
>>> I keep getting an abnormal termination error. I have narrowed it
>>> down to being in itkRecursiveSeparableImageFilter on line 178
>>> approxamatly.
>>> s2[i-1] = RealType(...)
>>> I couldn't go further then that because I didn't know how. I was
>>> wondering if anyone could give me some pointers on how to overcome
>>> this problem.
>>> The real reason I am looking into this is this same function is
>>> called in the itkPointSetToImageRegistrationMethod and I need to over
>>> come it before I can proceed.
>>> Thank you,
>>> Neilson
>>> _______________________________________________
>>> 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