1.引言:

图像的几何变换是将一幅图像中的坐标映射到另一幅图片中的新坐标位置,它不改变图像的像素值,只改变像素所在的几何位置,使原图像按照需要产生位置、形状和大小的变换。

2.图像的平移:

将一幅图片上的所有点都按照给定的偏移量在水平方向沿着X轴,在垂直方向沿着Y轴移动,平移后的大小相同。

imtranslate函数平移图像

>> I = imread('E:\persional\matlab\images\Fig0809(a).bmp');
se = imtranslate(I, [50 140]);%将一个平面结构化元素分别向下和向右移动
subplot(121);imshow(I), title('原图')
subplot(122), imshow(se), title('移动后的图像');

imdilate膨胀函数平移图像

I = imread('E:\persional\matlab\images\Fig0809(a).bmp');
se = translate(strel(1), [50 140]);%将一个平面结构化元素分别向下和向右移动
J = imdilate(I,se);%利用膨胀函数平移图像
subplot(121);imshow(I), title('原图')
subplot(122), imshow(J), title('移动后的图像');

图像的滤镜:

图像的镜像分为两种垂直镜像和水平镜像
水平镜像:(x0,y0) ------ x1 = M - x0 y1 = y0;
垂直水平:(x0,y0) ------ x1 = x0 y1 = M - y0;

Z = flipdim():

close all;clear all;clc;
I=imread('E:\persional\matlab\images\Fig0809(a).bmp');
J1=flipdim(I,1);
J2=flipdim(I,2);
J3=flipdim(I,3);
set(0,'defaultFigurePosition',[100,100,1000,500]);%修改图形图像位置的默认设置
//set(0,'defaultFigureColor',[1 1 1])%修改图形背景颜色的设置
figure,
subplot(1,2,1),imshow(I) ;
subplot(1,2,2),imshow(J1);
figure,
subplot(1,2,1),imshow(J2);
subplot(1,2,2),imshow(J3);


图像的放缩

