Más

¿Cómo calcular esqueletos rectos usando Python?

¿Cómo calcular esqueletos rectos usando Python?


¿Existe un paquete de Python que proporcione una implementación de un algoritmo de esqueleto recto?

Soy consciente de que el proyecto de código abierto (C ++) CGAL contiene una implementación, pero parece que cgal-bindings no incluye este paquete CGAL.

En cualquier caso, preferiría una implementación de Python pura que pudiera modificar / extender para satisfacer mis necesidades.

Si bien sería preferible una implementación que pueda manejar polígonos con agujeros, no es estrictamente necesaria.


Tal vez pueda modificar pySkeleton de Olivier Teboul para adaptarlo a sus necesidades.

No he tenido la oportunidad de ver el código real, pero por lo que él dice, debería ser Python puro.


Puede usar pySkeleton de la siguiente manera:

de pySkeleton importar vértices de polígono = [(0,0), (0,5), (5,5), (5,0)] bordes = [(0,1), (1,2), (2,3 ), (3,0)] p = polygon.Polygon (vértices, bordes) skeleton_graph = p.straight_skeleton ()

Obtiene un objeto gráfico con nodos y arcos, al que puede acceder simplemente por:

nodes = skeleton_graph.nodes arcs = skeleton_graph.arcs

Como dice en el archivo readme.txt de pySkeleton, los vértices del polígono deben estar en el orden de las agujas del reloj. Para los huecos dentro del polígono, los vértices deben estar en sentido contrario a las agujas del reloj.

vértices = [(25.0, 15.0), (45.0, 15.0), (45.0, 35.0), (25.0, 35.0), # polígono (30.0, 20.0), (30.0, 30.0), (40.0, 30.0), (40.0, 20.0)] # agujero en los bordes del polígono = [(0, 1), (1, 2), (2, 3), (3, 0), # polígono (4, 5), (5, 6), (6 , 7), (7, 4)] # agujero en polígono

Observación: Para polígonos más complejos con más de 100 vértices y aristas, pySkeleton es inviablemente lento. Además de eso, recibo resultados extraños para algunos polígonos. Asumo que no funciona correctamente en todos los casos.

No obstante, muchas gracias a Olivier Teboul por esta biblioteca.


Bibliotecas de optimización multiobjetivo de Python

La biblioteca HyperNetX proporciona clases y métodos para el análisis y visualización de datos de red complejos. HyperNetX utiliza estructuras de datos diseñadas para representar conjuntos de sistemas que contienen datos anidados y / o relaciones de múltiples vías. La biblioteca generaliza las métricas de gráficos tradicionales a hipergráficos.

Selfplay en entornos multijugador

Este proyecto le permite capacitar a los agentes de IA en entornos multijugador personalizados, a través del aprendizaje por refuerzo de juego.

Aprendizaje de incrustaciones de características RGB-D para segmentación de instancias de objetos invisibles

Agrupación de objetos invisibles: aprendizaje de las incrustaciones de características RGB-D para la segmentación de instancias de objetos invisibles Introducción En este trabajo, proponemos un nuevo método

[ICLR'21] Redes generativas contrafactuales

Este repositorio contiene el código del documento ICLR 2021 "Counterfactual Generative Networks" de Axel Sauer y Andreas Geiger. Si desea probar el CGN y generar imágenes contrafácticas, puede probar el Colab a continuación.

Desafío de discurso en conferencias

Desafío ConferencingSpeech 2021 Este repositorio contiene la lista de conjuntos de datos y los scripts necesarios para el desafío ConferencingSpeech. Para más detalles

Código oficial de PyTorch para ClipBERT, un marco eficiente para el aprendizaje de un extremo a otro en tareas de imagen-texto y video-texto

Código oficial de PyTorch para ClipBERT, un marco eficiente para el aprendizaje de un extremo a otro en tareas de imagen-texto y video-texto. Toma videos / imágenes + texto sin procesar como entradas y genera predicciones de tareas. ClipBERT está diseñado en base a transformadores y CNN 2D, y utiliza una estrategia de muestreo disperso para permitir un aprendizaje de idiomas y video de extremo a extremo eficiente.