相关疑难解决方法(0)

在两个图像之间插值

我正在尝试在 Python 中的两个图像之间进行插值。

图像具有形状 (188, 188)

图片_1 图片_2

我希望在这两个图像之间插入图像。假设 Image_1 位于位置 z=0,而 Image_2 位于位置 z=2。我想要位置 z=1 的插值图像。

我相信这个答案(MATLAB)包含类似的问题和解决方案。

使用 MATLAB 在 3D MRI 体积中创建中间切片

我尝试将此代码转换为 Python,如下所示:

from scipy.interpolate import interpn
from scipy.interpolate import griddata

# Construct 3D volume from images
#    arr.shape = (2, 182, 182)
arr = np.r_['0,3', image_1, image_2]

slices,rows,cols = arr.shape

# Construct meshgrids
[X,Y,Z] = np.meshgrid(np.arange(cols), np.arange(rows), np.arange(slices));
[X2,Y2,Z2] = np.meshgrid(np.arange(cols), np.arange(rows), np.arange(slices*2));

# Run n-dim interpolation
Vi = interpn([X,Y,Z], arr, np.array([X1,Y1,Z1]).T)
Run Code Online (Sandbox Code Playgroud)

但是,这会产生错误:

ValueError: The points in dimension …
Run Code Online (Sandbox Code Playgroud)

python numpy image scipy

10
推荐指数
2
解决办法
7495
查看次数

在Python中包装(圆形)二维插值

我在以pi弧度包裹的域(即0 = pi)上有角度数据。数据为2D,其中一维代表角度。我需要以包装方式将此数据插值到另一个网格上。

在一个维度上,该np.interp函数需要一个时间段kwarg(适用于NumPy1.10及更高版本):http : //docs.scipy.org/doc/numpy/reference/generated/numpy.interp.html

这正是我需要的,但是我需要两个维度。我目前只是逐步浏览数组中的列并使用np.interp,但这当然很慢。

有什么可以达到相同结果但更快的结果吗?

python interpolation numpy

5
推荐指数
1
解决办法
895
查看次数

Numpy:从给定范围生成组合的有效方法

我有一个n维数组,如下所示:

np.array([[0,3],[0,3],[0,10]])
Run Code Online (Sandbox Code Playgroud)

在此数组中,元素表示低值和高值.例如:[0,3][0,1,2,3]

我需要使用上面给出的范围生成所有值的组合.例如,我想要[0,0,0], [0,0,1] ... [0,1,0] ... [3,3,10]

我尝试过以下方法来获得我想要的东西:

ds = np.array([[0,3],[0,3],[0,10]])
nItems = int(reduce(lambda a,b: a * (b[1] - b[0] + 1), ds, 1))
myCombinations = np.zeros((nItems,))
nArrays = []
for x in range(ds.shape[0]):
    low = ds[x][0]
    high= ds[x][1]
    nitm = high - low + 1
    ar = [x+low for x in range(nitm) ]
    nArrays.append(ar)

myCombinations = cartesian(nArrays)
Run Code Online (Sandbox Code Playgroud)

笛卡尔函数取自于使用numpy来构建两个数组的所有组合的数组

我需要做几百万次.

我的问题:有没有更好/更有效的方法来做到这一点?

python arrays combinations numpy

1
推荐指数
1
解决办法
3176
查看次数

标签 统计

numpy ×3

python ×3

arrays ×1

combinations ×1

image ×1

interpolation ×1

scipy ×1