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

    xiaoxiao2021-11-29  19

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

        图像平移原理

    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)); 今天就到这里,下次再见

    转载请注明原文地址: https://ju.6miu.com/read-678920.html

    最新回复(0)