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));
