本文主要是介绍【Matlab编程】Matlab让电脑失而复得,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在学校经常有同学电脑失窃,大抵都是粗细大意。据说iPhone手机失窃后可以获取小偷的照片,从而将照片找到。现在用matlab写一个程序使得当小偷使用电脑上网时,电脑自动将电脑前面的人的照片发到你指定的邮箱。前提是你的电脑装有摄像头并且有网!先用下面代码测试你邮箱是否正确设置:
clearmyaddress='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
clearmyaddress='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的范围,值越小表示两幅图很容易匹配,最好取值为0.8-0.9
sendmail(to, subject,[],'thief.jpg');
end
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
上面程序的图像匹配不准确,希望在以后通过图像识别来精确地辨别电脑主人。在Step4中你也可以根据自己的需求改变任务创建计划,比如说,设置在每天的具体时间点启动任务,获取图像并发送。在这种情况下,就没有必要进行图像匹配了,就可以只使用本文最前面的一段程序就可以了。
原文:http://blog.csdn.net/tengweitw/article/details/34559489
作者:nineheadedbird
这篇关于【Matlab编程】Matlab让电脑失而复得的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!