matlab编一个福利彩票电脑选号的程序,【Matlab编程】Matlab让电脑失而复得

这篇博客介绍如何使用MATLAB编写一个程序,当电脑摄像头检测到非主人的脸部时,自动拍摄小偷照片并发送到预设邮箱。通过设置SMTP服务器和图像对比算法,实现了电脑防盗的功能。此外,还提供了将程序编译成EXE文件和创建Windows任务计划以定期运行的方法。
摘要由CSDN通过智能技术生成

在学校常常有同学电脑失窃,大抵都是粗细大意。据说iPhone手机失窃后能够获取小偷的照片,从而将照片找到。如今用matlab写一个程序使得当小偷使用电脑上网时,电脑自己主动将电脑前面的人的照片发到你指定的邮箱。

前提是你的电脑装有摄像头而且有网!

先用以下代码測试你邮箱是否正确设置:

clear

myaddress='[email protected]';

%这里sender为你发邮箱的qq号。注意你的邮箱要已经提供SMTP服务。没有也没关系,qq邮箱会提醒设置设置的mypassword='password';%这里为你邮上面邮箱相应的密码(一般和QQ密码同样)

to = '[email protected]'; %这里为你要发送到的邮箱

setpref('Internet','E_mail',myaddress);

setpref('Internet','SMTP_Server','smtp.qq.com');

setpref('Internet','SMTP_Username',myaddress);

setpref('Internet','SMTP_Password',mypassword);

props = java.lang.System.getProperties;

props.setProperty('mail.smtp.auth','true');

subject ='电脑小偷';

obj = videoinput('winvideo');

h=preview(obj);

set(gcf,'Visible','off')

set(h,'Visible','on')

start(obj);

pause(10);

photo=getsnapshot(obj);

imwrite(photo, 'thief.jpg')

sendmail(to, subject,[],'thief.jpg');

在matlab中运行上述脚本文件,看是否发送邮件

下面四步是进行电脑跟踪:程序代码例如以下:

第一步:设置自己的相片(注意全部操作都是在你matlab当前文件夹下)

obj = videoinput('winvideo');

h=preview(obj);

set(gcf,'Visible','off')

set(h,'Visible','on')

start(obj);

pause(10) % 假设你的电脑调用摄像头的时间很短,能够不用这句

photo=getsnapshot(obj);

imwrite(photo, 'yourpicture.jpg');第二步:获取当前电脑前人的相片并与自己的图片进行比較,若相似度不高。则会发送当前电脑前人的相片到你指定的邮箱

%文件名称为sendemail.m

clear

myaddress='[email protected]';

%这里sender为你发邮箱的qq号。注意你的邮箱要已经提供SMTP服务,没有也没关系,qq邮箱会提醒设置设置的mypassword='password'; %这里为你邮上面邮箱相应的密码(一般和QQ密码同样)

to = '[email protected]'; %这里为你要发送到的邮箱

setpref('Internet','E_mail',myaddress);

setpref('Internet','SMTP_Server','smtp.qq.com');

setpref('Internet','SMTP_Username',myaddress);

setpref('Internet','SMTP_Password',mypassword);

props = java.lang.System.getProperties;

props.setProperty('mail.smtp.auth','true');

subject ='电脑小偷'; %邮件主题

obj = videoinput('winvideo');

h=preview(obj);

set(gcf,'Visible','off')

set(h,'Visible','on')

start(obj);

pause(10) % 假设你的电脑调用摄像头的时间很短。能够不用这句

photo=getsnapshot(obj);

imwrite(photo, 'thief.jpg')

pause(10)%假设你的电脑调用摄像头的时间很短,能够不用这三句

photo=getsnapshot(obj);

imwrite(photo, 'thief.jpg')

a=imread('yourpicture.jpg');%这里的'yourpicture.jpg为你自己的照片

a1=rgb2gray(a);

aa=imread('thief.jpg');

aa1=rgb2gray(aa);

corr= corr2(a1,aa1);

if corr<0.85 %0.85能够自己设置0-1的范围,值越小表示两幅图很easy匹配,最好取值为0.8-0.9

sendmail(to, subject,[],'thief.jpg');

end

第二步:将step2中的程序编译生成exe文件

能够直接上网找到方法,我在这里示范一种,操作例如以下:首先去掉黑框: 在命令窗体输入:cd(prefdir) edit compopts.bat在打开的文件最后加入以下语句(前提是在以下图解的安装编译器选择的是vc编译器,若选择其他编译器。自己百度方法):       set LINKFLAGS=%LINKFLAGS%/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup

编译器的安装例如以下图:

3fb00182d178a6b410f12f0412182549.png

mcc -m sendemail (sendemail 为step2中的文件)这一命令可能会编译几分钟,请耐心等待,运行完后会生成sendemail.exe文件

第四步:创建任务计划

右击我的计算机,单击管理。在左边栏中选中“任务计划程序”。

在右边栏中选中“创建任务“,弹出创建任务对话框,为任务填个名称,勾选下方隐藏,配置选为。windows7那一项,触发器选项卡中单击“新建”,选择“登录时”。“每天”,勾选延迟任务。设定延迟时间为3分钟。确定。“操作”选项卡,单击新建,选择“启动程序”,单击“浏览”。选择matlab文件夹下生成的exe文件,确定。

“条件”选项卡中仅仅需勾选“仅仅有在下面网络连接可用时才启动”,然后在下拉列表中选择“不论什么连接”(这个设置非常重要,仅仅有在电脑联网的情况下才干发送邮件)。确定。后面两个选项卡,自己看样子办。

然后注销用户又一次登录。在三分钟内连接上网络。三分钟后,程序会自己主动执行,整个过程结束。

程序说明:因为程序中有preview。导致拍摄图像时会显示出窗体。easy被小偷发现。假设你的摄像头启动十分快能够将Step2中的程序改为:

clear

myaddress='[email protected]';

mypassword='password';

to = '[email protected]';setpref('Internet','E_mail',myaddress);

setpref('Internet','SMTP_Server','smtp.qq.com');

setpref('Internet','SMTP_Username',myaddress);

setpref('Internet','SMTP_Password',mypassword);

props = java.lang.System.getProperties;

props.setProperty('mail.smtp.auth','true');

subject ='电脑小偷';

obj = videoinput('winvideo');

%h=preview(obj);

set(gcf,'Visible','off')

%set(h,'Visible','on')start(obj);

pause(2);

photo=getsnapshot(obj);

imwrite(photo, 'thief.jpg')

a=imread('yourpicture.jpg');

a1=rgb2gray(a);

aa=imread('thief.jpg');

aa1=rgb2gray(aa);

corr= corr2(a1,aa1);

if corr<0.85

sendmail(to, subject,[],'thief.jpg');

end

上面程序的图像匹配不准确。希望在以后通过图像识别来精确地辨别电脑主人。在Step4中你也能够依据自己的需求改变任务创建计划。比方说,设置在每天的详细时间点启动任务,获取图像并发送。

在这样的情况下,就没有必要进行图像匹配了。就能够仅仅使用本文最前面的一段程序就能够了。

作者:nineheadedbird

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值