MATLAB初学——Matlab实现图像的几何变换

1.图像比例缩放变换

主要函数:imresize()
实现代码

image = imread('test.bmp');
image_1 = imresize(image,0.5); %比例缩小0.5倍
image_2 = imresize(image,[320,410]); %非比例缩小(指定行数和列数)
image_3 = imresize(image,2); %比例放大1倍
figure(1)
imshow(image);
title('原图');
figure(2)
imshow(image_1);
title('比例缩小0.5倍');
figure(3)
imshow(image_2);
title('非比例缩小');
figure(4)
imshow(image_3);
title('比例放大');

2.图像平移变换

主要函数:translate(); imdilate(); imtranslate()
实现代码

image = imread('test.bmp');
se = translate(strel(1), [150 150]); %将一个平面结构化元素分别向下和向右移动150个位置
image_1 = imdilate(image,se); %利用膨胀函数平移图像
image_2 = imtranslate(image,[150,150],'OutputView','full'); %平移后保持图像完整
figure(1)
imshow(image);
title('原图');
figure(2)
imshow(image_1);
title('平移后的图像');
figure(3)
imshow(image_2);
title('平移后不被截去的图像');

3.图像镜像变换

主要函数:maketform(); imtransform();
实现代码

image = imread('test.bmp');
[height,width,dim] = size(image);
tform = maketform('affine',[-1 0 0;0 1 0;width 0 1]);
image_1 = imtransform(image,tform,'nearest');
tform2 = maketform('affine',[1 0 0;0 -1 0;0 height 1]);
image_2 = imtransform(image,tform2,'nearest');
subplot(1,3,1); imshow(image);  title('原图像');
subplot(1,3,2); imshow(image_1);  title('水平镜像');
subplot(1,3,3);  imshow(image_2);  title('垂直镜像');

4.图像旋转变换

主要函数:imrotate()
实现代码

image = imread('test.bmp');
image_1 = imrotate(image,40,'nearest','crop'); %最近邻插值
image_2 = imrotate(image,40,'nearest','loose');
figure; imshow(image); title('原图像');
figure; imshow(image_1); title('旋转后图像');
figure; imshow(image_2); title('旋转后不被截去图像');

5.图像绕某点(非中心点)旋转

自定义函数,构建变换矩阵,与原图像矩阵相乘,实现先平移后旋转功能
实现代码

function rotate(img)
[m,n] = size(img);
M = ones(m,n);
T1 = [1,0,0;0,1,0;-66,-66,1];  %平移至点P(66,66)
T2 = [cosd(60),-sind(60),0;sind(60),cosd(60),0;0,0,1]; %逆时针旋转60°
T =T2*T1;  %变换矩阵
for i=1:mfor j=1:np = floor([i,j,1]*T);if (p(1)<=m)&&(p(1)>0)&&(p(2)<=n)&&(p(2)>0) %限制范围 M(i,j) = img(p(1),p(2));   else M(i,j) = 0;  endend
end
figure; imshow(M,[]); title('绕点P逆时针旋转60°');image = imread('test.bmp');
image_1 = rgb2gray(image);
figure
subimage(image_1);
title('原图');
rotate(image_1)

