Mam mały problem, gdy biorę kontur obrazu, otrzymuję tę liczbę:Jak mogę połączyć krzywe Discontinous w matplotlab, scipy lub etc
jak można zobacz, czy mogę wyodrębnić kontur, ale gdy tylko wyodrębnię ścieżkę, pozostawi te dziwne sieczki, które przekroczą obraz, ponieważ na krzywej znajdują się 2 nieciągłe obszary. Zastanawiam się, czy istnieje sposób, aby odłączyć nieciągłe linie czy jest to moja ścieżka kod wydobycia jest źle
import matplotlib.pyplot as plt
import numpy as np
def contourPath(img, width, height):
x = np.arange(0,width)
y = np.arange(height,0,-1)
X, Y = np.meshgrid(x,y)
plot = plt.contour(X,Y,img, [0])
pathList = plot.collections[0].get_paths()
x, y = [], []
for i in range(0, len(pathList)):
iterPath = pathList[i].iter_segments()
for point in iterPath:
pt = np.rint(point[0])
x.append(pt[0])
y.append(pt[1])
X = np.hstack(x)
Y = np.hstack(y)
return np.dstack((X,Y))[0]
Dziękuję za poświęcony czas
dla user545424 Tutaj chyba. Funkcja konturu Matplotlib działa poprawnie, ponieważ na obrazie pojawiają się dwa nieciągłe punkty, które spowodowały to małe zdarzenie.
Uczę się, że te sieczna są przyczyną przez scypi, ale to podnosi inny problem, w jaki biblioteki interakcji z punktów konturu
No cóż, uważam, że jest możliwe, aby maskować problem ze znalezieniem ścieżki i interpoluj to. Ale lubię unikać odwracania ścieżki, ponieważ podróżowanie problemem salemanów nie jest miłe dla mojego komputera.
Czy masz jakieś sugestie?
można opublikować zdjęcie? – user545424
Z edycji nie jest jasne, czy problem nadal występuje, czy nie. A tak przy okazji, czy to jest siatkówka? – heltonbiker
Wiem, ale odwrócenie ścieżki pokonuje cel obiektu ścieżki. No cóż, mogę tak napisać, jak rozwiązano, tak myślę. Konwertując na polarny, użytkownik argsort(), aby uzyskać indeks i interpolację obrazu jest prostszy. – user1462442