2015-02-24 5 views
1

Когда мы хотим найти контуры заданного изображения в соответствии с определенным пороговым значением, мы используем функцию cv2.findContours(), которая возвращает, среди прочего, список контуров (список элементов массива Pythonic, представляющий контуры изображения).OpenCV: findContours(): как упорядочиваются контуры?

Вот как use of the function:

contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) 

Мой вопрос:

Что такое порядок, OpenCV использует toorder в countours?

Я имею в виду, на которой критерий он говорит этот контур находится в положении 0 , другой в положении 1 и так далее?

Мне нужна эта информация, потому что я хочу знать, с каким контуром я занимаюсь в своей программе, и почему ей дается та или иная позиция.

Надеюсь, вы не будете закрывать мой вопрос, я всего лишь новичок.

ответ

0

Я не совсем понимаю вопрос, но из моего понимания положения Контура основаны на координатах пикселя x и y изображения, что и содержится в списке возвращаемых векторных списков. Поэтому, безусловно, критерием является позиция на изображении. (Пожалуйста, обратите внимание на этот комментарий)

+0

Спасибо. Но у каждого контура может быть много пикселей. Итак, как они могут упорядочиваться в соответствии с их положением на изображении? –

+0

Используя cv2.CHAIN_APPROX_SIMPLE, вы представляете контур с двумя конечными точками вместо того, чтобы принимать во внимание все пиксели между ними. Пожалуйста, подтвердите ссылку ниже: http://docs.opencv.org/trunk/doc/py_tutorials/py_imgproc/py_contours/py_contours_begin/py_contours_begin.html – Eni

+0

, поэтому он заказывает в соответствии с положением конечных точек? –

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