<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Multidimensional interpolation with integer input</title>
	<atom:link href="http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/</link>
	<description>Steve Eddins manages the Image &#38; Geospatial development team at The MathWorks and coauthored Digital Image Processing Using MATLAB. He writes here about image processing concepts, algorithm implementations, and MATLAB.</description>
	<lastBuildDate>Sat, 11 Feb 2012 18:27:50 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Steve</title>
		<link>http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/#comment-24203</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Fri, 13 May 2011 17:33:08 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.mathworks.com/steve/?p=67#comment-24203</guid>
		<description>Esther&#8212;It seems like a reasonable procedure, although the function you&#039;ve created is not, strictly, speaking, and interpolation kernel. Because it does not go through 0 at 1, -1, 2, -2, ..., the output won&#039;t exactly equal the input at the locations corresponding to the input samples, which is what you&#039;d expect from interpolation.  It looks like the function you&#039;ve chosen will have a smoothing effect.</description>
		<content:encoded><![CDATA[<p>Esther&mdash;It seems like a reasonable procedure, although the function you&#8217;ve created is not, strictly, speaking, and interpolation kernel. Because it does not go through 0 at 1, -1, 2, -2, &#8230;, the output won&#8217;t exactly equal the input at the locations corresponding to the input samples, which is what you&#8217;d expect from interpolation.  It looks like the function you&#8217;ve chosen will have a smoothing effect.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Esther</title>
		<link>http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/#comment-24151</link>
		<dc:creator>Esther</dc:creator>
		<pubDate>Mon, 02 May 2011 09:24:34 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.mathworks.com/steve/?p=67#comment-24151</guid>
		<description>Hi Steve,

Thanks for your reply regarding how to use makeresampler function. I&#039;ve written the codes below to supply the makeresampler with a Hann windowed truncated sinc function interpolating kernel (positive half). I used the function trapz to calculate the are under the function&#039;s curve. Is this the right or proper way to make a normalized interpolating kernel? Thank you for your help.


&lt;pre&gt;
fc = 0.4;
halfWidth = 3;
samplingRate = 0.001;
x = -halfWidth:samplingRate:halfWidth; % sampling frequency = 1000Hz
hannWind = hann(length(x));
hannWindSinc = hannWind.*(sin(2*pi*fc*x)./(pi*x))&#039;;
hannWindSinc(floor(length(x)/2+1),1) = max(hannWindSinc(:));
normHannWindSinc = hannWindSinc/(trapz(hannWindSinc)*samplingRate);
R = makeresampler({halfWidth, normHannWindSinc(floor(length(normHannWindSinc)/2+1):end)&#039;},
 &#039;bound&#039;);
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Hi Steve,</p>
<p>Thanks for your reply regarding how to use makeresampler function. I&#8217;ve written the codes below to supply the makeresampler with a Hann windowed truncated sinc function interpolating kernel (positive half). I used the function trapz to calculate the are under the function&#8217;s curve. Is this the right or proper way to make a normalized interpolating kernel? Thank you for your help.</p>
<pre>
fc = 0.4;
halfWidth = 3;
samplingRate = 0.001;
x = -halfWidth:samplingRate:halfWidth; % sampling frequency = 1000Hz
hannWind = hann(length(x));
hannWindSinc = hannWind.*(sin(2*pi*fc*x)./(pi*x))';
hannWindSinc(floor(length(x)/2+1),1) = max(hannWindSinc(:));
normHannWindSinc = hannWindSinc/(trapz(hannWindSinc)*samplingRate);
R = makeresampler({halfWidth, normHannWindSinc(floor(length(normHannWindSinc)/2+1):end)'},
 'bound');
</pre>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/#comment-24133</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Tue, 26 Apr 2011 12:55:11 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.mathworks.com/steve/?p=67#comment-24133</guid>
		<description>Esther&#8212;No automatic normalization is performed. You have to supply an interpolating kernel that is correctly normalized.</description>
		<content:encoded><![CDATA[<p>Esther&mdash;No automatic normalization is performed. You have to supply an interpolating kernel that is correctly normalized.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Esther</title>
		<link>http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/#comment-24087</link>
		<dc:creator>Esther</dc:creator>
		<pubDate>Wed, 06 Apr 2011 08:29:07 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.mathworks.com/steve/?p=67#comment-24087</guid>
		<description>Hi Steve,

Thanks for your guidance. I wonder if I need to supply the R = makeresampler({half_width, positive_half}, padmethod)
with the positive_half of a &#039;normalized&#039; sinc function or it does the normalization inherently when image is resampled during imtransform?

Thank you.</description>
		<content:encoded><![CDATA[<p>Hi Steve,</p>
<p>Thanks for your guidance. I wonder if I need to supply the R = makeresampler({half_width, positive_half}, padmethod)<br />
with the positive_half of a &#8216;normalized&#8217; sinc function or it does the normalization inherently when image is resampled during imtransform?</p>
<p>Thank you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/#comment-24030</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Thu, 17 Mar 2011 17:26:15 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.mathworks.com/steve/?p=67#comment-24030</guid>
		<description>Esther&#8212;Use this syntax:

&lt;pre class=&quot;code&quot;&gt;
R = makeresampler(interpolant, padmethod)
&lt;/pre&gt;

where interpolant is a two-element cell array of the 
form:

&lt;pre class=&quot;code&quot;&gt;
{half_width, positive_half}
&lt;/pre&gt;

half_width is a positive scalar designating the half width of a symmetric interpolating kernel. positive_half is a vector of values regularly sampling the kernel on the closed interval [0 positive_half]. So you could just provide a closely-spaced table of samples of the sinc function. You can&#039;t truly interpolate using the sinc function, of course, since it is infinitely wide. You&#039;ll have to choose a suitable width.</description>
		<content:encoded><![CDATA[<p>Esther&mdash;Use this syntax:</p>
<pre class="code">
R = makeresampler(interpolant, padmethod)
</pre>
<p>where interpolant is a two-element cell array of the<br />
form:</p>
<pre class="code">
{half_width, positive_half}
</pre>
<p>half_width is a positive scalar designating the half width of a symmetric interpolating kernel. positive_half is a vector of values regularly sampling the kernel on the closed interval [0 positive_half]. So you could just provide a closely-spaced table of samples of the sinc function. You can&#8217;t truly interpolate using the sinc function, of course, since it is infinitely wide. You&#8217;ll have to choose a suitable width.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Esther</title>
		<link>http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/#comment-24022</link>
		<dc:creator>Esther</dc:creator>
		<pubDate>Wed, 16 Mar 2011 14:59:33 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.mathworks.com/steve/?p=67#comment-24022</guid>
		<description>Hi Steve,

I would like to use sinc interpolation in imtransform. I read the Matlab user guide that makeresampler can be used to customize an interpolant for use in imtransform. However, I don&#039;t quite understand how to use makeresampler to creat a sinc interpolant based on the example given there. Can you please guide/show me how to do this?

Thank you very much and your help is truly appreciated!</description>
		<content:encoded><![CDATA[<p>Hi Steve,</p>
<p>I would like to use sinc interpolation in imtransform. I read the Matlab user guide that makeresampler can be used to customize an interpolant for use in imtransform. However, I don&#8217;t quite understand how to use makeresampler to creat a sinc interpolant based on the example given there. Can you please guide/show me how to do this?</p>
<p>Thank you very much and your help is truly appreciated!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roman</title>
		<link>http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/#comment-23961</link>
		<dc:creator>Roman</dc:creator>
		<pubDate>Thu, 17 Feb 2011 03:40:07 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.mathworks.com/steve/?p=67#comment-23961</guid>
		<description>interp3 is what i use for interpolating a 3D stack of images</description>
		<content:encoded><![CDATA[<p>interp3 is what i use for interpolating a 3D stack of images</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rakesh</title>
		<link>http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/#comment-23954</link>
		<dc:creator>rakesh</dc:creator>
		<pubDate>Tue, 15 Feb 2011 05:19:44 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.mathworks.com/steve/?p=67#comment-23954</guid>
		<description>hi 
am trying to do image interpolation with bilinear method but i donot know how to start withm can you please suggest me some algorithm to do</description>
		<content:encoded><![CDATA[<p>hi<br />
am trying to do image interpolation with bilinear method but i donot know how to start withm can you please suggest me some algorithm to do</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roman</title>
		<link>http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/#comment-23796</link>
		<dc:creator>Roman</dc:creator>
		<pubDate>Mon, 20 Dec 2010 04:59:36 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.mathworks.com/steve/?p=67#comment-23796</guid>
		<description>Steve,

I think I see the problem.  Your script assumes a cubic array, whereas I have a stack of images obtained from microscopy where the interpixelar distance in the plane of an image does not correspond to the image separation distance.  Am I correct about this?  Is there anyways you can make this script fully functional, like the interpn command (so it would take the same number of inputs and wouldn&#039;t be limited to evenly spaced arrays of data)?

~Roman</description>
		<content:encoded><![CDATA[<p>Steve,</p>
<p>I think I see the problem.  Your script assumes a cubic array, whereas I have a stack of images obtained from microscopy where the interpixelar distance in the plane of an image does not correspond to the image separation distance.  Am I correct about this?  Is there anyways you can make this script fully functional, like the interpn command (so it would take the same number of inputs and wouldn&#8217;t be limited to evenly spaced arrays of data)?</p>
<p>~Roman</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roman</title>
		<link>http://blogs.mathworks.com/steve/2006/06/29/multidimensional-interpolation-with-integer-input/#comment-23792</link>
		<dc:creator>Roman</dc:creator>
		<pubDate>Sat, 18 Dec 2010 08:18:06 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.mathworks.com/steve/?p=67#comment-23792</guid>
		<description>Hi Steve,

I am trying to convert this:

    Original_Image_3D_Matrix_INTERPOLATED_all_channels(:,:,:,tiff_channel_number) = ...
        uint8(interp3(X_original,Y_original,Z_original,...
        double(Original_Image_3D_Matrix(:,:,:,tiff_channel_number)),...
        X_interpolated,Y_interpolated,Z_interpolated));


to this:

    Original_Image_3D_Matrix_INTERPOLATED_all_channels(:,:,:,tiff_channel_number) = ...
        iminterpn(Original_Image_3D_Matrix(:,:,:,tiff_channel_number),...
        X_interpolated,Y_interpolated,Z_interpolated);


the former works while the latter gives me mostly black images.  is there anything that jumps out at you that i am doing wrong?</description>
		<content:encoded><![CDATA[<p>Hi Steve,</p>
<p>I am trying to convert this:</p>
<p>    Original_Image_3D_Matrix_INTERPOLATED_all_channels(:,:,:,tiff_channel_number) = &#8230;<br />
        uint8(interp3(X_original,Y_original,Z_original,&#8230;<br />
        double(Original_Image_3D_Matrix(:,:,:,tiff_channel_number)),&#8230;<br />
        X_interpolated,Y_interpolated,Z_interpolated));</p>
<p>to this:</p>
<p>    Original_Image_3D_Matrix_INTERPOLATED_all_channels(:,:,:,tiff_channel_number) = &#8230;<br />
        iminterpn(Original_Image_3D_Matrix(:,:,:,tiff_channel_number),&#8230;<br />
        X_interpolated,Y_interpolated,Z_interpolated);</p>
<p>the former works while the latter gives me mostly black images.  is there anything that jumps out at you that i am doing wrong?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

