Filter löschen
Filter löschen

Why imregister is not performing well?

2 Ansichten (letzte 30 Tage)
Stelios Fanourakis
Stelios Fanourakis am 3 Mai 2018
Bearbeitet: lokender Rawat am 8 Mai 2018
I get this code
fixed = dicomread('test1.dcm')
moving = dicomread('test3.dcm')
imshowpair(fixed,moving,'Scaling','joint')
[optimizer, metric] = imregconfig('multimodal')
optimizer.InitialRadius = 0.009;
optimizer.Epsilon = 1.5e-4;
optimizer.GrowthFactor = 1.01;
optimizer.MaximumIterations = 300;
movingRegistered = imregister(moving, fixed, 'affine', optimizer, metric);
figure
imshowpair(fixed, movingRegistered,'Scaling','joint')
I get the error "The value of 'MovingImage' is invalid. All dimensions of the moving image should be greater than 4."
What is wrong? Please, help!!!

Akzeptierte Antwort

lokender Rawat
lokender Rawat am 8 Mai 2018
Bearbeitet: lokender Rawat am 8 Mai 2018
This is a limitation of the 'imregister' function. The local minimum 'imregister' finds during calculation often does not correspond to the global minimum for this type of image. Specifically, when the image is circularly symmetric (which may confuse the rotation estimation). Using more local features (such as with MSER regions) is likely to be a better approach.
However, you can try to convert the images to grayscale images (using rgb2gray) and then use 'imregister' function(as it expects grayscale arguments). Read the below documentation:
imregister (rgb2gray(moving), rgb2gray(fixed), 'affine', optimizer, metric);

Weitere Antworten (0)

Kategorien

Mehr zu Geometric Transformation and Image Registration finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by