Error message in Intensity-Based Automatic Image Registration
10 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Matthew Alston
il 11 Giu 2014
Commentato: Walter Roberson
il 2 Mar 2021
Hi
I am trying to compare and analyze blank and dermatome maps (attached) in order to quantify number of shaded pixels and percentage of shaded pixels within the template body outline. Ultimately this will be used with pain and paresthesia maps. My understanding is that I wil want to use Image Registration in the Image processing toolbox, and that 'Intensity-Based Automatic Image Registration' would serve my purposes. While following the online tutorial I keep running into this error when I try to use imRegister:
Error using imregtform>parseInputs (line 252) The value of 'MovingImage' is invalid. All dimensions of the moving image should be greater than 4.
Error in imregtform (line 123) parsedInputs = parseInputs(varargin{:});
Error in imregister (line 119) tform = imregtform(varargin{:});
Any help on how to solve this problem or any general information on image registration would be greatly appreciated. My entire coding attempt is below for your viewing pleasure:
>> fixed = imread ('blankmap.jpg');
>> moving = imread ('dermatomemap.jpg');
>> figure, imshowpair (moving, fixed, 'montage')
Warning: Image is too big to fit on screen; displaying at 13% > In imuitools/private/initSize at 71 In imshow at 282 In imshowpair at 124
>> title ('unregistered')
>> [optimizer, metric] = imregconfig ('multimodal'); >> movingRegisteredDefault = imregister (moving, fixed, 'affine', optimizer, metric);
Error using imregtform>parseInputs (line 252) The value of 'MovingImage' is invalid. All dimensions of the moving image should be greater than 4.
Error in imregtform (line 123) parsedInputs = parseInputs(varargin{:});
Error in imregister (line 119) tform = imregtform(varargin{:});
Matt
0 Commenti
Risposta accettata
Ben11
il 11 Giu 2014
It might be that you need to use grayscale images (using rgb2gray). Eg:
movingRegisteredDefault = imregister (rgb2gray(moving), rgb2gray(fixed), 'affine', optimizer, metric);
or you can register using a single channel :
movingRegisteredDefault = imregister (moving(:,:,Channel), fixed(:,:,Channel), 'affine', optimizer, metric);
4 Commenti
Walter Roberson
il 2 Mar 2021
If you are registering a particular single channel, then assign the channel number to Channel before executing the code.
Più risposte (1)
Anand
il 11 Giu 2014
imregister expects the 2-D images to be in grayscale. It does not use color information as part of the registration.
If you're images are in RGB colorspace, you can do this:
moving = rgb2gray(moving);
fixed = rgb2gray(fixed);
[optimizer, metric] = imregconfig('multimodal');
movingRegisteredDefault = imregister(moving, fixed, 'affine', optimizer, metric);
Vedere anche
Categorie
Scopri di più su Geometric Transformation and Image Registration in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!