利用Matlab實現圖像配準

之前利用MATLAB配準圖像,按照官網的代碼進行配準:

clc;clear;
%配準圖片的導入
fixed=imread('D:\Test\患側1組白光圖.tif');
moving=imread('D:\Test\健側1組白光圖.tif');
%顯示配準之前的圖片
figure, imshowpair(moving, fixed, 'montage')
title('Unregistered')
figure, imshowpair(moving, fixed)
title('Unregistered')
%粗配準
[optimizer,metric] = imregconfig('multimodal');
movingRegisteredDefault = imregister(moving, fixed, 'affine', optimizer, metric);
%顯示粗配準的圖片
figure, imshowpair(movingRegisteredDefault, fixed)
title('A: Default registration')

以上就是粗配準的代碼了,但是實際運行過程中,並不會如官網的MRI示例一樣順利,而是會出現如下錯誤:

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{:});"

可以看到是:

movingRegisteredDefault = imregister(moving, fixed, 'affine', optimizer, metric);

這一行代碼出錯,網上也沒有具體的解決辦法,勉強一試,修改爲:

movingRegisteredDefault = imregister(rgb2gray(moving), rgb2gray(fixed), 'affine', optimizer, metric);

這裏寫圖片描述
完美解決。去外網諮詢過後,還有另一種解決方法:

movingRegistered = imregister(moving(:,:,Channel), fixed(:,:,Chanel), 'affine', optimizer, metric);

同樣可以,究其原因,分析報錯:All dimensions of the moving image should be greater than 4.
運動圖像的所有尺寸應大於4。將原始RGB圖片轉換爲灰度圖,滿足該要求,問題解決。
如果大家有好的解釋或者方法,也可以留言交流。

如果覺得本文寫的還不錯的夥伴,可以給個關注一起交流進步,如果有在找工作且對阿里感興趣的夥伴,也可以發簡歷給我進行內推:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章