2

私は現在、人の右手の動きのデータを追跡するために、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)
4

0 に答える 0