MATLAB實現圖像平移


I=rgb2gray(imread('jpeg.jpg'));     %讀入圖片並轉化為灰度圖
figure,imshow(I);                   %建立窗口,顯示灰度圖I
[r,c]=size(I);                      %計算灰度圖的大小,r表示行,c表示列,即通過size函數將灰度圖I的行數存在矩陣的r中,列數存在矩陣的c中,這樣就知道灰度圖的大小是r×c
dst=zeros(r,c);                     %建立r×c的0矩陣(平移結果矩陣),初始化為零(黑色)
dx=50;                              %平移的x方向的距離,這里是豎直方向
dy=80;                              %平移的y方向的距離,這里是水平方向
tras=[1 0 dx;0 1 dy;0 0 1];         %平移變換矩陣
for i=1:r
    for j=1:c
        temp=[i;j;1];               %灰度圖I要平移變換的點,這里用矩陣表示
        temp=tras*temp;             %矩陣相乘,得到三行一列的矩陣temp,即平移后的矩陣
        x=temp(1,1);                %把矩陣temp的第一行第一列的元素給x   
        y=temp(2,1);                %把矩陣temp的第二行第一列的元素給y 
        if(x>=1&&x<=r)&&(y>=1&&y<=c)%判斷所變換后得到的點是否越界
            dst(x,y)=I(i,j);        %得到平移結果矩陣,點(x,y)是由點(i,j)平移而來的,有對應關系 
        end
    end
end
figure,imshow(uint8(dst));

 


免責聲明!

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



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