2016-04-08 26 views

cevap

2

o yararlı olabilir eğer. Yürüyen Küpler algoritması iyidir, ancak ikili dizilerde iyi çalışmaz. Böylece: 1) Gauss Filtre üçgen alanları toplamı) o (scikit-görüntü aracı) 3 mesh (scipy.filters) 3D dizisine 2) Bando küpleri algoritması uygulanır (scikit-görüntü aracı)

1

Uygulamanıza bağlı olarak birkaç seçenek görebiliyorum: 3D dışbükey gövde veya yürüyen küpler. senin dizi sen scipy.spatial.ConvexHull kullanabilirsiniz Daha sonra 1

eşit olduğu

3D dışbükey

Öncelikle, tüm voksel 3D bir dizi elde etmek gerekecektir koordine eder. Scipy yöntemleri, temel olarak qhull kitaplığı için bir sarmalayıcıdır. qhull kullanırken, çıkış seçeneklerinden (FA) biri, toplam alanı ve birimi hesaplamaktır.

Burada biraz daha bilgi bulabilirsiniz: Bando Küpler

Eğer içbükeyliliğe tutmak gerekiyorsa http://scipy.github.io/devdocs/generated/scipy.spatial.ConvexHull.html http://www.qhull.org/html/qconvex.htm

ardından önceki seçenek yeterli olmayacaktır. Yürüyen küpler iyi bir alternatif olacak. Scikit-image'de zaten bir python uygulaması var.

http://scikit-image.org/docs/dev/auto_examples/plot_marching_cubes.html

Yine önceki durumda olduğu gibi tüm noktaları elde etmek gerekecektir. Sen fiiller hesaplamak/ile karşı karşıya:

http://scikit-image.org/docs/dev/api/skimage.measure.html#marching-cubes

Ve alanı hesaplayabilirsiniz: Ben sorunu çözüldü

http://scikit-image.org/docs/dev/api/skimage.measure.html#mesh-surface-area

+0

Teşekkürler, güzel görünüyor. Bende 1'in olduğu koordinatların bir dizisini kolayca elde edebilirim. Sanırım bu, ---> 'koordinatları = numpy.where (dizi == 1)'. Şimdi scipy.convexHull okuyacağım ve yakında döneceğim :-) –

+0

Nasıl gideceğini bana bildirin ve eğer sakıncası yoksa, yararlı bulduysanız cevabı kabul etmeyi unutmayın. – purpletentacle

+0

Güzel bir algoritma ve iyi çalışıyor. Taşımın biraz konkav olduğu zaman problem ortaya çıkıyor. Sadece en kısa yolu buluyor, böylece konkavlığı kesiyor! –

İlgili konular