前提・実現したいこと
PythonでOpen3Dを用いた点群処理を行っています。
その際に発生した以下のエラーに困っています。
同様のエラーについてのissueを確認し、バージョンのアップデートや、ライブラリのインストール方法(pip,condaなど)を見直したものの、エラーが解決しません。
公式ドキュメントに記載されている、平面セグメンテーションのソースコードを利用しています。
そのため、segment_plane関数にエラーが発生していますが、恐らく根本的な問題としては
AttributeError: module 'open3d' has no attribute 'io'
こちらが考えられ、エラーを解決したいです。
ファイル名はライブラリ名と異なったものにしており、またfrom open3d import ioで試した際も、効果はありませんでした。
原因がわかる方がいらっしゃいましたら、よろしくお願いいたします。
発生している問題・エラーメッセージ
AttributeError: 'open3d.open3d.geometry.PointCloud' object has no attribute 'segment_plane'
AttributeError: module 'open3d' has no attribute 'io'
該当のソースコード
import open3d as o3d
pcd = o3d.io.read_point_cloud('./pc_color.pcd')
plane_model, inliers = pcd.segment_plane(distance_threshold=0.1,
ransac_n=10,
num_iterations=1000)
[a, b, c, d] = plane_model
print(f"Plane equation: {a:.2f}x + {b:.2f}y + {c:.2f}z + {d:.2f} = 0")
inlier_cloud = pcd.select_by_index(inliers)
inlier_cloud.paint_uniform_color([1.0, 0, 0])
outlier_cloud = pcd.select_by_index(inliers, invert=True)
outlier_cloud.paint_uniform_color([0, 1, 0])
o3d.visualization.draw_geometries([inlier_cloud, outlier_cloud])
補足情報(FW/ツールのバージョンなど)
Python3.6(3.7も試しました)
Open3d0.10.0(0.11.0や0.7.0なども試しました)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/03 14:38