Я хочу найти контуры изображения, чтобы затем нарисовать его выпуклую оболочку. Что я делаю, так это загружаю изображение, порогую его, нахожу его контуры, а затем рисую выпуклую оболочку.
gray = cv2.imread(test_paths[i], 0)
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY_INV)
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnt = contours[0]
Количество обнаруженных контуров равно 1. Проблема возникает, когда я пытаюсь построить контуры, если я делаю
cv2.drawContours(cnt_dst, cnt, -1, (255, 0, 0), 3)
plt.imshow(cnt_dst)
Если я изменю код на следующий:
cv2.drawContours(cnt_dst, contours, 0, (255, 0, 0), 3)
plt.imshow(cnt_dst)
Контуры разные:
Обратите внимание, что я получаю тот же (хороший) результат:
cv2.drawContours(cnt_dst, contours, -1, (255, 0, 0), 3)
Есть идеи, почему это происходит?