#python-3.x #opencv
#python-3.x #opencv
Вопрос:
Я сделал снимок с помощью клона камеры raspbery pi и хочу найти контуры в in. OpenCV, похоже, не находит контуры, которые я ожидал. Есть ли ошибка в моем коде?
image0=cv2.imread('picture.png',0)
image=cv2.medianBlur(image0,3)
cnts,_=cv2.findContours(image, cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
image=cv2.cvtColor(image,cv2.COLOR_GRAY2BGR)
cv2.drawContours(image,cnts,-1,(0,0,255),thickness=1)
cv2.imshow('image',image0)
cv2.imshow('edged',image)
cv2.waitKey(0)
Заранее спасибо :).
Приветствия
Ответ №1:
Недостающий шаг — применение порога
Пороговый результат будет:
Теперь найдите контуры:
Код:
import cv2
img = cv2.imread("bugs.png")
gry = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
thr = cv2.threshold(gry, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]
cnt, _ = cv2.findContours(thr, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
cv2.drawContours(img, cnt, -1, (0, 0, 255), thickness=1)
cv2.imshow("img", img)
cv2.waitKey(0)
Комментарии:
1. спасибо, я думаю, это то, чего мне не хватало :). Есть ли у вас какие-нибудь идеи, есть ли возможность каким-то образом получить целые контуры, поскольку всегда отсутствуют части, когда я останавливаюсь перед поиском контуров?