Matlab 图像几何变换相关推荐

  1. matlab图像的错切变换,matlab 图像几何变换+答案

    实验四:图像几何变换(编程报告) 一.实验目的 (1)学习几种常见的图像几何变换,并通过实验体会几何变换的效果: (2)掌握图像平移.剪切.缩放.旋转.镜像.错切等几何变换的算法原理及编 程实现 (3 ...

  2. 数字图像处理:图像几何变换(Matlab实现几何变换+原理解析

    图像几何变换 自己手动实现几何变换和调用内置函数实现几何变换的区别 1.代码实现 xianxing.m % 读入图片 init = imread('20161117110940335.png'); i ...

  3. matlab平面图形的几何变换,matlab图像的几何变换

    2. 了解平移.伸缩.对称.旋转等变换. 3. 学习掌握 MATLAB 软件有 实验报告 课程名称:数学实验 实验名称:平面图形的几何变换 指导教师: 实验目的.要求: 1. ...... Matla ...

  4. Matlab图像的几何变换之图像缩放

    Matlab图像缩放 Matlab实现函数代码如下: clc I=rgb2gray(imread('Campus-scenery2sk.JPG')); figure,imshow(I); title( ...

  5. 图像算法二:【图像几何变换】平移、镜像、转置、缩放、旋转、插值

    作为一个强大的科学计算软件,MATLAB广泛运用于较多领域,以其简单的编程风格著称.这篇文章便通过matlab语言来讲述如何进行图像的各种几何变换. 图像几何变换又称为图像空间变换,它是将一幅图像中的 ...

  6. [MATLAB] 图像的插值算法1:MATLAB中的插值函数及其原理

    MATLAB图像插值算法文章集: 插值函数及其原理 https://blog.csdn.net/Effend/article/details/82870144 最近邻插值 https://blog.c ...

  7. MATLAB--数字图像处理 图像几何变换

    一.实验名称 图像的几何变换 二.实验目的 1.熟悉MATLAB软件的使用. 2.掌握图像几何变换的原理及数学运算. 3.于MATLAB环境下编程实现对图片不同的几何变换. 三.实验内容 1.将图像绕 ...

  8. 图像平移配准matlab,(MATLAB应用图像处理)第6章MATLAB图像配准.ppt

    第6章 MATLAB图像配准 6.1 图像配准概述 6.1.1 图像配准定义 图像配准是对从不同传感器.不同时间.不同视点所获得的两幅或多幅图像进行最佳匹配,以达到空间匹配和叠加目的的处理过程.本质上 ...

  9. C语言实现bmp图像几何变换(移动,旋转,镜像,转置,缩放)

    C语言实现bmp图像几何变换(移动,旋转,镜像,转置,缩放) 移动 旋转 镜像 转置 缩放 自定义结构及函数如下: #define pi 3.1415926 typedef struct {unsig ...

最新文章

  1. android fragment activity 交互,Android基础之Fragment与Activity交互详解
  2. Sublime 快捷键及使用技巧
  3. 数据结构:基数排序(Radix sort)
  4. oracle和mysql文件怎么打开_Oracle vs Mysql--架构、sql查询执行流程及SQL解析顺序区别说明-sql文件怎么打开...
  5. 一起学nRF51xx 1 - GPIO
  6. Module not found: Error: Can't resolve 'less-loader' in 'E:\NodeDemo\vue_assistant_lsp'
  7. VTK:图片之ExtractComponents
  8. 买书(信息学奥数一本通-T1293)
  9. 图论算法在机试实现中的一些技巧和陷阱
  10. $Django 聚合函数、分组查询、F,Q查询、orm字段以及参数
  11. clone repository in git shell under windows
  12. 温习php一(apache和php的配置)
  13. 解决element-ui中表格行点击事件和表格单元格点击事件冲突的问题
  14. Linux-----进程获得进程号 获得父进程号 获得进程组号 getpid getppid getpgid
  15. 13个Excel动图小技巧,快速提高工作效率?建议收藏!
  16. sql 2005 数据库升级2008 数据库 和2005 数据附加2008数据备份文件
  17. 【Linux学习】vim编辑器的使用
  18. 金蝶K3数据库表名对应及表说明
  19. 2-5暴力破解防范措施和防范误区
  20. 由课堂思考生活(作者:张子逸)

热门文章

  1. 【Word】论文的章标题以汉字编号,图、表以数字编号的实现
  2. 【Java】高效处理字符串中的标点符号
  3. 对C51单片机的初步认识
  4. Git 远程篇之查看远程仓库信息
  5. 最强nba体验服显示服务器正在停机,最强NBA体验服
  6. JavaSE学习笔记(十)IO流_part2
  7. 全球通胀对IT领域的影响
  8. 苹果、google、微软的那些事(iPhone)
  9. Win7安全模式卡在ClassPNP sys位置解决办法之一
  10. Codeforces Round #578 (Div. 2) 训练总结及题解