图像配准实现(matlab篇)
2015-06-30 22:44
183 查看
转自:http://bbs.csdn.net/topics/390975425
图像配准实现(matlab篇) [问题点数:40分]
这里主要讲解的是多模态或者说是多序列MRI图像配准。采用的图片是人体膝盖图。配准暂且分为五部 Step1. 下载图片 Step2. 初始配准(粗配准) Step3. 提高配准精度 Step4. 利用初始条件提高配准精度配准 Step5. 结果满意不满意,你说了算 下面一一详细说明以上几个步骤! 一,下载图片 这里采用的图片是matlab子带的两张MR膝盖图,“knee1.dcm” 作为参考图像,"knee2.dcm"为浮动图像! Plain Text code ? Plain Text code ? (1)‘falsecolor’ 字面意思理解就是伪彩色的意思了,其实就是把两幅图像的差异用色彩来表示,这个是默认的参数。 (2)‘blend’ 这是一种混合透明处理类型,技术文档的翻译是alpha blending,大家自己理解吧。 (3)‘diff’ 这是用灰度信息来表示亮度图像之间的差异,这是对应‘falsecolor’的一种方式。 (4)参数‘monotage’可以理解成‘蒙太奇’,这是一种视频剪辑的艺术手法,其实在这里我们理解成拼接的方法就可以了。 为什么在这里罗里吧嗦的说这么多的显示呢,大家知道"人靠衣装,美靠...."(就不多说了吧),总之就是一个好的视觉效果能给人以耳目一新的效果。 嗯嗯,这个就是蒙太奇的效果了, 这两个则分别是伪彩色,混合透明处理了,至于大家接受那个就要看自己的爱好了 说到了这里终于结束了这关没有意义的读图环节,请大家原谅我的无耻吧。 二,初始配准(粗配准) 初始配准就是大致的使图像对其,使其差别不要太明显,以方便下一步的精细配准环节。 函数imregconfig这在个环节可是主角,从名字上看就知道他要设置一些参数和方法了,其实他真正的作用是配置优化器和度量准则, Plain Text code ? 返回的参数optimizer是用于优化度量准则的优化算法,这里有 registration.optimizer.RegularStepGradientDescent 或者 registration.optimizer.OnePlusOneEvolutionary两种可供选择。 输出参数metric则是注明了度量两幅图片相似度的方法,提供了均方误差(registration.metric.MeanSquares)和互信息(registration.metric.MattesMutualInformation)两种供选择。 当然大家也可以根据结构扩充这两个参数。 到这里优化器和度量准别就已将做好了,是不是简单到没朋友。 要上大菜了,配准代码 Plain Text code ? ‘translation’ (x,y)坐标平移变换,不牵涉到旋转个尺度变换 ‘rigid’ 刚性变换(平移和旋转) ‘similarity’ 改变换包括了平移,旋转和尺度变换 ‘affine’ 在similarity的基础上加入了shear(图像的剪辑) 该图片就是粗配准的结果了,大家可以在右上角看到明显的不重合现象。 三,提高配准精度 粗配准的结果一般情况下达不到实际应用的要求,为此很有必要进一步提高精度,如果有对精度要求不高的朋友看到这里就可以结束了。 Plain Text code ? 在这里我们通过修改两个参数,观察对配准效果的改进: (1)改变优化器的步长已达到对更加精细的变换。 Plain Text code ? 貌似效果还是有点的啊,大家在看右上角的阴影好像不见了 (2)在(1)基础上改变最大迭代次数 Plain Text code ? 四,改变初始条件提高精度 这里的思想就像我们在做雕塑一样,假如我们要用石头雕一个人,首先我们可以大刀阔斧的把头部留出来,然后把脖子留的比头部更细,简单的说就是美女留出S轮廓,或者o型的(哈哈,对号入座就可以了),下一步精雕细琢的时候就会轻松很多,这里的初始条件就是先用简单的变换做出一个初始配准图像,然后以初始配准的结果作为输入做精细配准。 大致做法如下: Plain Text code ? Plain Text code ? 然后用imref2d限制变换后的图像与参考图像有相同的坐标分布 Plain Text code ? Plain Text code ? tformSimilarity.T= 1.0331 -0.1110 0 0.1110 1.0331 0 -51.1491 6.9891 1.0000 下面就是精配准的部分了: Plain Text code ? 进一步精细配准: 五,到这里就是你说了算了Deciding When Enough is Enough Plain Text code ? |
相关文章推荐
- Hough变换检测直线
- Matlab与微积分计算
- matlab注意事项
- 大矩阵的分块乘法及matlab实现
- matlab条形图绘制函数用法
- 利用MATLAB截取图片某个区域
- 听听函数,看看声音--Matlab的sound()函数
- Matlab求方差,均值,均方差,协方差的函数
- Matlab定义子函数
- matlab中各种距离计算方式
- 为什么要进行傅立叶变换,究竟有何意义?如何用MATLAB实现快速傅立叶变换?
- Matlab自定义函数
- 关于matlab中regionprops及BoundingBox用法,mark一下
- matlab 内存不足原因探究
- matlab数据精度
- matlab常用命令
- Ubuntu14.04 安装Matlab2013b
- Matlab 高斯 Chi方 右尾函数 Q函数
- matlab 文档背景去除
- matlab中如何使用外部工具箱