虚心请教:如何判断像头头监控图像发生变化(40分)

  • 主题发起人 主题发起人 tl_lyq
  • 开始时间 开始时间
T

tl_lyq

Unregistered / Unconfirmed
GUEST, unregistred user!
想实现摄像头内图像变化时才录像,平时只是显示,请大家给指点一二,多谢了!
 
请参考电脑爱好者合订本2002年(上)的399页:《用计算机摄像头设计自动安全放盗系统》
 
to:啊啊啊啊啊,:找不到资料啊。
是不是有filter可直接输出bmp.然后保存,再输出bmp.和上张bmp对比,误码率X%时提示图像变化,报警。
 
对比两张图片的二进制码,如果发现超过一定比率有不同则开始录象。简单得很啊。
 
帮顶!

http://www.source520.com

站长开发推广同盟 站长朋友的终极驿站
同时拥有海量源码电子经典书籍下载

http://www.source520.com/search/search.asp

"编程.站长"论坛搜索引擎-----为中国站长注入动力!
 
找到以下代码,能够实现对比,但占用系统资源太大,我是用dspack 捕获摄像头图像,
有没有办法直接取摄像头的每一帧或每隔几帧进行对比,而不是抓图后对比。请高人赐教,
最好不要占用太多系统资源,否则没有太大的意义吧。

procedure TForm1.Button1Click(Sender: TObject);
var
b1, b2: TBitmap;
c1, c2: PByte;
x, y, i,
different: Integer; // Counter for different pixels
begin
b1 := Image1.Picture.Bitmap;
b2 := Image2.Picture.Bitmap;
Assert(b1.PixelFormat = b2.PixelFormat); // they have to be equal
different := 0;
for y := 0 to b1.Height - 1 do
begin
c1 := b1.Scanline[y];
c2 := b2.Scanline[y];
for x := 0 to b1.Width - 1 do
for i := 0 to BytesPerPixel - 1 do // 1, to 4, dep. on pixelformat
begin
Inc(different, Integer(c1^ <> c2^));
Inc(c1);
Inc(c2);
end;
end;
end;
 
不用整幅图对比,有间隔地抽几行来对比可以节省时间,效果也不坏,
 
楼主搞定了吗?我也正在做这方面的东东.有空可以交流一下.
 
to 2ys,已经有些眉目了,你的QQ多少,怎样联系。
 
可来做图象的不少,大家一起学习啊
我的QQ :80496054
EM:daocaoren0824@163.com
 
to tl_lyq:
7041779
 
可以选取一部分图像进行比较,那样会快一些
 
我的qq
244812585
 
不但可以间隔地抽几行来,每行也可以不用每个都比较,隔几个加权看总和就可以了[:D][:D]
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部