标签:
在学校常常有同学电脑失窃,大抵都是粗细大意。据说iPhone手机失窃后能够获取小偷的照片,从而将照片找到。如今用matlab写一个程序使得当小偷使用电脑上网时,电脑自己主动将电脑前面的人的照片发到你指定的邮箱。
前提是你的电脑装有摄像头而且有网!
先用以下代码測试你邮箱是否正确设置:
clear myaddress='sender@qq.com'; %这里sender为你发邮箱的qq号。注意你的邮箱要已经提供SMTP服务。没有也没关系,qq邮箱会提醒设置设置的mypassword='password';%这里为你邮上面邮箱相应的密码(一般和QQ密码同样) to = 'receiver@qq.com'; %这里为你要发送到的邮箱 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');
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='sender@qq.com'; %这里sender为你发邮箱的qq号。注意你的邮箱要已经提供SMTP服务,没有也没关系,qq邮箱会提醒设置设置的mypassword='password'; %这里为你邮上面邮箱相应的密码(一般和QQ密码同样) to = 'receiver@qq.com'; %这里为你要发送到的邮箱 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
在右边栏中选中“创建任务“,弹出创建任务对话框,为任务填个名称,勾选下方隐藏,配置选为。windows7那一项,触发器选项卡中单击“新建”,选择“登录时”。“每天”,勾选延迟任务。设定延迟时间为3分钟。确定。“操作”选项卡,单击新建,选择“启动程序”,单击“浏览”。选择matlab文件夹下生成的exe文件,确定。
“条件”选项卡中仅仅需勾选“仅仅有在下面网络连接可用时才启动”,然后在下拉列表中选择“不论什么连接”(这个设置非常重要,仅仅有在电脑联网的情况下才干发送邮件)。确定。后面两个选项卡,自己看样子办。
然后注销用户又一次登录。在三分钟内连接上网络。三分钟后,程序会自己主动执行,整个过程结束。
clear myaddress='sender@qq.com'; mypassword='password'; to = 'receiver@qq.com';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
在这样的情况下,就没有必要进行图像匹配了。就能够仅仅使用本文最前面的一段程序就能够了。
原文:http://blog.csdn.net/tengweitw/article/details/34559489
作者:nineheadedbird
标签:
原文地址:http://www.cnblogs.com/mengfanrong/p/5175586.html