自制摄像头监控程序

来源:百度文库 编辑:神马文学网 时间:2024/04/27 12:38:18
 
自制摄像头监控程序
花了一百块钱买的USB摄像头除了跟几个朋友聊视频外,平时就一直处于闲置状态。一日我突发奇想:能不能用它来做个视频监视报警系统,经过本人一段时间的研究发现还真是可以,只要使用C++ Builder6就很容易实现这个功能,而且效果还是不错的,现在就把自己的心得和大家分享一下!一、创建窗体
创建窗体Form1,将它调整到适当大小,在上面放上Panel1、Label1、StatusBar1、ScrollBar1、GroupBox1、Memo1、Button1、Button2和Timer1控件,将Button1的caption属性改为“启动摄像头”,Button2的Captio n属性改为“开始监控”,Label1的Caption改为“灵敏度”,修改Timer1的Enabled为false,Interval为500,修改ScrollBar1的Min为100,Max为1000。
二、增加头文件
打开头文件:Unit1.h,为它增加两个头文件:
#include "jpeg.hpp"
#include "vfw.h"
修改private段如下:
private: // User declarations
CAPDRIVERCAPS gCapDrvCaps;
int sizef,sizetemp,jd;
int __fastcall getfiles();
void __fastcall scanpic();
三、添加函数
打开Unit1.cpp文件,添加两个函数:
void __fastcall TForm1::scanpic()
{
Graphics::TBitmap *Bitmap=new Graphics::TBitmap;
TJPEGImage *jmp= new TJPEGImag
e;
Bitmap->Width=Form1->Panel1->Width;
Bitmap->Height=Form1->Panel1->Height;
Bitmap->PixelFormat=pf32bit;
::BitBlt(Bitmap->Canvas->Handle,Form1->Panel1->Left,Form1->Panel1->Top,Form1->Panel1->Width,Form1->Panel1->Height, Form1->Canvas->Handle,0,0,SRCCOPY);
// Bitmap->SaveToFile("tu.bmp");
jmp->Assign(Bitmap);
jmp->Compress();
jmp->SaveToFile("temp.jpg");
delete jmp;
delete Bitmap;
}
//-----------------
int __fastcall TForm1::getfiles()
{
HANDLE HMyFile=::CreateFile("aa.jpg",GENERIC_READ,0,0,OPEN_EXIS
TING,FILE_ATTRIBUTE_NORMAL,0);
double sized=(double)::GetFileSize((void *)HMyFile,NULL);
CloseHandle(HMyFile);
return sized;
}
四、为按钮添加代码
双击Button1按钮,为它添加OnClick事件代码如下:
HWND capWin = capCreateCapture
Window ((LPSTR) "Video Windows",WS_CHILD | WS_VISIBLE,Panel1->Left,Panel1->Top,Panel1->Width,Panel
1->Height,(HWND) Handle,1);
if(capDriverConnect(capWin,0))
{
capDriverGetCaps(capWin,&gCapDrvCaps,sizeof(CAPDRIVERCAPS));
if(gCapDrvCaps.fCaptureInitialized)
{
capPreviewRate(capWin,66);
capPreview(capWin,TRUE);
}
else
{
StatusBar1->SimpleText="摄像头初始化失败!";
}
}
else
{
StatusBar1->SimpleText="摄像头连接不成功!";
}
双击Button2为它添加OnClick事件代码如下:
jd=ScrollBar1->Position;
scanpic();
sizef=getfiles();
Timer1->Enabled=true;
双击ScrollBar1为它添加OnChange事件如下:
jd=ScrollBar1->Position;
双击Timer1为它添加OnTimer事件如下:
scanpic();
sizetemp=getfiles();
if(abs(sizetemp-sizef)>jd)
{
AnsiString fp;
DateTimeToString(fp,"yyyy'年'mm'月'dd'日'mm'分'ss'秒'",Now());
Memo1->Lines->Add("有人偷苹果!"+fp+IntToStr(sizetemp));//产生报警日志
sndPlaySound("xx.wav",SND_ASYNC);//播放警报声
}
五、设置报警声
在程序目录下面放上你喜欢听到的报警声音,并将声音文件命名为xx.wav,运行程序,点击“启动摄像头”将摄像头对准桌面上的苹果,当画面基本稳定时再按“开始监控”。这时你偷偷地把手伸过去抓苹果,是不是报警了?同样你还可以将摄像头对准你房间的门,防止你在聚精会神地玩电脑时,有人突然窜到你的背后吓唬你,在使用过程中还可以任意调整监视系统的灵敏度。
引用(1) 
评论(0)
阅读(38)
上一篇:简单方法(6步)让平凡的照片变的不平凡
下一篇:超小动态小图标
最近读者
阿建
高人
南山夫子
hlqasd
继往开来
zydonglijiang@126
shaodeyi
税海
评论
姓   名: (必填)        我要登录 ->
邮箱或网址: (选填)

暮野苍狼
最新日志
【经典音乐欣赏】 红楼梦曲笛音乐(FLASH版)
精美水晶球闪图
经典的不良笑话
如何自己制作QQ空间开场动画!
如果你也流泪了,请把它转发你最爱的人
[大图音画] 【雪舞音画】殇情赋
公司简介-联系方法-招聘信息-客户服务-相关法律-互动营销- 
网易公司版权所有 ©1997-2009
正在加载中...