- 2019-3-17 更新
第一次写博客,写得不够好,还存在一些问题,而且仅提供了一个函数,没有测试代码,在此做一下纠正与补充。我之前写的绘制变形场是在PyTorch框架下的一个函数,对于其他框架的不够友好,这次我修改成使用numpy的函数,方便大家使用。
下面直接奉上修改后的代码:
import matplotlib.pyplot as plt
import numpy as np
def grid2contour(grid):
'''
grid--image_grid used to show deform field
type: numpy ndarray, shape: (h, w, 2), value range:(-1, 1)
'''
assert grid.ndim == 3
x = np.arange(-1, 1, 2/grid.shape[1])
y = np.arange(-1, 1, 2/grid.shape[0])
X, Y = np.meshgrid(x, y)
Z1 = grid[:,:,0] + 2#remove the dashed line
Z1 = Z1[::-1]#vertical flip
Z2 = grid[:,:,1] + 2
plt.figure()
plt.contour(X, Y, Z1, 15, colors='k')
plt.contour(X, Y, Z2, 15, colors='k')
plt.xticks(()), plt.yticks(())#remove x, y ticks
plt.title('deform field')
测试
在图像配准中,将规则的空间网格,加上预测出的变形场,得到采样网格,对浮动图像(moving image)进行采样,即得预测的配准图像。这一过程牵涉到了变形场的可视化,具体流程示意图如下:
1,规则网格可视化测试代码: