[Python --open3d] Comment convertir des données d'obj de modèle 3D en nuage de points

Aperçu

Cet article montre comment convertir un modèle créé avec Blender, etc. en données de nuage de points utilisées pour l'analyse des données de topologie, etc. Bien que python gère rarement les nuages de points, il peut être utilisé pour l'analyse car il existe une bonne bibliothèque dans le domaine de l'analyse telle que l'analyse des données de topologie. Lorsque vous utilisez des données obj pour l'analyse, il est nécessaire de les lire avec open3D et de les convertir en nuage de points, décrivez-le donc.

Il est sorti après un peu de recherche, donc c'est pour mémoire.

スクリーンショット 2020-02-15 4.08.42.png スクリーンショット 2020-02-15 4.08.59.png

open3d

Une bibliothèque qui analyse les données de nuages de points. Fondamentalement, vous pouvez faire correspondre les nuages de points et analyser les valeurs aberrantes. Il est également possible de créer un groupe de nuages de points à partir de données RGBD, y compris des informations de profondeur.

conversion de données obj

Les données sont rarement distribuées au format nuage de points (ply) et les modèles 3D sont lus dans des formats tels que obj et fbx. Par conséquent, il peut être converti en nuage de points en extrayant uniquement les sommets (sommets) des données obj et en supprimant les informations de maillage comme indiqué dans le programme ci-dessous.


import open3d as o3d
import numpy as np

def obj_mesh(path):
  return o3d.io.read_triangle_mesh(path)

def draw_mesh(mesh):
  
  mesh.paint_uniform_color([1., 0., 0.])
  mesh.compute_vertex_normals()
  o3d.visualization.draw_geometries([mesh])

def mesh2ply(mesh):
  pcd = o3d.geometry.PointCloud()
  pcd.points = o3d.utility.Vector3dVector(np.asarray(mesh.vertices))
  return pcd


if __name__ == "__main__":
  path = "/Users/washizakikai/data/obj3d/IronMan.obj"
  mesh = obj_mesh(path)
  
  pcd = mesh2ply(mesh)

Recommended Posts

[Python --open3d] Comment convertir des données d'obj de modèle 3D en nuage de points
[Python] Comment convertir une liste bidimensionnelle en liste unidimensionnelle
Comment convertir des nombres à virgule flottante en nombres binaires en Python
Acquisition d'un groupe de points 3D avec Pepper de Softbank (Choregraphe, Python)
[Python] Comment FFT des données mp3
Comment mettre à jour la version Python de Cloud Shell dans GCP
[Python] Comment convertir un fichier db en csv
[Python] Résumé de l'utilisation des pandas
Convertir des données Excel en JSON avec python
Convertissez des données FX 1 minute en données 5 minutes avec Python
[Python2.7] Résumé de l'utilisation d'unittest
Comment changer de version de Python dans cloud9
Comment utiliser "deque" pour les données Python
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
[Introduction au Data Scientist] Bases de Python ♬
[Question] Comment utiliser plot_surface de python
Comment envoyer une image visualisée des données créées en Python à Typetalk
[Python] Comment changer les données de la chaîne de caractères (str) en date (strptime de datetime)
[Tensorflowjs_converter] Comment convertir le modèle Tensorflow au format Tensorflow.js
[Python] Comment utiliser deux types de type ()
Convertissez les données avec la forme (nombre de données, 1) en (nombre de données,) avec numpy.
Convertir le «nombre» de date Excel en date / heure Python
Résumé de la lecture des données numériques avec python [CSV, NetCDF, Fortran binary]
Résumé de la façon d'importer des fichiers dans Python 3
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
[Introduction à Python] Comment gérer les données au format JSON
Comment spécifier des attributs avec Mock of Python
Comment obtenir des éléments de type dictionnaire de Python 2.7
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Comment convertir / restaurer une chaîne avec [] en python
Résumé des outils nécessaires pour analyser les données en Python
Comment convertir le type Python # pour les super débutants de Python: str
Comment obtenir le nombre de chiffres en Python
J'ai essayé de résumer comment utiliser matplotlib de python
[Pour les débutants] Comment étudier le test d'analyse de données Python3
Comment récupérer des données d'image de Flickr avec Python
Comment convertir des données détenues horizontalement en données détenues verticalement avec des pandas
La décision de scikit-learn Comment visualiser un modèle en bois
Comment écrire un type liste / dictionnaire de Python3
Comment utiliser Python Kivy ① ~ Bases du langage Kv ~
Comment convertir un fichier JSON en fichier CSV avec Python Pandas
Python: Diagramme de distribution de données bidimensionnelle (estimation de la densité du noyau)
[Python] Résumé de la façon de spécifier la couleur de la figure
Comment utiliser le modèle appris dans Lobe en Python
python, php, ruby Comment convertir un décimal en n
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
Comment installer Python
Comment installer python
[Question] Comment obtenir les données des données textarea en temps réel à l'aide du flacon du framework Web Python
[Python] Modifier le contrôle du cache des objets téléchargés sur Cloud Storage
SIGNATURE Quête ② De la création du modèle de ciblage à la création des données soumises
[Python] Comment créer une liste de chaînes de caractères caractère par caractère
Comment écrire un exemple d'implémentation E14 Python en temps réel hors ligne
Comment convertir un tableau en dictionnaire avec Python [Application]
[python] Résumé de la récupération des listes et des éléments du dictionnaire
Comment mélanger une partie de la liste Python (au hasard.shuffle)
Comment transloquer un tableau à deux dimensions en utilisant uniquement python [Note]