Opencv не может найти контуры алюминиевой пластины - PullRequest
2 голосов
/ 19 марта 2020

Я пытаюсь извлечь эту плесень из этой картинки. У меня есть код для его извлечения, единственное, что мне нужно, это четыре угла. Mold

def detect_object(image):
    orig = image.copy()
    image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    blurry = cv2.adaptiveThreshold(image.astype(np.uint8), 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 3)

    contours, _ = cv2.findContours(blurry, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    contours = sorted(contours, key = cv2.contourArea, reverse = True)
    cnt = contours[1] #We don't want the outer contour.
    cv2.drawContours(orig, cnt, -1, (0,255,255))
    return orig

Когда я пытаюсь сделать это, например, с помощью судоку, это делает aws контуры внешних линий идеальными Sudoku contours. В результате эта судоку может быть извлечена из картинки с дополнительным кодом. Однако, когда я пробую это с моей алюминиевой формой, никаких полезных контуров не может быть найдено. Contours found

Я уже пытался использовать много фильтров, но, к сожалению, он все еще не работает.

Кто-нибудь знает некоторые полезные советы? Заранее спасибо.

...