數字圖像處理---圖像配准


圖像配准是數字圖像處理的一種重要應用,用於對齊兩幅或多幅相同場景的圖片。

圖像配准需要輸入圖像與參考圖像。輸入圖像是我們希望變換的圖像,參考圖像是想要配准輸入圖像的圖像。如:

圖像配准的主要方法是使用約束點,輸入圖像產生輸出圖形的特定變換通常是不知道,所以需要估計變換函數,而估計變換函數問題是建模問題之一。

基於雙線性近似的簡單模型:

x = c1v + c2w + c3vw + c4;

y = c5v + c6w + c7vw + c8;

(v,  w)和(x, y)分別是輸入圖像和參考圖像中約束點的坐標。如果在兩幅圖像中有四對相應的約束點,則可以解出8個未知參數。這樣構成簡單模型,從而可以把一幅圖像的像素變換為另一幅圖像的像素位置。

當然可以選擇更復雜的模型,如最小均方算法等。

圖像配准示例代碼:

1、讀入參考圖像和要配准的輸入圖像

I_base = imread('D:\圖像處理\image\lena1.jpg');
I_in = imrotate(I_base,30);
subplot(121)
imshow(I_base(:,:,1))
title('參考圖片')
subplot(122)
imshow(I_in(:,:,1))
title('輸入圖片')

結果:

 

2、標准基准點對,將其保存至工作空間。

利用matlab提供的cpselect函數可以交互式地選擇基准點。在命令行中按照以下方式調用cpselect啟動交互工具

>>  cpselect(I_in(:,:,1),I_base(:,:,1));

在該control point select窗口中,點擊tool里面的add point一項進行手工標注點(交互式標點),然后在file菜單里export  points to workspace 即可輸出表定點的坐標位置。

注意:調用cpselect()函數要將需要配准的圖像作為第一參數,將基准圖像作為后一個參數。並且cpselect只接受灰度圖像,如果需要處理RGB彩色圖像,可以只給CPselect函數傳遞一個圖像的層。

根據之前得到的控制點對坐標,利用cp2tform函數可以計算變換的參數。將基准點對作為輸入傳遞給cp2tform,選擇一種適當的變換類型,cp2tform函數就能確定該類型變換所需的參數,實際上相當於一種數據擬合。cp2tform函數尋找能夠擬合控制點對的變換參數,返回一個TFORM的結構的幾何變換結構,其中包括幾何變換的類型和參數

tform = cp2tform(movingPoints1,fixedPoints1,'affine');
I_out = imtransform(I_in,tform);
figure
subplot(121)
imshow(I_base);
title('參考圖像');
subplot(122)
imshow(I_out);
title('輸出圖像');

最終結果:

 

轉載於:http://blog.csdn.net/vicie414/article/details/41577241


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM