Open3d: EstimasiNormals tidak berfungsi untuk tambalan datar

Dibuat pada 27 Mar 2019  ·  3Komentar  ·  Sumber: intel-isl/Open3D

Tampaknya fungsi EstimateNormals tidak berfungsi dengan baik untuk patch yang benar-benar datar, juga tergantung pada orientasinya.

Untuk mereproduksi:

import numpy as np
import open3d

X,Y = np.mgrid[0:1:0.1,0:1:0.1]
X = X.flatten()
Y = Y.flatten()

pts = np.zeros((3, X.size))
pts[0] = X
pts[1] = Y

shape  = open3d.PointCloud()
shape.points = open3d.Vector3dVector(pts.T)
shape.paint_uniform_color([0, 0.651, 0.929]) # blue

open3d.estimate_normals(shape, open3d.KDTreeSearchParamHybrid(radius = 0.5, max_nn = 30))

# show the shape
open3d.draw_geometries([shape])

Jika Anda menulis

pts[1] = X
pts[2] = Y

sebagai gantinya - ini berfungsi seperti yang diharapkan; jika Anda menggunakan 0 dan 1 atau 0 dan 2 sebagai indeks - ini tidak lagi berfungsi.

Diharapkan:
Screenshot from 2019-03-26 23-56-53
Punya:
Screenshot from 2019-03-26 23-57-29

Lingkungan (harap lengkapi informasi berikut):

  • OS: Ubuntu 18.04
  • Versi Python: 3.6.7
  • Versi Open3D: rilis 0,5 (juga diuji pada komit 6f493ef149f1360796709127312e1ff692bcf316)
  • Apakah ini stasiun kerja jarak jauh?: tidak
  • Bagaimana Anda menginstal Open3D ?: pip untuk rilis; buat sendiri versi yang lebih baru
possible bug

Semua 3 komentar

Tangkapan yang bagus. Sepertinya masalah numerik dari fungsi ini:
https://github.com/IntelVCL/Open3D/blob/377fc7d6a47ea47681c25a1e07a5383d62a612aa/src/Open3D/Geometry/EstimateNormals.cpp#L40

Saya akan menggalinya ketika saya punya waktu.

Fakta menyenangkan: menambahkan sedikit noise pada poin akan memperbaiki masalah.

Diperbaiki di # 1011

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

nrj127 picture nrj127  ·  4Komentar

blackccpie picture blackccpie  ·  3Komentar

taochenshh picture taochenshh  ·  3Komentar

prerakmody picture prerakmody  ·  3Komentar

marcel-bariou picture marcel-bariou  ·  3Komentar