请选择 进入手机版 | 继续访问电脑版

Hello Mat

 找回密码
 立即注册
查看: 5917|回复: 0

图像平移、旋转、缩放、镜像

[复制链接]

1278

主题

1504

帖子

90

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22549
发表于 2017-2-12 16:29:25 | 显示全部楼层 |阅读模式
在Matlab中,图像是按照二维矩阵的形式表示的。所以对图像的操作就是对矩阵的操作。
对图像进行缩放、平移、旋转,都可以转化为矩阵的运算。
关于变换矩阵的构造,请参考:
《 [gym 101047C Robotics Competition] 矩阵快速幂求解点旋转平移N次之后的位置》

图像的平移
  1. init = imread('Fig3.tif'); % 读取图像
  2. [R, C] = size(init); % 获取图像大小
  3. res = zeros(R, C); % 构造结果矩阵。每个像素点默认初始化为0(黑色)
  4. delX = 50; % 平移量X
  5. delY = 50; % 平移量Y
  6. tras = [1 0 delX; 0 1 delY; 0 0 1]; % 平移的变换矩阵

  7. for i = 1 : R
  8.     for j = 1 : C
  9.         temp = [i; j; 1];
  10.         temp = tras * temp; % 矩阵乘法
  11.         x = temp(1, 1);
  12.         y = temp(2, 1);
  13.         % 变换后的位置判断是否越界
  14.         if (x <= R) & (y <= C) & (x >= 1) & (y >= 1)
  15.             res(x, y) = init(i, j);
  16.         end
  17.     end
  18. end;

  19. imshow(uint8(res)); % 显示图像
复制代码
图像的旋转:
  1. init = imread('Fig3.tif'); % 读取图像
  2. [R, C] = size(init); % 获取图像大小
  3. res = zeros( R,  C); % 构造结果矩阵。每个像素点默认初始化为0(黑色)

  4. alfa = -15 * 3.1415926 / 180.0; % 旋转角度
  5. tras = [cos(alfa) -sin(alfa) 0; sin(alfa) cos(alfa) 0; 0 0 1]; % 旋转的变换矩阵

  6. for i = 1 : R
  7.     for j = 1 : C
  8.         temp = [i; j; 1];
  9.         temp = tras * temp;% 矩阵乘法
  10.         x = uint16(temp(1, 1));
  11.         y = uint16(temp(2, 1));
  12.         % 变换后的位置判断是否越界
  13.         if (x <= R) & (y <= C) & (x >= 1) & (y >= 1)
  14.             res(i, j) = init(x, y);
  15.         end
  16.     end
  17. end;

  18. imshow(uint8(res));  % 显示图像
复制代码
图像的镜像:
  1. init = imread('Fig3.tif');
  2. [R, C] = size(init);
  3. res = zeros(R, C);

  4. for i = 1 : R
  5.     for j = 1 : C
  6.         x = i;
  7.         y = C - j + 1;
  8.         res(x, y) = init(i, j);
  9.     end
  10. end

  11. imshow(uint8(res));
复制代码


具体参考链接:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-3-28 20:33 , Processed in 0.222136 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表