首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于图像配准的恶魔算法(用于虚拟人)

用于图像配准的恶魔算法(用于虚拟人)
EN

Stack Overflow用户
提问于 2014-02-05 12:10:07
回答 2查看 8.7K关注 0票数 2

我试图制作一个应用程序,将java中的2幅图像与opencv进行比较。在尝试了各种方法之后,我遇到了名为恶魔算法的算法。

在我看来,它似乎给出了不同的形象,通过对每个地方的一些转变。但我无法理解,因为我找到的推荐信对我来说太复杂了。

即使是恶魔算法也做不到我所需要的--我对学习它感兴趣。

谁能简单地解释一下恶魔算法中发生了什么,以及如何编写一个简单的代码来在2幅图像上使用该算法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-05 18:30:58

我可以概述一下可变形图像配准的一般算法,恶魔就是其中之一。

该算法由三个部分组成:相似度度量、变换模型和优化算法。

相似度度量用于计算像素/斑块之间基于像素/基于补丁的相似性。常用的相似性度量是SSD、单模态图像的归一化互相关,而多模态图像配准则采用互信息等信息论方法。

在可变形配准的情况下,它们通常有一个规则的网格叠加在图像上,并且通过求解一个优化问题使网格变形,从而使变换中施加的相似性度量和平滑惩罚最小化。在可变形配准中,一旦网格发生变形,就利用像素级网格的B-脊线插值来计算像素级的最终变换,从而使转换是平滑和连续的。

求解该优化问题的一般方法有两种,有些人采用离散优化,将其作为MRF优化问题来解决,而有些人则采用梯度下降,我认为恶魔使用梯度下降。

在基于MRF的方法中,一元代价是网格中每个节点变形的代价,是计算网格中各节点间的相似性,使得网格平滑的成对代价一般为potts/截短二次势,从而保证网格中相邻节点的位移几乎相同。一旦你有一元和成对的成本,你把它提供给一个MRF优化算法,在网格级别得到位移,然后使用B样条插值来计算像素级的位移。这个过程在几个尺度上以粗到细的方式重复,并且在每个尺度上运行多次(每次减少每个节点的位移)。

在基于梯度下降的方法中,用图像上的相似性度量和网格变换来表示问题,然后计算出它们所表示的能量函数的梯度。能量函数是用迭代梯度下降最小化的,但是这些方法会陷入局部极小值,而且速度很慢。

一些流行的方法是DROP,Elastix,itk提供了一些工具。

票数 8
EN

Stack Overflow用户

发布于 2014-07-21 03:40:33

如果你想了解更多有关可变形图像配准的算法,我会建议你去看看公平(指南),公平是Matlab的一个工具箱,所以你会有例子来理解这个理论。

http://www.cas.mcmaster.ca/~modersit/FAIR/

然后,如果您想要具体地看到某个恶魔示例,这里有另一个工具箱:

http://www.mathworks.es/matlabcentral/fileexchange/21451-multimodality-non-rigid-demon-algorithm-image-registration

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21576890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档