我正在尝试更新LuisCalçada在2010年制作的脚本 . 他修改了Daniel Shiffman的点 Cloud 示例文件,将点 Cloud 数据收集为文本文件 . 这是教程http://moullinex.tumblr.com/post/3180520798/catalina-music-video
问题是所有命令都显得过时,例如Kinect.enabledepth(true);更改为kinect2.initDepth(true)后返回错误“不适用于参数(布尔值)”或如果我删除它然后下一行返回错误说“函数processDepthImage(boolean)不存在”和我在示例文件中找不到等效命令
是否有某种参考库,我可以看到所有可能的命令(甚至更好的命令等效的预处理器)所以我可以通过脚本更新命令来使用新的openkinect库,如果没有那么这甚至是一个可能的任务对我来说,完成一个处理新手?
1 回答
以下是一些有用的内容:
阅读available documentation and tutorials
如果那不是't enough and javadocs/reference aren' t,请查看source code中的公共方法并阅读上面的注释
在处理3中,您可以使用自动完成功能查看整个代码(包括库)中的可用方法和属性 . 您甚至可以启用Ctrl Space自动完成功能(如果您在首选项中设置它)
这可能会揭示函数
initDepth(true)
为"not applicable for arguments (boolean)"的原因 . 使用Processing 3完成功能,您可以看到实际上有initDepth()
函数,但它不接受任何参数(因此删除true
) .使用相同的方法,您可以轻松发现Kinect2类中的某些函数(v1)在Kinect2类中缺失(如
processDepthImage()
和getDepthFPS()
),您应该删除它们,而其他函数具有相同的功能但名称/签名不同(例如quit()
在Kinect(v1)中,但stopDevice()
和dispose()
在Kinect2中)这是一个应该编译的代码的粗略重构版本,但由于我没有Kinect 2可能无法100%工作:
Update 许多原始代码仅对Kinect v1有效,尤其是深度数据周围的部分以及将深度值转换为真实世界值 .
但是,库中附带的 DepthPointCloud2 示例可以很容易地重新调整用途:它只需要将这些点存储在内存中,直到它们被写入磁盘 . 唯一的另一个补充是过滤深度 . 原始代码仅包括远阈值,但实际上具有近剪切和远剪裁的选项可能证明是有用的 . 这是使用
SPACE
切换记录的修改示例,N/n
键增加/减少近削波和F/f
键增加/减少远裁剪: