网站首页 > 技术文章 正文
在MATLAB数字图像处理工具箱中,提供了实现图像空间变换的函数。空间变换包括前面所介绍的可用数学函数表达的简单变换(如平移、拉伸等仿射变换)和依赖实际图像而不易用函数形式描述的复杂变换(如对畸变图像作校正)。
其中,仿射变换可以理解为:
对坐标进行缩放、旋转、平移后取得新坐标的值;
经过对坐标的缩放、旋转、平移后原坐标在新坐标领域中的值。
投影变换则是表示将原图像像素点的坐标变换为另一种图像像素点的坐标的过程。
在对图像进行空间变换前,首先得创建一个空间变换结构。MATLAB提供了两种构建空间变换结构的函数,即cp2tform()和makecform()函数。
makecform()函数的调用格式如下:
T = maketform(transformtype,...)
T = maketform('affine',A)
T = maketform('affine',U,X)
T = maketform('projective',A)
T = maketform('projective',U,X)
T = maketform('custom', NDIMS_IN, NDIMS_OUT, FORWARD_FCN, INVERSE_FCN, TDATA)
T = maketform('box',tsize,LOW,HIGH)
T = maketform('box',INBOUNDS, OUTBOUNDS)
T = maketform('composite',T1,T2,...,TL)
T = maketform('composite', [T1 T2 ... TL])
参数transformtype的对应值可以为:
'affine':仿射变换形式,至少需要3对匹配点;
'projective':至少需要4对匹配点;
'cusyom':自定义函数变换;
'box':利用函数中的另外参数产生仿射变换结构;
'composite':该参数是实现多次调用tformfwd功能;
cp2tform()函数的调用格式如下:
T = cp2tform(movingPoints,fixedPoints, transformtype):参数movingPoints和fixedPoints对应元素构成一组匹配点;参数transformtype如上。
在完成变换空间的构建后,可以利用MATLAB提供的imtransform()函数实现图像的空间变换。该函数的调用格式如下:
B = imtransform(A,T):按照指定的二维变换结构T对图像A进行空间变换处理;
B = imtransform(A,T,interp):参数表示interp插值方法,例如最近邻插值('nearest')、双线性插值('bilinear')、立方核插值('cubic')等;
[B,xdata,ydata] = imtransform(...):返回X-Y空间上的输出图像B的位置;
[B,xdata,ydata] = imtransform(...,Name,Value):指定影响空间变换的参数。
上述空间变换的应用之一就是实现图像配准。图像配准指的是将同一场景的两幅或多幅图像进行对准。
这些图像的拍摄角度、拍摄方式或拍摄距离等有差异,导致这些图像的匹配点不在图像中的同一位置。这时,这些图像简单的叠加就不能够实现图像配准,所以需要找到这些图像坐标系之间的关系,从而实现图像配准。一般来说, 我们以基准图像为参照, 并通过一些基准点找到适当的空间变换关系,对输入图像进行相应的几何变换,从而实现它与基准图像在这些基准点位置上的对齐。
图像配准的基本过程为:读入图像数据——在两副图像上选择足够匹配点——选择配准算法,计算变换参数——变换图像。
下面,通过一个简单的实例来具体说明数字图像配准的过程:
代码:
显示效果:
三幅图像的大小有差异
图像配准结果
数字图像的空间变换比较复杂,图像配准算法也是多种多样,不是一篇文章就能说清楚的,所以本篇文章也只是比较浅显地说明图像配准的过程。图像配准算法里包含了多个领域的知识,绝不是一朝一夕就能弄懂的!
最后,感谢您的耐心阅读!
- 上一篇: 图像识别概述 图像识别的基本过程
- 下一篇: OPenCL 编程指南 中内存对象、缓冲区和子缓冲区概述
猜你喜欢
- 2024-10-12 亳州的芍药 亳州的芍药花开了吗
- 2024-10-12 豆角不能挨着什么种?冤家菜的禁忌,你一定要知道!
- 2024-10-12 复旦大学发布Grad-PU:任意尺度的点云上采样(附代码)
- 2024-10-12 “马上进服务区了,我没扛住,睡着了……”
- 2024-10-12 隣、横、側(そば)到底有什么区别?老王画圈圈告诉你!
- 2024-10-12 春季怎样选一款插排满足取暖与日常使用——绿联新国标排插初体验
- 2024-10-12 不,MS-DOS游戏并非宽屏的:纠正宽高比的建议
- 2024-10-12 真正实用的退化模型:ETH开源业内首个广义盲图像超分退化模型
- 2024-10-12 阿里巴巴Poster论文:处理多种退化类型的卷积超分辨率|CVPR 2018
- 2024-10-12 [OpenCV实战]44 使用OpenCV进行图像超分放大
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)