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 怎么平移一 ...
最新文章
- 数据结构与算法系列 目录
- leetcode-无重复字符的最长子串
- Day1 了解web前端
- matlab getsplitpic,MATLAB_9-模式识别笔记
- 7-8 判断三角形类型 (20 分)
- sql server代理无法启动_谁说前端不需要懂Nginx反向代理与负载均衡
- 解决nginx部署后css、js、图片等样式不加载的问题
- Tomcat创建HTTPS访问,java访问https
- YOLOv4一作提出Transformer新架构:DPT!替代卷积网络做密集预测
- 爱忘事、不自律,有了这5款时间管理工具,堪比“罗志祥”!
- Struts1框架轻易入门,经典示例
- C语言试题八十六之兔子生兔子问题
- 加那些YY主播的微信为何要花钱?
- 怎样能让大腿变细方法 揭秘如何瘦大腿和小腿
- 【MySQL】数据类型
- Spring面试题(一)
- dz后台html,建立discuz后台管理页面的模板
- 思岚RPLIDAR A2激光雷达使用及问题解决
- C# 科学计数法的转换
- python爬虫爬取歌曲_python爬虫实战:爬取全站小说排行榜