opencv 在零矩阵中创建图像轮廓(1),numpy

sg3maiej  于 2023-02-09  发布在  其他
关注(0)|答案(1)|浏览(326)

我使用opencv来寻找一个物体的轮廓,轮廓在形状矩阵(7873,1,2)(例如下面的矩阵零)中,形式为x1,y1x2,y2,...]其中x和y是图像像素的索引。
有没有可能使用numpy技巧来传递轮廓的所有坐标的列表并将它们更改为1?我希望避免循环,因为这是时间敏感的。除了numpy,还有其他时间效率高的方法吗?

zero = np.zeros((5, 5))
test = np.array([[[2,1]], [[3, 1]], [[1, 0]]])

zero[test] = 1
desired OUPUT (for this example): 
 x 0 1 2 3 4 
y _____________ 
0| 0 1 0 0 0 
1| 0 0 1 1 0 
2| 0 0 0 0 0 
3| 0 0 0 0 0 
4| 0 0 0 0 0
eimct9ow

eimct9ow1#

您可以:

idx = test.reshape(-1,2).T
zero[idx[1], idx[0]] = 1

相关问题