Python Scikit Image find contours возвращает все контуры в первом месте списка - PullRequest
0 голосов
/ 31 октября 2019

Я использую scikit-изображение для компьютерного зрения. Я буду использовать поиск контуров, чтобы получить контуры ввода изображения в градациях серого, но возвращенный список содержит контуры на изображении, все в первом месте. Результат, который я хочу получить, является единственным выходным контуром изображения, поэтому я пытаюсь отделить контуры с помощью циклов for, но это требует очень длительного времени, и результат не очень хороший. Может кто-нибудь помочь мне? Код сообщается ниже:

import numpy as np
from skimage.io import imread
from skimage.measure import moments, moments_hu, find_contours, approximate_polygon
from skimage.feature import canny
from matplotlib import pyplot as plt
#%% Opening image section
reference_image = imread('referenceImage.jpg', as_gray= True)
reference_contours = find_contours(reference_image, 0.8, fully_connected='high')
first = True
added = False
reference_contours_list = []
for contours in reference_contours:
    for con in contours:
        if first:
            first = False
            reference_contours_list.append(np.array(np.array([con])))
        else:
            for index, past_con in enumerate(reference_contours_list):
                for past_c in past_con:
                    if con[0] in range(int(round(past_c[0])) - 1, int(round(past_c[0])) + 2):
                        reference_contours_list[index] = np.append(reference_contours_list[index], np.array(np.array([con])), axis=0)
...