python网格插值站点_在python中,在二维零网格上两点之间插值一条值线

TLDR:

在2d numpy数组中找到2个点后,如何在0数组中在它们之间插值一条1行?在

上下文:

目前我正在尝试从二值化的医学图像数据(0和1)对一个3d数组执行2d操作。最终目标是在填充体素/像素(即第一个和最后一个实例)的起点和终点之间添加一条1s的线。在

为此,我使用SimpleITK分割一行,然后将其转换为numpy数组。在其他示例之后,我编写了返回一组数组的函数,这些数组显示填充(1)个像素和空(0)个像素。在

从最早和最后一个实例中,我通过在所有点上加1来“填充”中间的点,然后用1替换2。我要做的是将这条线添加回2d数组,最终,添加回3d数组。在

我知道我有一个通过scipy.ndimage.map_坐标(np.转置(z) ,但我不知道如何将其应用于原始数组。在

在我看来,我可以简单地看到创建一个由0组成的2d数组,然后将其简单地添加到原来的2d数组中。尽管如此,我还是不知道如何将直线插值到二维数组中,然后再插值到三维数组中。想要先在二维环境下工作是因为这些阵列可以非常大。任何帮助都将不胜感激。在import numpy as np

import scipy

import matplotlib.pyplot as plt

import simpleITK as sitk

from timeit import default_timer as timer

#Functions used are shown below

#Read in a CT scan using SimpleITK

ctscan = sitk.ReadImage("example.mhd")

#Extract a slice along the Z axis (Simple ITK uses x, y, z indexing)

z = ctscan[:,:,150:151]

#Convert the slice to a numpy array, which is then z, y, x indexing

z = sitk.GetArrayFromImage(z)

#Drop the 3rd dimension to view in matplotlib

z = z[0, :, :]

plt.imshow(z)

#Get the

你可能感兴趣的:(python网格插值站点)