根据经纬度坐标配准_3D Slicer中基于标志点的交互式区域配准

本文介绍了3D Slicer中使用Landmark Registration进行脊椎配准的步骤,包括加载图像、启动Landmark Registration、添加标志点等。通过手动指定标志点,实现对脊椎的局部配准,强调了该方法的可控性和在特定情况下的实用性。文章还探讨了不同配准类型(Rigid, Similarity, Affine, ThinPlate)的自由度和适用场景,提供了一种逐步递增自由度的配准策略。" 111610344,9396188,集成华为恶意URL检测,提升App安全性,"['Android', 'HMS', '安全检测', 'URLCheck', 'App开发']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

447efd7c26cee94be6d003adb9bf91d7.png

欢迎微信搜索关注公众号“医影杂记”。

虽然起了一个标准的“关键词串烧型“科研论文标题,不过今天要写的不是科研论文,只是想快速简单分享3D Slicer中一个配准功能的使用。

事情的起因是上周后台有位同学问,在3D Slicer中怎么实现脊椎的配准。这个我也没做过,但感觉是一个很有意思的问题。

假定要配准的图像是包含从颈椎到腰椎的躯干部分CT影像,配准的目标是把这个范围内的脊椎尽可能整体对齐。

当然这里有个问题,临床中是否需要这样的脊椎整体配准?说实话,我也不知道。但今天暂且用脊椎配准作为一个例子,来看看怎么使用3D Slicer中提供的基于标志点的交互式配准工具。也就是先把脊椎配准作为一个假想的钉子,重点来介绍标志点交互配准这把锤子。不管将来是否会遇到非这把锤子不可的钉子,在工具箱中多准备一把有特色的锤子,总是好的。

配准问题,其实属于医学图像处理中经常遇到的一类”钉子“,3D Slicer中也相应提供了多把锤子,也就是缺省集成了多种配准工具。大家可以看一眼下图。

76847d3d465a65bedaeddc4d7bad127c.png

没来的及去研究其他的配准工具,这一次基本上是上来就直接选择了Landmark Registration,拿起来就用。折腾一番,上手之后,发现这个工具还比较好用,基本能够完成预期的目标。这里的预期目标就是,可以把前后两次检查中感兴趣的局部区域,比较好的配准。这里的重点在于“局部”,也就是要配准的目标,在图像中只占很小的一部分区域。脊椎在整个人体躯干部中,所占的空间比例是很小的。这就决定了,不适合采用基于整体灰度信息的配准算法,而比较适合采用基于感兴趣区域相关的标志点对齐的配准算法。也就是通过标志点来控制哪里是感兴趣区域。这里的标志点,可以通过分割或特征点提取算法来自动生成,也可以人工直接指定生成。

此外,脊椎整体细长,且存在随人体姿态改变的弯曲度,其实是比较难配准的。如果能够手工标记点方式配准,也可以充分说明手工标记点这个工具的实用性。

咱们这次就采用最简单的方法,直接手工指定来生成。手工指定的方法,科技含量确实有点低,但优点在于可控性强。如果只是要配准1~2例数据,并且对配准的要求比较高,手工指定往往是最可靠的方法。


接下来进入正题,看看“Landmark Registration”这个工具如何使用。

先直接画一下重点吧。Landmark Registration这个工具的核心用法,就是在固定图像和浮动图像之间逐对手工添加对应标志点,添加的过程中可以随时切换选择不同的空间变形方法,同时注意观察固定图像和变形后的浮动图像的叠加实时显示图像,来评估当前的配准效果。

在这个核心用法的基础上,还有一些小的技巧,咱们放在最后来说。先来看如何逐步操作,实现配准。

加载图像

这里省去图像加载的步骤,假定大家都已经加载了需要配准的图像。注意,需要有2个Volume数据,或者是两组能够生成三维Volume的扫描序列。一般来讲,这2个Volume或序列,是同一患者的大致相同身体部位,在不同时期接受的两次扫描,可以是相同类型的扫描设备,比如两个都是CT,也可以是不同类型的扫描设备,比如一个是CT、一个是MR。

因为手边正好有同一患者的两次CT扫描数据,所以咱们这里选择两个CT Volumue的配准,作为例子。

数据加载进来后,为了便于区分,咱们进入Data模块,把两个Volume更改一下名称。选择检查时间较早的Volume,改名为“Base Vol";选择检查时间较晚的Volume,改名为“FollowUp Vol”。操作要点如下图。

5307cf1bc4a490decf712277e1800af6.png

启动Landmark Registration

加载好数据,改好名称之后,就可与启动Landmark Registration模块,开始配准了。启动的操作路径如下图。

035073a7c3e6ab3e1768f9b99921e418.png

启动后,会提示指定要配准的固定图像和浮动图像,如下图所示。固定图像(Fixed Volume)指的是在配准过程中,保持不动的图像;而浮动图像(Moving Volume)就是那个在配准过程中,动来动去的图像。整个配准过程,其实就是一个始终不动,另外一个不断移动,直到找到最佳匹配位置。

be29b06e29aafd9c117a2a8511a6b6b3.png

指定好固定和浮动图像之后,3D Slicer会非常贴心的自动把图像显示布局切换为3x3布局,如下图所示。

f1b7d0ee4f2014f03561dff258e0815e.png

注意观察每个图像窗口的左下角,可以看出来,第一行显示的是固定图像3个正交切面;第二行是浮动图像3个正交切面;第三行则是固定和浮动图像以半透明方式叠加显示。从第三行可以看出,在固定和浮动图像的初始配准位置上,脊椎存在比较明显的偏差,也就是没对齐。

接下来就逐个添加标志点,来对齐脊椎。但在添加标志点之前,可以根据需要,调整图像显示的灰窗设置,调整到一个最有利于观察感兴趣器官或区域的灰窗。选对灰窗,可以让后续的“肉眼找点”操作更快更准哦。操作见下图。

0f6f9eed6a1622a8f7eee9b0e41c3d58.png

添加标志点

添加标志点之前,建议先按照下图进行操作,尤其是先按照下图中的第一步和第二步,选择参数设置。第一步和第二步的基本想法是,先从一个最基础的、也是最好调整、不容易出错的空间变形方式开始,先把两套数据基本对齐了,再切换到更复杂、更精准的空间变形方式上,取得更好的配准效果。关于选项1和2的具体含义,咱们后面再细说。

6b8fa8ecbf30d2c1e854de1cf13c5b0b.png

接下来,就是挨个添加标志点了。折腾一通下来,有下面几条心得,“砖”也好,“玉”也罢,先抛出来再说。

  1. 最好的方法,就是上手试一下。所以,后面几条,不看也罢。
  2. 相信我,一定要先做上图中的第一步和第二步。不然,下面的步骤添加标志点时,很容易找不到标志点。
  3. 添加每个标志点之前,都需要先点击上图箭头3指向的“Add"按钮。也就是点一下按钮,在图像中点击一下鼠标左键,添加一对标志点。
  4. 是的,每次添加的是一对点,固定图像和浮动图像中各一个点。采用黄色米字线的形式,显示在3x3布局的每一个窗口。可以分别在第一行固定图像和第二行浮动图像中,拖拽调整标志点位置,第三行会实时更新,显示调整后的配准效果。
  5. 推荐随时勾选和取消勾选左侧的“Flicker"框,通过观察第三行的交替切换显示窗口,来确定固定和浮动图像的当前对齐程度。(操作参见第12条下方的图片)
  6. 建议通过上述步骤5,先找到固定和浮动图像在初始状态下,最接近对齐的位置,作为添加的第一个标志点。也就是先抛下一个“锚点”,为后续添加标志点,定个大致的基调。别一上来就跑偏。
  7. 接下来的操作,基本就是循环重复上述步骤3~5,直至达到基本满意的配准(对齐)效果。
  8. 基本满意后,可以依次尝试在“Linear Registration"子面板中,选择”Similarity“和Affine“,看看能否取得更好的效果。也就是,切换到更复杂、自由度更大的变形方式,看看效果如何。
  9. 如果切换变形方式后,图像对齐情况反而变差了,别着急,试试找个偏差最大的位置,添加标志点。一般能把跑偏的图像纠正回来。
  10. 上面都是在“Registration Type"为”Affine Registration"的前提下,来操作的。如果感觉效果已经差不多了,可以切换到“Registration Type"中的”ThinPlate Registration“再试试。
  11. 切换到“ThinPlate Registration"后,图像的对齐可能反而一下子乱掉。没关系,参考上面第9步。
  12. 感觉对于很多配准情况,不一定需要使用“ThinPlate Registration"。Affine Registration可能就够了。

