在Python中使用OpenCV排序序列

1 投票
1 回答
1718 浏览
提问于 2025-04-15 12:08

我正在使用Python的OpenCV库来查找图像中的轮廓。现在我想知道如何对这些轮廓进行排序。

看起来,Python中通常用来排序列表的方法在这里不太适用,因为OpenCV生成的是一种链表结构。

你知道有什么好的方法可以按照大小(面积/边界矩形)来排序这些轮廓吗?能给我一些示例代码吗?

1 个回答

2

要想轻松地对一串数据进行排序,你得先把这串数据都看一遍。所以,最好把它复制一份来进行排序。

我会这样做:

   contourList = list(<your linked list>)
   def sizeKey(countour):
      <get size from contour>
   contourList.sort(key = sizeKey)

如果你手头的数据并不是都存储在内存里的话,你也可以了解一下外部排序的算法。

撰写回答