是否可以使用php实现运动检测?
我不是GD /图像库专家,但不应该检测两个图像之间是否存在显着差异并触发警告?
答案 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/
但我没有测试过它。