[Insight-developers] Add a Convolution module under filtering?

Nicholas Tustison ntustison at gmail.com
Tue May 31 17:40:53 EDT 2011


Right, I understand all that.  My point was only that a straightforward solution 
isn't obvious as attested by the multiple options that you laid out.   In addition, 
we could upsample the image kernel and throw a warning.  

I'll just wait for Cory's proposal since it's probably a good idea to coordinate
with the FFT convolution filter.


On May 31, 2011, at 4:51 PM, Luis Ibanez wrote:

> Hi Nick,
> 
> 
> It certainly sounds wise to specify a kernel in terms of radii
> and to assume that its full size is going to be odd,...for many
> applications,... but a convolution filter is more general than
> just for typical 5x5, 7x7 kernel cases.
> 
> Note that the user in the mailing list was making a reasonable
> use of the filter:  He feed the same image as Kernel as an
> input image, for what would be the equivalent of computing
> auto-correlation.
> 
> When ones tries to compute the auto-correlation of Lena,
> the question of whether the image has an odd or even
> number of pixels may not come to mind as the first thing
> to check, and it doesn't seem to be an acceptable reason
> for what a use couldn't compute the convolution of two
> images.
> 
> 
> We shouldn't assume either that the kernels are symmetric,
> for example.
> 
> --
> 
> Here are the typical options:
> 
> 1) If odd size is required (expected) for the Kernel image,
>    then the filter should check the input kernel to verify
>    that its size is odd, and if it is not, it should throw and
>    Exception explaining that only odd-size kernels can
>    be used.
> 
>    Currently it is going along and producing an incorrect
>    output without any warning.
> 
> 
> 2) Convolution with an even-size kernel is certainly
>    possible (from the math point of view).
> 
>    It may require to revisit the implementation though...
> 
>    The first question then is whether we want the filter
>    to support such feature or not.
> 
> 
> --
> 
> 
>  Luis
> 
> 
> ---------------------------------------
> On Tue, May 31, 2011 at 4:34 PM, Nicholas Tustison <ntustison at gmail.com> wrote:
>> Hi Luis,
>> 
>> Did you get my email regarding that bug?  If you didn't, it's unclear to
>> me what should be done in the case of an even size image kernel
>> as such a kernel wouldn't be symmetric with respect to a given voxel.
>> I think there was wisdom in specifying neighborhoods in terms of radii
>> but that makes the solution a bit unclear.
>> 
>> Nick
>> 
>> 
>> 
>> 
>> On May 31, 2011, at 4:28 PM, Luis Ibanez wrote:
>> 
>>> Hi Cory,
>>> 
>>> Before moving the itkConvolutionImageFilter out of Review...
>>> 
>>> Did you do a Code Review of this filter using the Check List ?
>>> http://www.itk.org/Wiki/ITK_Release_4/Modularization/Code_Reviews/Checklist
>>> 
>>> 
>>> Code from the Review directory can't simply be moved to
>>> final directories without first verifying that it fits ITK coding
>>> standards.
>>> 
>>> In particular :  Code Coverage.
>>> 
>>> In many cases this can be code that was copied directly
>>> from Insight Journal contributions and may or may not
>>> have passes through a maturation process in the Review
>>> directory.   (git log could verify how many changes the
>>> code have experienced while in Review).
>>> 
>>> 
>>> 
>>> Please note also that a bug was reported in this filter
>>> during the weekend:
>>> 
>>> http://public.kitware.com/Bug/view.php?id=12236
>>> 
>>> http://www.itk.org/pipermail/insight-users/2011-May/041307.html
>>> 
>>> 
>>>    Luis
>>> 
>>> 
>>> ---------------------------------------------------
>>> On Tue, May 31, 2011 at 12:58 PM, Cory Quammen <cquammen at cs.unc.edu> wrote:
>>>> A patch for this move has been posted:
>>>> http://review.source.kitware.com/#change,1756
>>>> 
>>>> A later patch will include the submission of the FFT based convolution
>>>> image filter.
>>>> 
>>>> Thanks,
>>>> Cory
>>>> 
>>>> On Sun, May 29, 2011 at 8:55 AM, Luis Ibanez <luis.ibanez at kitware.com> wrote:
>>>>> Hi Cory,
>>>>> 
>>>>> The "Filtering" group seems to be the right place
>>>>> for this new Convolution module.
>>>>> 
>>>>> Moving the classes that you mentioned to this
>>>>> new modules looks very reasonable.
>>>>> 
>>>>> 
>>>>>     Luis
>>>>> 
>>>>> 
>>>>> -------------------------------------------------------------
>>>>> On Fri, May 27, 2011 at 4:19 PM, Cory Quammen <cquammen at cs.unc.edu> wrote:
>>>>>> Dear modularization team,
>>>>>> 
>>>>>> In preparation for our A2D2 work on deconvolution, I'd like to create
>>>>>> a new module under Filtering named Convolution.
>>>>>> 
>>>>>> Here's my tentative plan:
>>>>>> - Move itk::ConvolutionImageFilter and associated tests currently in
>>>>>> Review to the Convolution module.
>>>>>> - Add Gaetan Lehmann's FFT based convolution image filter from his
>>>>>> Insight Journal article into this module.
>>>>>> 
>>>>>> If there is a better place to put these classes, please let me know.
>>>>>> 
>>>>>> Thanks,
>>>>>> Cory
>>>>>> 
>>>>>> --
>>>>>> Cory Quammen
>>>>>> Computer Integrated Systems for Microscopy and Manipulation (CISMM)
>>>>>> Department of Computer Science
>>>>>> University of North Carolina at Chapel Hill
>>>>>> http://www.cs.unc.edu/~cquammen
>>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> Cory Quammen
>>>> Computer Integrated Systems for Microscopy and Manipulation (CISMM)
>>>> Department of Computer Science
>>>> University of North Carolina at Chapel Hill
>>>> http://www.cs.unc.edu/~cquammen
>>>> 
>>> _______________________________________________
>>> 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://kitware.com/products/protraining.html
>>> 
>>> 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-developers
>> 
>> 



More information about the Insight-developers mailing list