我试图编写一个函数,将一个numpy数组作为输入:
a = [[0,0], [10,0], [10,10], [5,4]]
并返回一个numpy数组b,以便:
b = [[[0,0]], [[10,0]], [[10,10]], [[5,4]]]
由于某种原因,我发现这个令人惊讶的困难。
我这样做的原因是我有一些使用skimage生成的轮廓,我尝试使用opencv2来计算功能(区域,周边等...)但opencv功能只会将b形式的数组作为输入,而不是。
答案 0 :(得分:2)
a
是形状(4,2),b
是(4,1,2)
a.reshape(4,1,2)
np.expanddims(a, 1)
a[:,None]
所有工作
In [503]: B
Out[503]:
array([[[ 0, 0]],
[[10, 0]],
[[10, 10]],
[[ 5, 4]]])
In [504]: B.tolist()
Out[504]: [[[0, 0]], [[10, 0]], [[10, 10]], [[5, 4]]]