2011-03-09 78 views
0

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

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

回答

0

当然,你可以使用类似imagecolorat的东西来获取来自2个不同图像像素的颜色。

所以是的,你可以这样做,就像我猜想的任何其他语言。

4

我觉得理论上你可以做到这一点,你可以想出一个基本的图像比较。但是,在PHP中这样做并不是最好的选择,如果你想快速逐帧比较,你需要查看一种编译语言。

正如你可以做到以下几点基本的图像检测方法,

灰度图像,每个样本x像素和比较(使用阈值)。然后计算变化百分比,如果它超过15%,你可以采取行动。

这是一种原始的和基本的方法,但它应该像它会适合您的需求。

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

它仍然是初步的,但它是对我不断从摄像头更新图像的流中读取运动更大的目标开始。