Глядя на этот пример:
https://github.com/jonhare/COMP6208/blob/master/app/src/main/java/uk/ac/soton/ecs/comp6208/l2/KMeansDemo.java#L252
Строка выше:
final List<Line2d> lines = Voronoi.computeVoronoiEdges(java.util.Arrays.asList(centroids), image.getWidth(),
image.getHeight());
Я добавил еще одну строку:
final Graph<Point2d, DefaultEdge> graph = Voronoi.computeVoronoiGraph(java.util.Arrays.asList(centroids), image.getWidth(),
image.getHeight());
но это разрывается с:
Exception in thread "Thread-0" java.lang.IllegalArgumentException: no such vertex in graph
at org.jgrapht.graph.AbstractGraph.assertVertexExist(Unknown Source)
at org.jgrapht.graph.AbstractBaseGraph.addEdge(Unknown Source)
at org.openimaj.math.geometry.triangulation.Voronoi.computeVoronoiGraph(Voronoi.java:88)
at uk.ac.soton.ecs.comp3204.l2.KMeansDemo.drawVoronoi(KMeansDemo.java:260)
Есть идеи, почему это ломается?
Моя цель более высокого уровня состоит в том, чтобы получить полигоны (вместо линий) из выходных данных любого из вышеуказанных методов (или любого другого метода, если использование вышеупомянутого является неправильным способом). Каков был бы правильный подход для этого?