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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26399665/article/details/53215221

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

    图像平移原理


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


图像旋转原理:


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


水平镜像原理


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

垂直镜像原理:



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


放大原理:


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

缩小原理:


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

今天就到这里,下次再见 吐舌头



猜你喜欢

转载自blog.csdn.net/qq_26399665/article/details/53215221