2009-06-09 2 views
1

Я использую привязки OpenCV Python для поиска контуров в изображении. Я знаю, что ищу возможность сортировать эту последовательность.Порядок сортировки Opencv в python

Кажется, что обычные методы python для сортировки списков здесь не применяются из-за связанной структуры списков, сгенерированной из OpenCV.

Знаете ли вы, что хороший способ сортировки контуров по размеру (область/граница надстроек) в python? Можно ли привести пример кода?

ответ

2

Вы должны уметь просматривать всю последовательность, чтобы отсортировать ее (легко). Таким образом, вы должны скопировать его, чтобы отсортировать его.

Я хотел бы сделать что-то вроде

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

Если все не хранится в памяти уже можно посмотреть на external sorting алгоритмов.

+0

Кажется, что список (мой список) не работает. Я предполагаю, что python не знает, как обрабатывать завернутую структуру seq из openCV. Но я преобразую последовательность в список python – Janusz

+0

Извините, моя ошибка :) Это работает. Если вы возьмете contours.hrange, вы получите версию списка на python. – Janusz

Смежные вопросы