Bilinear interpolation error - index exceeds matrix dimensions

1 view (last 30 days)
I am supposed to do the bilinear interpolation without using imresize or interp. I am getting the error 'Index exceeds matrix dimensions' The padding was to avoid that.
{ f300=imread('Chrono');
fbilin(1:3:2769,1:3:2109)=f300(1:923,1:703);
f300=padarray(f300,[4 4],'replicate','both');
for j=1:3:2109
for i=1:3:2769
f11=f300(i,j+2);
f12=f300(i,j+2);
f21=f300(i+2,j);
f22=f300(i+2,j+2);
fbilin(i+1,j+1)=(f11*((i+2)-(i+1))*((j+2)-(j+1))+...
f21*((i+1)-(i))*((j+2)-(j+1))+...
f12*((i+2)-(i+1))*((j+1)-(j))+...
f22*((i+1)-(i))*((j+1)-(j)))./((i+2)-(i))*((j+2)-(j));
end
end
subplot(2,3,5), imagesc(fbilin), title('Chronometer Bilinear'); }
  1 Comment
Image Analyst
Image Analyst on 25 Jan 2013
Click edit (to the upper left). Put a blank line before your code. Then highlight all your code and click {}Code icon above to format your code properly.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 25 Jan 2013
Edited: Matt J on 25 Jan 2013
Use DBSTOP to halt execution at the point where the error occurs. Check the values of the indices at that point. Also check the size of the (supposedly padded) arrays.
  8 Comments
Matt J
Matt J on 25 Jan 2013
Edited: Matt J on 25 Jan 2013
Well, one thing should be clear. If the size of the array is 931, you should probably not be running i up to 2769, and similarly for j. Where did these numbers come from anyway?
P
P on 26 Jan 2013
Edited: P on 26 Jan 2013
you are right. instead of f300 it should be fbilin. Thank you.

Sign in to comment.

More Answers (0)

Categories

Find more on Interpolation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!