基於Matlab手選控制點的非同源影象簡單配準
阿新 • • 發佈:2019-01-30
摘要:本方法主要是通過呼叫matlab的工具函式實現非同源影象的簡單配準,精度要求不高時可以採用該方法。
baseIm= imread('6-im1.bmp');//讀入基準影象
[inputIm,map] = imread('6-g-org.bmp');//讀入待配準影象H = cpselect(inputIm,baseIm);//手動選取基準點,並儲存儲存
load orgCP.mat;//載入基準點
%%選擇變換型別,不同的變換型別配準精度不一,選擇最優配準即可
type ='projective'% 'similarity'%'affine' %'piecewise linear'%'nonreflectivesimilarity'%'piecewise linear'% ;
%%求出從待配準圖到基準圖的座標變換關係
T = cp2tform(input_points,base_points,type);
%%將待配準圖放到基準圖的座標系下,xRange是橫座標的取值範圍,yRange是縱座標的取值範圍,
%%Reg是配準後的影象
[Reg xRange yRange] =imtransform(inputIm,T);
[m1,n1,p1] = size(baseIm);
[m2,n2,p2] = size(Reg);
%從配準後的大圖中擷取與基準圖等大的區域性影象
rowStart = ceil(-yRange(1));
rowEnd = floor(-yRange(1)+m1);
colStart = ceil(-xRange(1));
colEnd = floor(-xRange(1)+n1);
regIm = Reg(rowStart:rowEnd,colStart:colEnd,:);
%寫影象
imwrite(regGray,['name' type ' .bmp']);
%顯示配準結果圖
figure;
subplot 121;imshow(baseIm);title('BaseImage');
subplot122;imshow(regGray);title(['Registration Image using ' type]);
該方法的實驗結果:
基準圖 待配準影象
affine變換 配準結果 similarity變換 配準結果
<pre code_snippet_id="112113" snippet_file_name="blog_20131214_1_4149463" name="code" class="plain"><pre code_snippet_id="112113" snippet_file_name="blog_20131214_1_4149463" name="code" class="plain"><pre code_snippet_id="112113" snippet_file_name="blog_20131214_1_4149463" name="code" class="python"><div style="top:0px"><pre code_snippet_id="112113" snippet_file_name="blog_20131214_1_4149463" name="code" class="plain"><pre code_snippet_id="112113" snippet_file_name="blog_20131214_1_4149463">