私は現在、人の右手の動きのデータを追跡するために、Kinect でビジュアル python を使用しています。私が今持っているプログラムでは、画面に表示されたスケルトンで人の体を追跡します。私は、人がその領域でより頻繁に手を動かしたときに基づいて、ライブ更新および成長する球をプロットしようとしています。基本的に、これらの球体は移動密度を表します。ただし、球体を更新する運がありません。どんな/すべての助けも感謝します、ありがとう!
以下は、球体用のコードです。正しく動作しているため、スケルトン コードは含めませんでした。私は一般的に VPython/コーディングのアマチュアであるため、最も効率的または組織化されたコードではない可能性があります
nbins = 2
bincount = 0
xpos = p2.x
ypos = p2.y
zpos = p2.z
xaxis = numpy.linspace(min(xpos), max(xpos), 2)
yaxis = numpy.linspace(min(ypos), max(ypos), 2)
zaxis = numpy.linspace(min(zpos), max(zpos), 2)
###initialize i,j,k???
for i in range(1, nbins):
for j in range(1, nbins):
for k in range(1, nbins):
findpoints = find(p2.x >= xaxis[i] & p2.x <= xaxis[i+1] & p2.y >= yaxis[j] & p2.y <= yaxis[j+1] & p2.z >= zaxis[k] & p2.z <= zaxis[k+1])
count = length(findpoints)
i = i+1
j = j+1
k = k+1
gridcount[i,j,k] = count
count = 0
total = sum(sum(sum(gridcount)))
gridP = gridcount/total
for i in irange(1, nbins):
xcenter = numpy.mean(xaxis[i],xaxis[i+1])
for j in jrange(1, nbins):
ycenter = numpy.mean(yaxis[j],yaxis[j+1])
for k in krange(1, nbins):
zcenter = numpy.mean(zaxis[k], zaxis[k+1])
r = gridP(i,j,k)
binsphere = sphere(radius = r, color = blue)
hold
axes3d.plot_surface(xcenter, ycenter, zcenter)