Matlab之图像平移(七)

我们这节详细说一下如何进行图像的平移,这个是我们的平移的数学模型,而我们要做的就是用代码来实现!

在这里插入图片描述
故可以实现代码:

I = imread('lena_color_512.tif');
a = 50; b = 50; %设置平移坐标
J1 = move(I, a, b); %移动原图;

a = -50; b = 50;
J2 = move(I, a, b);

a = 50; b = -50;
J3 = move(I, a, b);

a = -50; b = -50;
J4 = move(I, a, b);

set(0, 'defaultFigurePosition', [100, 100, 1000, 500]);  %修改图像位置的默认设置
set(0, 'defaultFigureColor', [1 1 1]);  %修改图形背景颜色的设置

figure(1)
subplot(121), imshow(J1), axis on;
subplot(122), imshow(J2), axis on;

figure(2)
subplot(121), imshow(J3), axis on;
subplot(122), imshow(J4), axis on;

这里调用一个函数

function J = move(I, a, b)
[M, N, G ] = size(I); %获取图像尺寸;
I = im2double(I); %数据类型转换;
J= ones(M,N,G); %初始化矩阵为1,大小与原图相同
for i = 1: M
    for j = 1: N
        if ((i+a >= 1) && (i+a <= M) && (j+b>=1) && (j+b <= N)); %判断坐标是否超出范围;
            J(i+a, j+b, :) = I(i, j, :);
        end
    end
end
end

图一:
向右平移50及向下平移50
在这里插入图片描述

图二:
向右平移50及向上平移50
在这里插入图片描述
图三:
向左平移50及向下平移50
在这里插入图片描述
图四:
向左平移50及向上平移50
在这里插入图片描述


一篇简单的图像平移就完成啦!

发布了86 篇原创文章 · 获赞 197 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_44790423/article/details/104736471
今日推荐