1
JuliaにはMATLABのpcnormals
と同等のものがありますか?ジュリアの点群の法線を見積もる
私はまた、readとwrite.ply
のファイルがJuliaにあるかどうかを知りたいと思いますか?ここpcnormals
の説明から
JuliaにはMATLABのpcnormals
と同等のものがありますか?ジュリアの点群の法線を見積もる
私はまた、readとwrite.ply
のファイルがJuliaにあるかどうかを知りたいと思いますか?ここpcnormals
の説明から
は距離とk最近傍パッケージの助けを借りてジュリアを使用して、それを再作成しようとする試みである:
using Distances
using kNN
function pcnormals(pcloud::Matrix,k::Int = 6)
n,d = size(pcloud)
S = pairwise(Euclidean(),pcloud')
NN = hcat([kNN.k_nearest_neighbors(k,i,S) for i=1:n]...)'
normals = hcat([normalize(pcloud[[i;NN[i,:]],:]\ones(k+1)) for i=1:n]...)'
return normals
end
N = 1000
D = 3
X = mapslices(normalize,randn(N,D),2)
normals = pcnormals(X)
println("mean inner product = $(mean(X[1:10,:]*normals[1:10,:]'))")
diag(X[1:10,:]*normals[1:10,:]')
コード定義が見しようとしたミニテストした後単位球上の点を計算し、点の法線がそれ自体に近いかどうかを調べる(内積を類似度として使用する)。結果は説得力に見えた:
mean inner product = 0.18584539662300542
10-element Array{Float64,1}:
0.990708
0.999839
0.997276
0.999705
0.99959
0.999883
0.999052
0.998935
0.9951
0.999617
pcnormals
マニュアルページで簡単に見、私を誤解がない限りそう、これはジュリアの実装の出発点であってもよいです。コード内でpairwise
を使用することに注意してください。これは大きなポイントクラウドでは遅くなる可能性があります。
あなたは[MeshIO.jl](https://github.com/JuliaIO/MeshIO.jl)を見ましたか? – rickhg12hs