Как нарисовать определенный или несколько контуров объектов - PullRequest
0 голосов
/ 02 декабря 2018

Я не могу найти способ нарисовать более одного контура объектов.

Входное изображение:

enter image description here

Код:

import cv2
import numpy as np

#import image
img = cv2.imread('img.png', 0)

#Thresh
ret, thresh = cv2.threshold(img, 200, 255, cv2.THRESH_BINARY)

#Finding the contours in the image
_, contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

#Convert img to RGB and draw contour
img = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB)
cv2.drawContours(img, contours, 0, (0,0,255), 2)

#save output img
cv2.imwrite('output_img.png', img)

Вывод:

enter image description here

Отрисовывается только более крупный контур объекта.Как бы я нарисовал оба контура?

1 Ответ

0 голосов
/ 02 декабря 2018

Измените третий параметр на -1 (третий аргумент - индекс контуров) в вашем drawContours , который будет рисовать все контуры вашего изображения:

cv2.drawContours(img, contours, -1, (0,0,255), 2)

Если вы хотите нарисоватьтолько два контура и первые два контура используются белыми объектами:

cnt1 = contours[0]
cnt2 = contours[1]
cv2.drawContours(img, [cnt1, cnt2], -1, (0,0,255), 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...