MATLAB: Imregister changes the values of the image during “translation”. Can I keep this from happening

image analysisimage processingImage Processing Toolbox

Dear community, I am working with fluorescence images which need to be kept quantitative and therefore any operation I do cannot change the actual values unless on purpose. I occasionally have a drift between two images taken of the same thing with different wavelengths, and therefore I wish to align them. I had done some testing with imregister which worked out quite well until i noticed that the values of the registered image were actually different. I was quite suprised since I thought that the whole point of 'translation' is that it is restricted to only move the image in x-y directions and nothing else. I have yet to change any parameters in the optimizer and metric, which holds default values. I could not find anything in them which would allow or disallow changing values. I have also not been able to google myself to an answer to this question. I have little understanding of the optimizer and metric, so I apologize for that. As can be seen from the code below, the fixed image is "test488", moving image is "test435" and the registered image is "new435", provided. I attempted to see if normalizing the images by dividing by the maximum value of itself would work, but imregister returns the error: "Error using imregtform>parseInputs (line 261) The value of 'FixedImage' is invalid. Expected input number 1, fixed, to be finite.".
I appreciate your time.
optimizer = registration.optimizer.RegularStepGradientDescent;
metric = registration.metric.MeanSquares;
[new435] = imregister(test488,test435,'Translation',optimizer,metric);

Best Answer

So, first of all you've got the syntax wrong. If test435 is supposed to be the moving image, then you need
[new435] = imregister(test435, test438,...);
Also, I think Mutual Information would work better here because of the difference in intensity distribution between test435 and test438.
But even if the translation is successfully estimated, your moving image is difficult to warp/transform accurately because the objects in the image are almost as small as the pixels themselves. Some intensity change will be inevitable just because of that.