Matlab 图像平移、旋转、缩放、镜像
今天学习了用Matlab实现对图像的基本操作。在Matlab中,图像是按照二维矩阵的形式表示的。所以对图像的操作就是对矩阵的操作。
对图像进行缩放、平移、旋转,都可以转化为矩阵的运算。
关于变换矩阵的构造,请参考:
《 [gym 101047C Robotics Competition] 矩阵快速幂求解点旋转平移N次之后的位置》
参考原图:
1. 图像平移
init = imread('Fig3.tif'); % 读取图像
[R, C] = size(init); % 获取图像大小 res = zeros(R, C); % 构造结果矩阵。每个像素点默认初始化为0(黑色) delX = 50; % 平移量X delY = 50; % 平移量Y tras = [1 0 delX; 0 1 delY; 0 0 1]; % 平移的变换矩阵 for i = 1 : R for j = 1 : C temp = [i; j; 1]; temp = tras * temp; % 矩阵乘法 x = temp(1, 1); y = temp(2, 1); % 变换后的位置判断是否越界 if (x <= R) & (y <= C) & (x >= 1) & (y >= 1) res(x, y) = init(i, j); end end end; imshow(uint8(res)); % 显示图像
2. 图像旋转
init = imread('Fig3.tif'); % 读取图像
[R, C] = size(init); % 获取图像大小 res = zeros( R, C); % 构造结果矩阵。每个像素点默认初始化为0(黑色) alfa = -15 * 3.1415926 / 180.0; % 旋转角度 tras = [cos(alfa) -sin(alfa) 0; sin(alfa) cos(alfa) 0; 0 0 1]; % 旋转的变换矩阵 for i = 1 : R for j = 1 : C temp = [i; j; 1]; temp = tras * temp;% 矩阵乘法 x = uint16(temp(1, 1)); y = uint16(temp(2, 1)); % 变换后的位置判断是否越界 if (x <= R) & (y <= C) & (x >= 1) & (y >= 1) res(i, j) = init(x, y); end end end; imshow(uint8(res)); % 显示图像
3. 图像缩放
init = imread('Fig3.tif'); % 读取图像
[R, C] = size(init); % 获取图像大小 timesX = 3; % X轴缩放量 timesY = 3; % Y轴缩放量 res = zeros(timesX * R, timesY * C); % 构造结果矩阵。每个像素点默认初始化为0(黑色) tras = [1/timesX 0 0; 0 1/timesY 0; 0 0 1]; % 缩放的变换矩阵 for i = 1 : timesX * R for j = 1 : timesY * C temp = [i; j; 1]; temp = tras * temp; % 矩阵乘法 x = uint8(temp(1, 1)); y = uint8(temp(2, 1)); % 变换后的位置判断是否越界 if (x <= R) & (y <= C) & (x >= 1) & (y >= 1) res(i, j) = init(x, y); end end end; imshow(uint8(res)); % 显示图像
4. 图像镜像(水平)
init = imread('Fig3.tif');
[R, C] = size(init);
res = zeros(R, C);for i = 1 : R for j = 1 : C x = i; y = C - j + 1; res(x, y) = init(i, j); end end imshow(uint8(res));
转载于:https://www.cnblogs.com/Ph-one/p/11566673.html
Matlab 图像平移、旋转、缩放、镜像相关推荐
- 2020.6.21P72_OpenCV_几何变换_图像平移_缩放_旋转
描述: //2020.6.21P72_OpenCV_图像平移_缩放_旋转 •完成一张图像的几何变换需要两个独立的算法.首先需要一个算法实现空间坐标变换,用它描述每个像素如何从初始位置移动到终止位置:其 ...
- matlab 图像上下翻,Matlab图像九宫格基本操作(翻转,镜像等)+位图操作
Matlab图像九宫格基本操作(翻转,镜像等)+位图操作 Matlab图像九宫格基本操作(翻转,镜像等)+位图操作 这次blog提到的操作对于matlab来说都很基础,而且对于有编程和计算机基础的人来 ...
- Unity 触屏手势控制Camera平移旋转缩放
Unity 触屏手势控制Camera平移旋转缩放 实现思路 单点触屏,位移增量控制相机平移: 两点触屏,两点位移控制相机前后移动(缩放):两点中一点不位移控制相机绕点旋转: 实现需要的API Touc ...
- MATLAB图像平移、旋转、缩放、裁剪
版本: MATLAB R2019a 目录 (一)图像平移 (二)图像旋转 1.图像尺寸不变 2.图像信息不丢失 (三)图像缩放 (四)图像裁剪 (一)图像平移 使用MATLAB自带函数 transla ...
- opencv 图像平移、缩放、旋转、翻转 图像仿射变换
图像几何变换 图像几何变换从原理上看主要包括两种:基于2x3矩阵的仿射变换(平移.缩放.旋转.翻转).基于3x3矩阵的透视变换. 图像平移 opencv实现图像平移 实现图像平移,我们需要定义下面这样 ...
- 三维空间中的几何变换-平移旋转缩放
前言 前段时间由于项目需要,深入学习了下图形几何变换,主要是绕任意轴旋转部分(其他的已有一定基础),现记录学习笔记. 文章内容部分引用并参考了下面的博客: http://netclass.csu.ed ...
- Unity矩阵平移旋转缩放Matrix4x4
Unity中的矩阵(Matrix4x4) 最近在研究帧同步定点数物理系统中需要自定义定点数矩阵,所以在这里分享下基础的矩阵案例旋转.平移.缩放.(注意这里本文中的transform组件式基于unity ...
- MATLAB基础图形处理实现图形通道转换灰度化旋转缩放镜像拼接
%practice,还是以彩色荷花图片lotus为例 %读入图片数据 Image1=imread('carphone.jpg');%图片1是原图,汽车与手机JPG格式的原图 %红绿通道互换 Image ...
- 三维坐标 偏转_三维坐标变换原理-平移, 旋转, 缩放
给定一个二维点(x, y),那么形如(kx, ky, k)的所有三元组就都是等价的,它们就是这个点的齐次坐标(homogeneous).齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示,是指 ...
- 三维坐标要建一个4*4的矩阵?平移 旋转 缩放
移植不知道三维物体的旋转平移缩放和矩阵的关系.找到这篇文章借鉴一下. 转自:https://blog.csdn.net/ALLENJIAO/article/details/80348362 怎么平移一 ...
最新文章
- iOS 向下取整、向上取整、四舍五入
- SAP UI5 Opportunity type long description empty issue
- [MongoDB]安装MongoDB遇到问题
- Jzoj4831 方程式
- 如何在Mac上捕获流视频 ?Movavi Screen Recorder 实用教程
- 《21天学通C语言(第7版)》一导读
- 软件观念革命:交互设计精髓_2021年中国传媒大学设计学考研招生分析、参考书目、复试线、真题回忆、考研经验指南篇...
- 【机房报修管理系统】后端篇(一) 设计数据表
- html如何自动获取屏幕高度,css如何获取屏幕高度?
- 2月19日CTF记录
- leetcode刷题技巧
- csgo修改服务器时间,csgo热身时间参数指令 热身时间怎么改
- 【领导力】同理心:CIO 的力量倍增器
- 云南省自然保护区分布及功能区划
- 怎么把英语视频转为音频怎么把MP4转换成mp3
- html5 游戏广告 sdk,帷千动媒SDK 3.0发布 基于HTML5富媒体广告
- 租一个月的云服务器要花费多少?
- 数据库SQL Server中数据的模糊查询
- 如何解决pjreddie版darknet不能使用cudnn8编译的问题
- cs131 第二讲 颜色与线性代数