💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
微分同构对数恶魔算法(Diffeomorphic Demons Algorithm)是一种常用于图像配准的算法,特别适用于2D和3D图像的变形和配准问题。微分同构对数恶魔算法基于变形场模型,通过定义一个变形场来描述一个图像如何变形以与另一个图像对准。变形场是一个从参考图像到目标图像的映射,它描述了每个像素在配准过程中的位移。算法的核心在于通过优化来估计最佳的变形场。优化的目标是最小化两个图像之间的差异度量,例如最小化归一化互信息(Normalized Mutual Information)或最大化互相关系数(Cross-Correlation Coefficient)。恶魔力(Demons Force)定义了变形场中每个像素点的位移方向和大小。它基于图像间的灰度差异,使得在配准过程中图像更加一致。广泛应用于医学影像领域,如MRI、CT等图像的配准和分析。微分同构对数恶魔算法通过变形场的优化和恶魔力场的计算,实现了高效的2D和3D图像配准,是医学影像和科学研究中的重要工具之一。
📚2 运行结果
部分代码:
% Demons Registration
%
% Simple matlab code for 2D image registration using the diffeomorphic log-demons algorithm
% Code is provided in order to help the understanding of the Demons algorithm
function demons
figure(1); clf; colormap gray; set(gcf,'renderer','painter')
%% Parameters
niter = 250;
sigma_fluid = 2.0; % regularize update field
sigma_diffusion = 2.0; % regularize deformation field
sigma_i = 1.0; % weight on similarity term
sigma_x = 1.0; % weight on spatial uncertainties (maximal step)
nlevel = 3; % multiresolution
do_display = 1; % display iterations
%% Load fixed image
F = double(imread('data/lenag2.png')); % fixed image
%F = double(imread('statue-rio.png')); % fixed image
F = imresize(F,0.5);
F = 256*(F-min(F(:)))/range(F(:)); % normalize intensities
%% Load moving image
M = double(imread('data/lenag1.png')); % moving image
%M = double(imread('statue-rio-deformed.png')); % moving image
M = imresize(M,0.5);
M = 256*(M-min(M(:)))/range(M(:)); % normalize intensities
% Translate
%shift = 3; tmp = zeros(size(M)); tmp((1+shift):end,:) = M(1:(end-shift),:); M = tmp;
%% Create random moving image
%[F,sx0,sy0] = randomdeform(F,50,5);
%figure(5); showvector(sx0,sy0,4,3,lim); drawnow;
if nlevel == 1
%% Register
disp(['Register...']);
opt = struct('niter',niter, 'sigma_fluid',sigma_fluid, 'sigma_diffusion',sigma_diffusion, 'sigma_i',sigma_i, 'sigma_x',sigma_x, 'do_display',do_display, 'do_plotenergy',1);
[Mp,sx,sy,vx,vy] = register(F,M,opt);
else
%% Multiresolution
vx = zeros(size(M)); % deformation field
vy = zeros(size(M));
for k=nlevel:-1:1
disp(['Register level: ' num2str(k) '...']);
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]金炎君,刘海萍,倪双静,等.基于轮廓曲率的工件图像配准方法[J/OL].机电工程:1-15[2024-06-15].http://kns.cnki.net/kcms/detail/33.1088.TH.20240530.1134.002.html.
[2]易见兵,陈曦,曹锋,等.窗口自适应的大形变肺图像配准网络设计[J/OL].光学学报:1-24[2024-06-15].http://kns.cnki.net/kcms/detail/31.1252.O4.20240529.0843.038.html.