открытое резюме находит странные контуры

#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. спасибо, я думаю, это то, чего мне не хватало :). Есть ли у вас какие-нибудь идеи, есть ли возможность каким-то образом получить целые контуры, поскольку всегда отсутствуют части, когда я останавливаюсь перед поиском контуров?