MATLAB利用仿射变换实现图像的缩放,旋转,剪切,平移操作
定义:一个非奇异线性变换接一个平移变换
矩阵形式:
一个平面上的放射变换有6个自由度
缩放:
旋转:
剪切:
平移:
可用tform = affine2d(T
)来生成仿射变换的矩阵
关于此函数的详细解释:https://ww2.mathworks.cn/help/images/ref/affine2d.html
可用imwarp(A,tfrom)来进行仿射变换,
此函数的具体解释:https://ww2.mathworks.cn/help/images/ref/imwarp.html
例如
clear all;
clc;
I = imread('cameraman.tif');
tform = affine2d([1 0 0; .5 1 0; 0 0 1]);
J = imwarp(I,tform);
figure, imshow(I), figure, imshow(J)
%旋转变换:
I = imread('cameraman.tif');
tform = affine2d([0 1 0; -1 0 0; 0 0 1]);
J = imwarp(I,tform);
imshow(J)%剪切变换
I = imread('cameraman.tif');
tform = affine2d([1 0 0;.5 1 0; 0 0 1]);
J = imwarp(I,tform);
imshow(J)
%平移变换
I = imread('cameraman.tif');
tform = affine2d([1 0 0;0 1 0;2 2 1]);
J = imwarp(I,tform);
imshow(J)
了解其变换原理也可以自己实现变换函数,如:
function pt=zoom(p1)
%0.5倍缩放图像
[x,y]=size(p1);
pt=ones(x,y);
A=[0.5 0 0;0 0.5 0;0 0 1];
for i = 1:xfor j = 1:yb=A*([i,j,double(p1(i,j))]');k=uint8(b(1));l=uint8(b(2));pt(k,l)=b(3);end
end
pt=uint8(pt);
MATLAB利用仿射变换实现图像的缩放,旋转,剪切,平移操作相关推荐
- R语言使用magick包的image_rotate函数、image_flip函数、image_flop函数对图像进行缩放旋转、镜像、翻转(Rotate or mirror the image)
R语言使用magick包的image_rotate函数.image_flip函数.image_flop函数对图像进行缩放旋转.镜像.翻转(Rotate or mirror the image) 目录
- 深度学习数据增强方法,利用仿射变换实现图像进行各种操作如平移、缩放、旋转、翻转
导读 在深度学习的数据增强中,我们经常需要对图像进行各种增强操作如平移.缩放.旋转.翻转等,这些其实都是图像的仿射变换.通过本篇文章,你能够知道它们的实现原理以及如何应用它们.本文讲述如何通过仿射变换 ...
- 计算机图形学(1)(基础变换矩阵:缩放,旋转,平移)
前言 开始学习图形学之后,真的后悔自己当初线性代数学的不够扎实,在写这一篇学习笔记之前,也是回看了很多关于向量.矩阵.点乘.叉乘的知识. 目录 前言 一.2D线性变换 1.缩放 2.剪切 3.旋转 二 ...
- MATLAB旋转和平移时,以白色填充多出来的区域
主要思路:在旋转和平移操作之前进行一个~image操作,旋转和平移之后在~image(取反)回来就行. img = imread('1.bmp');img = rgb2gray(img);thresh ...
- 【opencv 学习】仿射变换(图像的旋转、缩放、平移)
import numpy as np import cv2# 仿射变换的两种方式: # 1.利用变换前后的三个坐标点达到变换目的. # 2.使用旋转角度和缩放倍数来变换. # 可以用矩阵相乘或者向量叠 ...
- 图像的仿射变换原理及c++实现(旋转,平移,缩放,偏移,组合变换)
github地址:https://github.com/2209520576/Image-Processing-Algorithm 一.写在前面 几何空间变换是图像处理中的最基础的算法,主要包括图像的 ...
- matlab图像处理二,图像缩放、旋转、修剪
图像的缩放 A = imresize(I, scale). I:原图像 scale:>1,放大:<1,缩小 A:缩放后的图像 I=imread('C:\Users\14372\Deskto ...
- 图像几何变换--缩放、平移、镜像、旋转
目录 一.图像几何变换基础 二.平移 三.缩放 四.旋转 五.镜像 六.复合变换 七.变换矩阵总结 八.完整代码 一.图像几何变换基础 1.图像的几何变换是指原始图像按照需要产生大小.形状和位置的变化 ...
- matlab 通过矩阵变换使图像旋转平移_图像的几何变换
学习图像中的仿射变换(affine transform), 这是一种线性变换(涵盖旋转,平移,错切(shear), 缩放等线性变换),既然是线性变换则可以通过线性变换(矩阵)来获得.仿射变换矩阵M为2 ...
最新文章
- 热评一箩筐——《黑客攻防技术宝典》
- 一个python程序员需要掌握的知识-python初学者搭建网站需要了解的基础知识
- 深入浅出python机器学习_3.3.1_对数据集进行分析
- [LUOGU] P4342 [IOI1998]Polygon
- 发生生成错误是否继续并运行上次的成功生成_JavaScript 是如何运行的?
- ci php做多图上传,CodeIgniter快速实现图片上传
- Java IO学习第二天部分详解
- 如何在Mac/苹果电脑上接收iPhone短信
- 智能仓储物流技术知识点汇总(部分)
- Windows开启卓越性能模式,一键睿频
- java 汇率换算_汇率转换示例代码
- 台式计算机刚做完系统就蓝屏,联想台式win10重装系统出现蓝屏,一招解决系统蓝屏问题...
- 算法篇 干货!!!字母重排 打卡第七天
- gentoo linux 内核,手动升级Gentoo及其内核的方法
- Spark 报错:Lost task 0.0 in stage 1.0 (TID 2, xxx, executor 0): java.io.FileNotFoundExceptio
- 2021-10-11 今日总结
- Zcash中的signatures
- app Token验证流程
- MySQL中单句实现无限层次父子关系查询
- Go Flag包使用及解析
热门文章
- 2020年AJ超级配乐库音频配乐资源2020.VOL-09更新100首Audio Jungle音乐素材包
- oracle税务运维脚本练习,荣欣Linux运维+Oracle DBA初级+高级全套实战训练
- 正交设计 python算法_Python实现正交实验法-高级篇
- html网页设计一个简单的用户登录页面
- google浏览器显示Adobe Flash player过期的处理方法
- ZYNQ - 嵌入式Linux开发 -10- ZYNQ启动流程分析
- uc浏览器、QQ浏览器的h5页面,点击分享按钮,分享到微信、qq、微博
- Vue报错:Error in v-on handler: “ReferenceError: regeneratorRuntime is not defined“
- Word 插入图片后不显示或显示不完整怎么办
- C# Microsoft.Office.Interop.Excel Could not load file Error