[Insight-developers] Windowed Sinc Image Interpolation

Paul Yushkevich pauly at cognitica.com
Tue, 23 Mar 2004 15:23:47 -0500


This is a multi-part message in MIME format.
--------------030207080507060900090503
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Hi!

I wrote an ITK interpolation function based on the windowed sinc
function. This function supports various window types and sizes and can
significantly reduct the aliasing effects of resampling and
interpolation. The interpolation function can be used with the
itk::ResampleImageFilter.

The attached archive contains the header and txx files for the function,
a test program that rescales a 2D png image using different windowed
sinc filters, and a test script. The test image for the test script will 
be sent in a subsequent message because of size limitations on this 
mailing list.

I would like to get feedback from the list, to find out if the filter
should be included in the main ITK tree.

Thanks!

Paul.



--------------030207080507060900090503
Content-Type: application/x-compressed-tar;
 name="WindowedSincFilter.tgz"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="WindowedSincFilter.tgz"

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
--------------030207080507060900090503--