Php运动检测

时间:2011-03-09 16:35:19

标签: php

是否可以使用php实现运动检测?

我不是GD /图像库专家,但不应该检测两个图像之间是否存在显着差异并触发警告?

4 个答案:

答案 0 :(得分:4)

我认为理论上你可以做到这一点,你可以想出一个基本的图像比较。但是,在PHP中执行此操作并不是最佳选择,如果您希望快速逐帧比较,则需要查看编译语言。

作为一种基本的图像检测方法,您可以执行以下操作,

灰度图像,每x个像素采样并比较(使用阈值)。然后计算变化百分比,如果超过15%则可以假设运动。

这是一种粗略而基本的方法,但它可能会满足您的需求。

答案 1 :(得分:3)

我最近一直在研究这类问题。我已经设法在任何指定的级别分辨率下将两个图像进行比较,并收集有关更改发生位置的信息(如果有)。使用我的代码的一个例子。

// setup two images to work with
$i1 = new SimpleImage("./img/0392.jpg");
$i2 = new SimpleImage("./img/0393.jpg");

$state = new State(15, 8, $i1);
$state = $state->difference(new State(15, 8, $i2), rgbColorDistance);
$state->abs()->denoiseStdDev()->scale(10)->round(0);

// $box will hold an array (x,y,w,h) that indicates location of change
$box = $state->getBoundingBox($i1->getWidth(), $i1->getHeight());

Examples and explanation on my blogpost

View code and download from Github

它仍然是基本的,但它是我的更大目标的开始,不断从网络摄像头更新的图像流中读取动作。

答案 2 :(得分:0)

当然,您可以使用类似imagecolorat的内容来获取2个不同图像上的像素颜色。

所以是的,你可以像我想的那样用其他任何语言来做。

答案 3 :(得分:0)

找到了一些东西: http://phpmotiondetect.sourceforge.net/

但我没有测试过它。