从opencv中的houghcirles,我得到一个返回的数组。它是一个只有一列的2d数组,除了返回的是ndarray。我是新来的,正在学习openCV。返回的数组显示得很奇怪,我想按第一列对它进行排序,并将其转换为常规的二维数组。你知道吗
数组-不是所有的数组,因为它有57行,但这应该足够了。任何地方都没有逗号。你知道吗
Circles =
[[ 876 566 6]
[ 898 574 6]
[ 846 710 6]
[ 850 762 7]
[ 822 574 6]
[ 880 620 6]
[ 894 650 6]
[ 836 604 6]]
我尝试过对数组和ndarray.排序方法。你知道吗
sorted(circles, key=lambda circles_entry: circles_entry[1])
circles[0].sort(axis=0)
我用了这两种方法来分类。第一个返回一个数组,其中包含一个数组。3D阵列?第二个从各个位置排序。你知道吗
第一类示例-
[array([[ 876, 566, 6],
[ 898, 574, 6],
[ 846, 710, 6],
[ 850, 762, 7],])]
第二类示例-
[[ 110 542 2]
[ 332 550 5]
[ 386 558 5]
[ 734 566 5]
[ 744 566 5]
[ 754 574 5]
[ 758 574 5]
[ 762 582 5]
[ 768 582 5]
[ 772 588 5]
[ 778 590 5]]
您的
circles
是一个2d numpy数组。不带逗号的显示是这种数组的正常str
格式:我怀疑“常规二维数组”是指一系列的列表。至少这是Python中唯一标准的类似数组的东西(除非您导入很少使用的
array
模块):对第一列排序的一种方法是使用
np.argsort
获得索引:使用Python
sorted
:或者如果我们首先将
circles
转换为嵌套列表:相关问题 更多 >
编程相关推荐