Прежде чем я начну, скажу, что я прочитал ответы в этом посте , но похоже, что моя текущая реализация значительно отличается от этого вопроса. Или, может быть, это не так, и я глуп, это тоже возможно.
В любом случае, у меня есть два 2D-массива, ptsLeft и ptsRight, формы 2xN, которые содержат координаты точек x, y от двух камер. Я создал функцию триангуляции, которая взяла эти два массива и объединила их в координаты x, y и z и сохранила их в массиве 3xN, скажем, pts3. Я тогда сделал
tri = Delaunay(ptsLeft)
, который теперь можно использовать как:
pts3[:,tri[0,0]]
чтобы получить индекс первой точки в первом треугольнике.
Моя проблема в том, что мне нужно пройти через pts3 и для каждой вершины (pts3 [:, i]) мне нужно найти точки вершин, которые связаны с этой точкой, получить их индекс в три, чтобы я мог получить доступ к правильной точке в pts3 и немного посчитаем координаты x, y и z.
До сих пор я смотрел на Delaunay.vertex_neighbors_vertices, но на самом деле не было тонны документации, которую мне удалось найти, и в вышеупомянутом посте я не мог по-настоящему понять, как можно изменить код для работы с моей проблемой.
Edit: Чтобы объяснить немного больше, если у меня есть pts3, и это 3x5, то значение индекса столбца будет то, что будет храниться в tri. Поэтому мне нужно что-то вроде:
for v in range(pts3.shape[1]):
# find v in tri
# find all neighbors of v in tri
Принимает ли vertex_neighbors_vertices числовое значение таким же образом или это должен быть индекс, в котором оно встречается?