Deblurring code and different Matlab versions

Deblurring code and different Matlab versions


It would seem that the different versions of Matlab (6.5, 7.2, 7.4) have different implmentations of various routines that result in the deblurring code giving different outputs, given the same input image and parameter script.

The first issue is that of the "uint8()" function. In Matlab 6.5, the function as as a "floor()", but in 7.2 and 7.4 it acts as a "round()".

The second issue is that the "imresize()" function gives different results, if resizing by amounts other than mutiples of two. In the figure below, Matlab 6.5 and 7.2 can be seen give quite different answers when resizing a unit step by a factor of sqrt(2). Matlab 7.4 seems to give the same answer as 7.2 however.




But I'm still not quite sure why Matlab 7.2 and 7.4 give quite different answers though when I run the same script:
Here are the resulting kernels at each scale from the execution of the "ian1.m" script run under Matlab 6.5sp1:


Here are the resulting kernels at each scale from the execution of the "ian1.m" script run under Matlab 7.2 (2006a):


Here are the resulting kernels at each scale from the execution of the "ian1.m" script run under Matlab 7.4 (2007a):

I'm working on finding out why. But it is a little disturbing that these version changes really do made a big difference to the output of the algorithm...