Мне интересно, как сравнивать, если два пути перекрытия контура, если они похожи.Как сравнить, если два контура пути визуально похожи - Python/Matplotlib
Чтобы уточнить, у меня есть набор n реализаций, каждый из которых имеет свои уровни контуров. Мне нужно проверить стабильность каждого контура на уровне l. Для этого мне нужно подсчитать, сколько раз это происходит через ансамбли.
До сих пор я работал на этом коде:
def iso_contours(scalar_fields):
#TODO : access the paths by level (0, 1, 2 ...)
default = 0
contours = {}
contours_number = 0
for scalar_field in scalar_fields:
cs = plt.contour(scalar_field)
for collection in cs.collections:
paths = collection.get_paths()
for path in paths:
num = contours.get(path, default)
contours[path] = num + 1
contours_number += 1
contours.update((x, y/float(contours_number)) for x, y in contours.items())
return contours
Однако, даже с двумя равными путями, они рассматривались как разные.
Итак, Мне интересно, как, учитывая два пути, я могу определить, визуально ли они похожи на. Как @unutbu напомнить мне, я не могу просто сравнить вершины, потому что вершины могут прийти в другом порядке, или может быть 1000 вершин в одном пути и 100 в другом ...
1) нарисуйте пути (возможно, здесь может помочь АА). 2) возьмите буфер AGG. 3) возьмите внутренний продукт между двумя изображениями. – tacaswell