图像放缩是指给定的图像在X轴方向按比例缩放fx,在Y轴方向按比例缩放fy,图像比例缩放会改变原始图像像素间的相对位置,产生几何畸变。
1.B = imresize(A,m): m>1,放大;0<m<1,缩小;
2.B = imresize(A,[mrows,ncols]): [mrows,ncols]说明缩放后的行和列,如果位NaN,函数会按照输入图像A丛横比生成ncols或mrows的数;
3.[B,newmap] = (A,map,m): m按比例缩放;也可以是 [mrows,ncols];
4.[…] = imresize(…,method): method可选:
插值方法的类型:'nearest’最近邻插值;'bilinear’双线性插值、'bicubic’双三次插值
插值的核函数:'box’Box 型核函数、'triangle’三角型核函数('bicubic’相同)、'Cubic’立方体核函数(‘bicubic相同’)、'lanczos2’Lanczos-2核函数和’lanczos3’Lanczos-3核函数。
5.[…] = imreadsize(…,method):通过设置paramter的值value,控制图像的缩放特性,如下图所示:

close all;clear all;clc;
[X,map] = imread('E:\persional\matlab\images\Fig0809(a).bmp');
J1 = imresize(X,0.25);
J2 = imresize(X,3.5);
J3 = imresize(X,[64,40]);%放缩后的图像行列比例
J4 = imresize(X,[64,NaN]);
J5 = imresize(X,1.6,'bilinear');%设置插值法
J6 = imresize(X,1.6,'triangle');
figure,
subplot(221),imshow(I);
subplot(222),imshow(J1);
subplot(223),imshow(I1)
subplot(224),imshow(J2)

图像的转置:

图像的转置即行列坐标互换,例如:点(x0,y0)转换后的新坐标点(x1,y1)数学表达式:x1 = x0 ; y1 = y0;进行图像转置后,大小会发生改变:

function J = transp(I)
[M,N,G] = size(I);
I = im2double(I);
J = ones(N,M,G);
for i = 1:Mfor j = 1:NJ(j,i,:) = I(i,j,:);end
end
%调用函数
close all;clear all;clc;
I=imread('E:\persional\matlab\images\Fig0809(a).bmp');
J1=transp(I);
set(0,'defaultFigurePosition',[100,100,1000,500]);%修改图形图像位置的默认设置
set(0,'defaultFigureColor',[1 1 1])%修改图形背景颜色的设置
figure,
subplot(221),imshow(I);
subplot(222),imshow(J1);

图像的旋转:

图像的旋转变换属于图像的位置变换,通常以图像的中心为原点,将图像上的所有像素都旋转一个相同的角度。旋转后,图像的大小一般会改变。

B = imrotate(A,angle,method,bbox) — angle:角度;method:'nearest’最近邻插值;'bilinear’双线性插值、'bicubic’双三次插值;bbox:返回图像的大小(‘crop’,‘loose’)

>> I=imread('E:\persional\matlab\images\Fig0809(a).bmp');
>> J1 = imrotate(I,30);
>> J2 = imrotate(I,-30);
>> J3 = imrotate(I,30,'bicubic','crop');
>> J4 = imrotate(I,-30,'bicubic','loose');
>> figure,
>> subplot(221),imshow(J1);
>> subplot(222),imshow(J2);
>> subplot(223),imshow(J3);
>> subplot(224),imshow(J4);

图像的剪切:

对图像部分感兴趣的地方进行剪切;
X1 = imcrop(I,[xmin,ymin,width,height])
[X1,map] = (…)
X1 = imcrop(I,map)
[X1,Y1,[xmin,ymin,width,height]] = imcrop(…)

>>[A,map]=imread('E:\persional\matlab\images\Fig0809(a).bmp');
>> rect = [75 68 130 112];
>> X1 = imcrop(A,rect);
>> figure,
>> subplot,imshow(121),imshow(X1);>>[A,rect] = imcrop(A);%选择性剪切
>>subplot,imshow(121),imshow(A);

图像的变换:

可以自定义多种类型的空间变换(平移、缩放、旋转、剪切)、投影变换。

B = imtransform(A,TFORM,INTERP)

TFORM:通过maketform()返回;
INTERP:'nearest’最近邻插值;'bilinear’双线性插值、'bicubic’双三次插值。

设原图像f(x,y)和变换后图像g(x’,y’)
(x’,y’) = T(x,y)
x’ = a0x+a1x+a2;
y’ = b0y+b1y+b2;
写成3x3矩阵进行结构体设计;

>> [A,map]=imread('E:\persional\matlab\images\Fig0809(a).bmp');
>> Ta = maketform('affine',[cosd(30),-sind(30),0;sind(30),cosd(30) 0;0 0 1])%旋转结构体
>> Ia = imtransform(I,Ta);
>> Tb = maketform('affine',[5 0 0;0 10.5 0;0 0 1]);%平移结构体
>> Ib = imtransform(I,Tb);
>> xform = [0.5 0 0;0 0.5 0;0 0 1];
>> Tc = maketform('affine',xform);%缩放结构体
>>> Ic = imtransform(I,Tc,'XData',[1 (size(I,2)+xform(3,1))],'YData',[1 size(I,1)+xform(3,2)],'FillValues',255);
>> Td = maketform('affine',[1 4 0;2 1 0;0 0 1]);%剪切结构体
>> Id = imtransform(I,Td,'FillValues',255);
>>> figure,
>> subplot(221),imshow(Ia),axis on;
>> subplot(222),imshow(Ib),axis on;
>> subplot(223),imshow(Ic),axis on;
>> subplot(224),imshow(Id),axis on;

图像的几何变换(matlab)相关推荐

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

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

  2. 图像处理之图像的几何变换

    一.前言 图像的几何变换是将一幅图像中的坐标映射到另外一幅图像中的新坐标位置,它不改变图像的像素值,只是改变像素所在的几何位置,使原始图像按照需要产生位置.形状和大小的变化.本文主要介绍图像的基本几何 ...

  3. 数字图像处理——图像的几何变换

         这次学习图像的 几何变换 ,主要有以下内容: ·图像的平移变换 ·图像的镜像变换 ·图像的转置变换 ·图像的旋转变换 ·图像的缩放 1.图像的平移变换 在进行书写matlab代码之前,先来了 ...

  4. 图像转置的MATLAB和OpenCV源码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 注意,图像转置和图像旋转是两回事,图像转置只是把 ...

  5. matlab图像相加例子,MATLAB图像处理例子

    MATLAB图像处理例子 clc;clear all;close all; a = imread( railway_05.jpg ); b = rgb2gray(a); c = im2bw(b,240 ...

  6. 亮度均匀性 matlab,求:亮度保持的夜景图像直方图均衡算法 matlab程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 求:亮度保持的夜景图像直方图均衡算法 matlab程序 我是大四学生,最近在做一个论文,头疼死了,不知道这个论文的程序怎么写.这里是matlab论坛 我想 ...

  7. 图像处理 --- 三、图像变换 3.2 图像的几何变换

    2. 图像的几何变换 图像几何变换是指用数学建模的方法来描述图像位置.大小.形状等变化.图像几何变换是图像处理及分析的基础. 图像的几何变换包括:图像平移.比例缩放.旋转和图像插值. 图像几何变换的实 ...

  8. youcans 的 OpenCV 学习课—5.图像的几何变换

    youcans 的 OpenCV 学习课-5.图像的几何变换 本系列面向 Python 小白,从零开始实战解说 OpenCV 项目实战. 几何变换是指对图像的位置.大小.形状.投影进行变换,是将图像从 ...

  9. 运用滤波反投影的方法对图像进行重建matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 直接由正弦图得到反投影图像,会存在严重的模糊,这是早期 CT 系统所存在的问题.傅立叶中心切 ...

最新文章

  1. Oracle之 11gR2 RAC 修改监听器端口号的步骤
  2. 边缘计算云原生开源方案选型比较
  3. PMcaff杂谈社第一期:红包那些事儿
  4. 退出循环:break 跳过当前的这次循环,直接开始下一次循环:continue
  5. JAVA判断各种类型数据是否为空(亲测)
  6. 1536299 2013 - PPR item change - Genil mode
  7. 休眠后gpio状态_STM32中GPIO的8种工作模式总结
  8. button的格式的问题
  9. Javascript第二章中for循环第四课
  10. python可以处理哪些文件_Python(文件处理)
  11. 【python基础】--常用数据结构
  12. a的n次方的快速算法及大数相乘
  13. 机器学习数据不平衡问题及其解决方法
  14. Flash Player将成历史,现行Flash游戏解决方案
  15. WBS(Work Breakdown Structure)
  16. python求平均值,python 怎么求平均值
  17. 手把手教你 win10 安装Paddlepaddle-GPU
  18. 最全的mysql常用语句大全
  19. react-router-middleware-plus开源啦 | 基于react-router v6的零成本式路由权限解决方案
  20. (手机自适应)成人高考自考资讯网源码 织梦dedecms模板

热门文章

  1. 电脑无法正常关机?点了关机又会自动重启
  2. java计算机毕业设计校园代办业务系统源码+数据库+系统+lw文档+mybatis+运行部署
  3. 1.6w 星开源项目,但作者月薪却不到 5K
  4. Oracle 物化视图(MV)详解
  5. 我承受不住那么多的爱
  6. BoggleSolver 普林斯顿 算法第四版
  7. 再放QQ微博邀请码(4)-2010/06/04
  8. HTML期末大作业 web网页设计实例作业 ——中国水墨风书画艺术网站(12页)HTML DⅣV+ CSSJS
  9. 【示例详解】AutoCAD处理控件Aspose.CAD8月新更!支持加载大型DWG文件
  10. 20行Python代码实现图形化翻译工具(附源码和成品下载地址)