当有人动摇iPhone时,我想做出反应.我并不特别在乎它们是如何摇晃它的,只是它在一瞬间大力挥手.有谁知道怎么检测到这个?
我想将Kinect 2中的动作捕捉数据存储为BVH文件.我找到了Kinect 1的代码,可以在这里找到.我查看了代码,发现了一些我无法理解的内容.例如,在上面提到的代码中,我试图理解skel在代码中的几个地方找到的Skeleton 对象到底是什么.如果没有,是否有任何已知的应用程序可用于完成预期的?
编辑:我试图将Skeleton skel更改为Body skel,我认为它是kinect SDK 2.0的对应对象.但是,当我试图获得身体的位置时,我遇到了错误:
tempMotionVektor[0] = -Math.Round( skel.Position.X * 100,2);
tempMotionVektor[1] = Math.Round( skel.Position.Y * 100,2) + 120;
tempMotionVektor[2] = 300 - Math.Round( skel.Position.Z * 100,2);
Run Code Online (Sandbox Code Playgroud)
调用Body skel的函数Position时,我遇到了错误.如何在sdk 2.0中检索骨架的X,Y,Z?我试图将以上三行更改为:
tempMotionVektor[0] = -Math.Round(skel.Joints[0].Position.X * 100, 2);
tempMotionVektor[1] = Math.Round(skel.Joints[0].Position.Y * 100, 2) + 120;
tempMotionVektor[2] = 300 - Math.Round(skel.Joints[0].Position.Z * 100, 2);
Run Code Online (Sandbox Code Playgroud)
编辑:基本上我设法在bodyBasicsWPF和kinect2bvh组合后存储一个bvh文件.然而,似乎我存储的骨架效率不高.肘部有奇怪的动作.我想知道我是否必须更改文件kinectSkeletonBVH.cp中的内容.更具体地说,kinect 2版本的关节轴方向的变化是什么.如何更改以下行:skel.BoneOrientations[JointType.ShoulderCenter].AbsoluteRotation.Quaternion; 我尝试更改该行skel.JointOrientations[JointType.ShoulderCenter].Orientation.我对吗?我使用以下代码将关节添加到BVHBone对象:
BVHBone hipCenter = new BVHBone(null, JointType.SpineBase.ToString(), 6, TransAxis.None, true);
BVHBone hipCenter2 = …Run Code Online (Sandbox Code Playgroud) 我有一个静止的相机,指向室内区域.人们将走过相机,距离它约5米.使用OpenCV,我想检测走过的人 - 我理想的回归是一组检测到的个体,带有边界矩形.
我看了几个内置示例:
是否有人能够提供指导或样本 - 最好是在Python中?
我目前正在研究基于视频监控的入侵系统.为了完成这个任务,我拍摄了我的场景背景的快照(假设它完全干净,没有人或移动物体).然后,我比较从(静态)摄像机获得的帧并寻找差异.我必须能够检查任何差异,不仅是人的形状或其他什么,所以我不能具体提取特征.
通常,我有:
我正在使用OpenCV,所以要比较我基本上做的:
cv::Mat bg_frame;
cv::Mat cam_frame;
cv::Mat motion;
cv::absdiff(bg_frame, cam_frame, motion);
cv::threshold(motion, motion, 80, 255, cv::THRESH_BINARY);
cv::erode(motion, motion, cv::getStructuringElement(cv::MORPH_RECT, cv::Size(3,3)));
Run Code Online (Sandbox Code Playgroud)
结果如下:
正如你所看到的那样,手臂被剥离了(由于我猜的颜色差异冲突),这很遗憾不是我想要的.
我想添加使用cv::Canny()以检测边缘并填充手臂的缺失部分,但遗憾的是(再一次),它只解决了少数情况下的问题,而不是大多数情况.
我可以使用任何算法或技术来获得准确的差异报告吗?
PS:对不起图片.由于我的新订阅,我没有足够的声誉.
编辑 我在这里使用灰度图像,但我对任何解决方案都持开放态度.
我们实际上正在进行一个图像分析项目,我们需要识别在场景中消失/出现的对象.这是2张图片,一张是在外科医生采取行动之前拍摄的,另一张是之后拍摄的.
首先,我们只是计算了两个图像之间的差异,这里是结果(请注意,Mat为了获得更好的图像,我在结果中添加了128个):
目标是检测杯子(红色箭头)已从场景中消失并且注射器(黑色箭头)已进入场景,换句话说,我们应该仅检测与场景中左/进入的对象相对应的区域.此外,很明显,场景左上角的对象从初始位置稍微偏移了一点.我想过,Optical flow所以我常常OpenCV C++计算Farneback的一个,以便看看它是否足够我们的情况,这是我们得到的结果,接着是我们写的代码:
void drawOptFlowMap(const Mat& flow, Mat& cflowmap, int step, double, const Scalar& color)
{
cout << flow.channels() << " / " << flow.rows << " / " << flow.cols << endl;
for(int y = 0; y < cflowmap.rows; y += step)
for(int x = 0; x < cflowmap.cols; x += step)
{
const Point2f& fxy = flow.at<Point2f>(y, x);
line(cflowmap, Point(x,y), Point(cvRound(x+fxy.x), cvRound(y+fxy.y)), color); …Run Code Online (Sandbox Code Playgroud) 我看到有人制作了一个使用相机跟踪你的脚的应用程序,这样你就可以在iPhone屏幕上踢一个虚拟足球.
你怎么能这样做?有没有人知道有关使用iPhone相机检测对象和跟踪它们的任何代码示例或其他信息?
我真的无法理解这一点,所以我希望有人可以给我一点手^^
我正试图通过我的网络摄像头检测C#中的运动.
到目前为止,我已经尝试了多个库(AForge Lib),但失败了,因为我不明白如何使用它.
起初我只是想比较当前帧与最后一帧的像素,但结果却像是完全一样:I
现在,我的网络摄像头每次从网络摄像头运行一个事件"webcam_ImageCaptured",就像5-10 fps.
但我找不到一种简单的方法来区分这两个图像,或者至少是一些有效的东西.
有没有人知道如何做到这一点相当简单(尽可能这样)?
我有这个要求,我需要检测身体部位或物体移向相机.我可以将一些示例项目或库作为起点.
我可以将视频的第一帧作为参考点,然后必须完美地检测向前朝向相机移动的任何物体.
相机将由一个人管理,因此会有轻微的抖动,因此所有帧的背景都不会完全相同.
我必须开发与此计步器应用程序相同的功能
我已经非常详细地观察了这个计步器应用程序.
它不是一个完美的计步器应用程序.例如,如果您停留/坐在一个地方并握手,它还会检测步数和距离.
忽略这种理想和重力行为,因为在这个应用程序的说明中已经提到你应该绑你的iPhone,或者你应该把它放在口袋里计算步数.这样,我发现这个应用程序运行良好,它几乎可以检测到所有步骤.
我的问题是:我根据上面的逻辑开发了一个样本,但它没有达到那个水平.例如,有时它会同时检测2-3个步骤.有时它工作正常.
我的代码:
在viewDidLoad中:
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:0.2]
Run Code Online (Sandbox Code Playgroud)
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
const float violence = 1.2;
static BOOL beenhere;
BOOL shake = FALSE;
if (beenhere) return;
beenhere = TRUE;
if (acceleration.x > violence || acceleration.x < (-1* violence))
shake = TRUE;
if (acceleration.y > violence || acceleration.y < (-1* violence))
shake = TRUE;
if (acceleration.z > violence || acceleration.z < (-1* violence))
shake = TRUE;
if (shake) {
steps=steps+1;
}
beenhere …Run Code Online (Sandbox Code Playgroud) 我在http://www.computerarts.co.uk/tutorials/build-your-own-motion-tracking-system上有这个了不起的教程. 在开发人员版本中,跟踪器沿着X轴移动.我希望它保持静止而不是移动,当网络摄像头的物体出现在它前面时.固定的十字标记应该能够在任何人在其前面时触发事件,最好是声音.非常感谢我得到的帮助.我是AS的一个完整的菜鸟.如果您有任何其他教程并将我链接到它,我将不胜感激.
motion-detection ×10
opencv ×4
c# ×2
ios ×2
iphone ×2
android ×1
c++ ×1
difference ×1
flash ×1
kinect ×1
motion ×1
opticalflow ×1
python ×1
shake ×1
threshold ×1