Imregister changes the values of my image during "translation". Can I keep this from happening?

1 view (last 30 days)
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);

Accepted Answer

Matt J
Matt J on 6 Jul 2018
Edited: Matt J on 6 Jul 2018
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.
  3 Comments
Matt J
Matt J on 6 Jul 2018
Edited: Matt J on 6 Jul 2018
So I am gathering that image translation includes altering the values?
You could use imregtform to get the translation instead. Then apply the transformation to a more finely sampled version of the image.

Sign in to comment.

More Answers (0)

Products


Release

R2015b

Community Treasure Hunt

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

Start Hunting!