Why imregister is not performing well?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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!!!
0 Kommentare
Akzeptierte Antwort
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);
0 Kommentare
Weitere Antworten (0)
Siehe auch
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!