MATLAB: Error using imwarp – ippgeotrans requestest a huge array

imwarpippgeotransippwarpaffine

While using imwarp on an 777×3161 image I get the following error:
Error using ippgeotrans
Requested 50995x174010 (33.1GB) array exceeds maximum array size preference. Creation of arrays greater than this limit may take a long time and
cause MATLAB to become unresponsive. See array size limit or preference panel for more information.
Error in imwarp>ippWarpAffine (line 566)
outputImage = ippgeotrans(single(inputImage),double(T),Rout.ImageSize,interp,single(fillVal));
Error in imwarp>remapPointsAndResample (line 223)
outputImage = ippWarpAffine(inputImage,R_A,tform,outputRef,method,fillValues);
Error in imwarp (line 210)
outputImage = remapPointsAndResample(parsedInputs.InputImage,R_A,tform,outputRef,method,fillValues);
I use imwarp inside a loop and the error only occurs for one particular image. For the other images imwarp returns an image with the expected size (777×3161)
There is no documentation on ippgeotrans so I have no idea why it is requesting an array of this astronomical size… Would it help if I perhaps chose another interpolation method?
Can anyone help/explain what is going on here?
Best regards
Silja

Best Answer

Is it possible that the one image is 3 dimensional when the others are all 2 dimensional?
At the command line, issue the command
dbstop if error
and run the program for that one problem image. When it stops in the error, ask it to show size(inputImage) . Then give the command dbup and ask for the size again. Keep using dbup and asking for the size until you get to remapPointsAndResample and in there look at size(parsedInputs.InputImage)