我在一个numpy向量中有这样的数据:
[[[1119 15]]
[[1125 27]]
[[1129 43]]
[[1131 62]]
[[1131 87]]
[[1141 234]]
...]
这些应该是一组我可以用来表示曲线的点,但是每个点[int,int]似乎被封装在另一个向量中。例如:我有[[11]]而不是[11]。你知道吗
这个数据是由opencv函数cv2.approxPolyDP
在我给它一个“轮廓”之后给我的,我需要处理它。我认为这个函数基本上给了我它认为是一组曲线的东西,但是这里每条曲线只包含一个点[int],这是没有意义的。只有一个点的曲线不是曲线,而是一个点。你知道吗
在这种情况下有没有办法把[[int]]转换成[int]呢?你知道吗
可能这不是最佳解决方案,但您可以这样做:
编辑:
看看这个阵列的形状。可能是
(n, 1, 2)
。你知道吗reshape
将其转换为(n,2)
。x.reshape(-1,2)
是一个方便的快捷方式,省去了确定n
的工作。squeeze
git也去掉了奇异维。你知道吗您可以检查approxPolyDP中的第二个参数是否太大。 请注意,以下代码并不总是使其变小:
当轮廓边缘有噪声时,arcLength返回的轮廓弧长可能非常非常大,乘以0.1后会产生一个非常大的epsilon,从而使approxPolyDP将整个轮廓简化为一个点。你知道吗
相关问题 更多 >
编程相关推荐