初识matlab及图像处理之图片平移、旋转、水平镜像、垂直镜像、放大、缩小 (1)

    最近刚开始学图像处理,因此写下记录下来。

    图像平移原理

初识matlab及图像处理之图片平移、旋转、水平镜像、垂直镜像、放大、缩小 (1)_第1张图片

src=imread('Fig3.tif');
[m,n]=size(src);
des=zeros(m,n);
left=[1,0,-50;0,1,-50;0,0,1];//向左上方向移动50
for i=1:m
    for j=1:n
        t=left*[i;j;1];
        if t(1,1)<=m&&t(2,1)<=n&&t(1,1)>=1&&t(2,1)>=1
            des(t(1,1),t(2,1))=src(i,j);
        end
    end
end
imshow(uint8(des));


图像旋转原理:

初识matlab及图像处理之图片平移、旋转、水平镜像、垂直镜像、放大、缩小 (1)_第2张图片

src=imread('Fig3.tif');
[m,n]=size(src);
des=zeros(m,n);
left=[2^1/2,2^1/2,0;-2^1/2,2^1/2,0;0,0,1];//向左旋转45度
for i=1:m
    for j=1:n
        t=left*[i;j;1];
        if t(1,1)<=m&&t(2,1)<=n&&t(1,1)>=1&&t(2,1)>=1
            des(t(1,1),t(2,1))=src(i,j);
        end
    end
end
imshow(uint8(des));


水平镜像原理

初识matlab及图像处理之图片平移、旋转、水平镜像、垂直镜像、放大、缩小 (1)_第3张图片
src=imread('Fig3.tif');
[m,n]=size(src);
des=zeros(m,n);
left=[-1,0,n;0,1,0;0,0,1];
for i=1:m
    for j=1:n
        t=left*[i;j;1];
        if t(1,1)<=m&&t(2,1)<=n&&t(1,1)>=1&&t(2,1)>=1
            des(t(1,1),t(2,1))=src(i,j);
        end
    end
end
imshow(uint8(des));

垂直镜像原理:

初识matlab及图像处理之图片平移、旋转、水平镜像、垂直镜像、放大、缩小 (1)_第4张图片

src=imread('Fig3.tif');
[m,n]=size(src);
des=zeros(m,n);
left=[1,0,0;0,-1,m;0,0,1];
for i=1:m
    for j=1:n
        t=left*[i;j;1];
        if t(1,1)<=m&&t(2,1)<=n&&t(1,1)>=1&&t(2,1)>=1
            des(t(1,1),t(2,1))=src(i,j);
        end
    end
end
imshow(uint8(des));


放大原理:

初识matlab及图像处理之图片平移、旋转、水平镜像、垂直镜像、放大、缩小 (1)_第5张图片
src=imread('Fig3.tif');
[m,n]=size(src);
des=zeros(m,n);
left=[2,0,0;0,2,0;0,0,1];//放大两倍
for i=1:m
    for j=1:n
        t=left*[i;j;1];
        if t(1,1)<=m&&t(2,1)<=n&&t(1,1)>=1&&t(2,1)>=1
            des(t(1,1),t(2,1))=src(i,j);
        end
    end
end
imshow(uint8(des));

缩小原理:

初识matlab及图像处理之图片平移、旋转、水平镜像、垂直镜像、放大、缩小 (1)_第6张图片
src=imread('Fig3.tif');
[m,n]=size(src);
des=zeros(m,n);
left=[1/2,0,0;0,1/2,0;0,0,1];
for i=1:m
    for j=1:n
        t=left*[i;j;1];
        if t(1,1)<=m&&t(2,1)<=n&&t(1,1)>=1&&t(2,1)>=1
            des(round(t(1,1)),round(t(2,1)))=src(i,j);
        end
    end
end
imshow(uint8(des));

今天就到这里,下次再见



你可能感兴趣的:(matlab及图像处理)