亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Python控制攝像頭拍照并發郵件的案例

發布時間:2021-04-25 14:08:46 來源:億速云 閱讀:166 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關使用Python控制攝像頭拍照并發郵件的案例的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

python的五大特點是什么

python的五大特點:1.簡單易學,開發程序時,專注的是解決問題,而不是搞明白語言本身。2.面向對象,與其他主要的語言如C++和Java相比, Python以一種非常強大又簡單的方式實現面向對象編程。3.可移植性,Python程序無需修改就可以在各種平臺上運行。4.解釋性,Python語言寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序。5.開源,Python是 FLOSS(自由/開放源碼軟件)之一。

 工具

?deepin 15.9
?好看好用的國產linux系統
?python 2.7或者3.6
?解釋器,哪個版本都可以,我選擇3.6
?smtplib
?用來發送郵件
?email
?用來構造郵件內容的庫
?opencv
?用來調取攝像頭拍攝照片
?time
?獲取開機以及拍照的時間
?os
?判斷網絡連接
?獲取腳本路徑
?sys
?判斷網絡是否聯通

思路

?1.用opencv庫調用攝像頭拍照保存為文件。
?2.檢查網絡是否連接,未連接則圖片保存到本地。
?3.用email庫構造郵件內容,把保存的照片以附件的形式插入到郵件內容中。
?4.用smtplib庫發送郵件給指定郵件接收者。
?5.實現腳本開機自啟動。

安裝及導入所使用的包

首先當然是安裝opencv啦。

其他的email、smtplib、sys、os、time為python默認安裝的包,我們只需要導入即可。

如果是python3.6安裝opencv就在終端輸入:

pip3 install opencv-python

如果是python2.7安裝opencv,就在終端輸入:

pip install opencv-python

安裝完成后,我們導入必要的包。

各個包的作用在前文已經講過,不再多言。

email 我們只需要部分功能,所以選擇性導入

 import cv2
 import smtplib
 import sys
 import os
 import time
 from email.mime.image import MIMEImage
 from email.mime.multipart import MIMEMultipart
 from email.mime.text import MIMEText

設置參數

將smtp服務器,登錄郵箱賬號及密碼,收件人,腳本路徑等設置為全局變量。方便以后程序移植與修改。

smtpserver = 'smtp.163.com'   # smtp服務器
username = '888888888@163.com' # 發件郵箱賬號
password = '888888888'   # 郵箱登錄密碼
sender  = '888888888@163.com' # 發件人
addressee = '999999999@qq.com'  # 收件人
exit_count = 5      # 嘗試聯網次數
path  = os.getcwd()   #獲取圖片保存路徑

注:很多郵箱為了安全起見,不會使用真實的登錄密碼,而是要使用授權碼,在QQ郵箱的設置里面可以找到生成授權碼選項。

實現拍照

def getPicture():
 cap = cv2.VideoCapture(0)
 ret, frame = cap.read()
 cv2.imwrite(path+'/person.jpg', frame)
 # 關閉攝像頭
 cap.release()

構造郵件內容

def setMsg():
 # 下面依次為郵件類型,主題,發件人和收件人。
 msg = MIMEMultipart('mixed')
 msg['Subject'] = '電腦已經啟動'
 msg['From'] = '88888888888@163.com <88888888888@163.com>'
 msg['To'] = addressee
 # 下面為郵件的正文
 text = "主人,你的電腦已經開機!
照片如下!"
 text_plain = MIMEText(text, 'plain', 'utf-8')
 msg.attach(text_plain)
 # 構造圖片鏈接
 sendimagefile = open(path+'/person.jpg', 'rb').read()
 image = MIMEImage(sendimagefile)
 # 下面一句將收件人看到的附件照片名稱改為people.png。
 image["Content-Disposition"] = 'attachment; filename="people.png"'
 msg.attach(image)
 return msg.as_string()

實現郵件發送

def sendEmail(msg):
 # 發送郵件
 smtp = smtplib.SMTP()
 smtp.connect('smtp.163.com')
 smtp.login(username, password)
 smtp.sendmail(sender, addressee, msg)
 smtp.quit()

判斷網絡聯通狀態

判斷網絡聯通狀態的方法很多,我采用很簡單很直接的ping。

# 判斷網絡是否聯通,成功返回0,不成功返回1
# linux中ping命令不會自動停止,需要加入參數 -c 4,表示在發送指定數目的包后停止。
def isLink():
 return os.system('ping -c 4 www.baidu.com')
 # return os.system('ping www.baidu.com')

主函數邏輯

如果網絡連接正常,則拍照發郵件。

如果網絡未連接,等待十秒鐘再次測試,如果等待次數超過設置的最大次數,程序退出。

def main():
 reconnect_times = 0
 while isLink():
  time.sleep(10)
  reconnect_times += 1
  if reconnect_times == exit_count:
   sys.exit()
 getPicture()
 msg = setMsg()
 sendEmail(msg)

11 實現開機自啟動

首先要寫一個開機自啟腳本,文件名為:autoStart.sh

腳本內容為

#切換到我們獲取照片和發送郵件的工作目錄
cd /home/projects/sendemail
#執行發送郵件的腳本
python2 sendEmile.py

然后 在/etc/rc.local最后添加一行

./home/projects/sendemail/autoStart.sh

大功告成。

10 重啟系統

代碼都寫好了,重啟系統就可以收到郵件啦。

感謝各位的閱讀!關于“使用Python控制攝像頭拍照并發郵件的案例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

尖扎县| 黑山县| 永济市| 织金县| 荥经县| 巩义市| 宜阳县| 巍山| 阳新县| 太保市| 衢州市| 乃东县| 元氏县| 绥芬河市| 南华县| 久治县| 门源| 区。| 江口县| 万州区| 南部县| 紫阳县| 道孚县| 梅州市| 金阳县| 进贤县| 武邑县| 宜兰市| 宾阳县| 虹口区| 定西市| 井冈山市| 阿拉善左旗| 西畴县| 龙南县| 外汇| 安福县| 荥经县| 柳河县| 泸州市| 合阳县|