下面的图片说明了如何打开Flicker开关,观察图像对齐效果。

80a41af6bf83e56b9566472e800c260b.png

可能有些同学看到上面一连串的“Rigid/Similarity/Affine/ThinePlate Registraton",不太不了解,简单解释一下。不过为了便于理解,下面的解释牺牲了严谨性,大家看个意思就行。

  • Rigid Registartion,刚体配准,就是浮动图像只做左右(X轴)、前后(Y轴)、上下(Z轴)3个方向(坐标轴)的平移,以及绕3个坐标轴的旋转。用数学的话说,有6个自由度。打个比方,假如接受断层扫描的是个木头人,没有呼吸或扭头等这些局部动作变形,也没有长高或长胖,那么,刚体配准就能够把这个木头人前后两次扫描的三维图像完全对齐。
  • Similarity Registration,相似配准,就是在刚体配准的基础上,再增加沿3个坐标轴的比例(缩放)变化。用数学的话说,有9个自由度。打个比方,假如上面接受检查的木头人,在前后两次检查之间,长高或变胖了,那么变形时允许在纵向或横向缩放,就能够更好的把前后两次扫描对齐。
  • Affine Registration,仿射配准,就是在相似配准的基础上,再增加允许3个坐标轴之间的夹角变化,也就是X、Y、Z轴之间的夹角可以不是直角,可以变化。这样,就一共有12个自由度。打个非常不严谨的比方,假如木头人长歪了,那么变形时允许X、Y、Z轴之间夹角变化,就能取得更好的配准效果。
  • ThinPlate Registration,薄板样条配准。这个嘛,不从数学上解释了,打个非常非常不严谨的比方,把上面的木头人换成橡皮人,然后在前面仿射配准的基础上,再额外对橡皮人这里拉一下、那里扯一下,来取得更好的配准效果。至于自由度嘛,如果你拉扯的地方越多,自由度就越大。这里的拉扯,其实就对应前面咱们添加的“标志点”。

其实,大家基本只需要知道上面4种配准,自由度依次增加,就基本够了。说到这里,扯一句大家估计都知道的“哲学”,自由(度)不是越多越好,而是够用就好。这句话放在太大范围上,会有很多争议;但在解决理工科问题上,基本是“金科玉律”。不服的,必然吃亏。

有一点非常重要,3D Slicer的Landmark Registration提供上面4种配准选项时,采用了与上面咱们的讲解相类似的实现方式,高自由度的配准方式都是在前面低自由度配准方式的基础上进行的。也就是说,当你选择Similarity Registration时,软件会先做Rigid Registration,然后再做Similarity Registration。其余,以此类推。

所以,在前面的操作中,推荐大家先选择自由度最低,但最简单、最稳定的配准方式开始,逐步递进。而且,只要已经达到了自己满意的配准效果,完全没有必要强求更复杂的配准方式。

道理扯了一堆,实际效果到底如何。来看图片。先看下面的未配准之前的对比图片。这里的对比就是采用的前面说的Flicker显示方式。

2da84924dc960d503a2525ca75f923a7.gif

再看配准之后的对比图片。大家注意,咱们只关心脊椎的配准,其他区域不关心啊。这个是“局部配准”的中心思想。

b67bbc088bb2ebb7dc5010a7696931ef.gif

选择最能体现脊椎整体的矢状面,在两个不同层面截图,单独看一下。

e3cbedf934736e1b223a47e5bd4de213.gif

1e80453b5b280fe015bbc837548d1ec5.gif

至于标志点的具体添加位置,和具体病例密切相关,所以这里不具体介绍了。总体上,上面的数据添加了10对标志点,而选择Affine Registration还是ThinPlate Registrationd对配准效果影响不大。需要这么多对标志点的主要原因,是因为脊椎在前后两次扫描中,弯曲程度不同。


好了,关于“Landmark Registration"这边锤子,就介绍到这里,希望能帮助大家丰富自己的日常工具箱。感谢提出这个问题的同学。也欢迎大家通过留言方式,多交流,互相启发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值