加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

吴俊杰“在线数字气象站”-马峰老师使用摄像头拍照并实时传送至邮箱

(2023-03-30 07:24:37)
分类: 研究-学习
起源于课标的综合性学习活动,学科融合的一个案例。
提到学科大概念中的数据的概念。自主生成数据。通过多人联合、持续收集,形成跟生活和学习密切相关的大数据。这里面涉及到了数据安全的要求。
借助于不同的软硬件设备,搜集数据的方式有很多种。本次是利用现有的温湿度计,通过摄像头拍照,定时采集数据,保存至硬盘,并可以在线传输至指定邮箱,实现信息的汇总和保存。
主要应用到了python中的opencv-python库,通过mind+可以很方便的实施(库已经自动安装)
主要代码如下:
import cv2
video=cv2.VideoCapture(0 cv2.CAP_DSHOW) #win7下的视频编码格式,特别要用到cv2.CAP_DSHOW
print(video)
success,img=video.read()
cv2.imshow('hello',img)
cv2.waitKey(1000000000)

'''
import cv2
video=cv2.VideoCapture(0 cv2.CAP_DSHOW)
while True:
    success,img=video.read()
    cv2.imshow('hello',img)
    cv2.imwrite('good.jpg',img)
    cv2.waitKey(1000)
'''

import cv2
video=cv2.VideoCapture(0 cv2.CAP_DSHOW)
num=1
while True:
    success,img=video.read()
    cv2.imshow('hello',img)
   cv2.imwrite('good.jpg',img)
    cv2.imwrite('good'+str(num)+'.jpg',img)
    cv2.waitKey(1000)
    num+=1

import cv2
import numpy as np
import time
"q"
q= "x"
cap cv2.VideoCapture(0,cv2.CAP_DSHOW)
cap.set()设置摄像头参数:3:宽   4:高
cap.set(3640)
cap.set(4480)
while (cap.isOpened()): #cap.isOpened()返回布尔值,来查看是否摄像头初始化成功
    print("已打开视像头")
    ret_flag, Vshow cap.read()
    cap.read()返回两个值,第一个值为布尔值,如果视频正确,那么就返回true,  第二个值代表图像三维像素矩阵
    frame cv2.flip(Vshow, 1)
    cv2.imshow('123',frame )
    cv2.waitKey(100)
    if == ord(s):
        print(cap.get(3))
        print(cap.get(4))
    elif == ord(q):
        break
    print(摄像头捕获成功)
    pass
time.sleep(1)
cap.release()
cv2.destroyAllWindows()


==============
马老师提供代码:
import cv2 import time import smtplib from email.mime.image import MIMEImage from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart folder = 'D:/bbb/' # 定义图片路径(Mind+中运行时需要指定到固定位置) def GetPicture():#拍照保存图像 camera = cv2.VideoCapture(0) success,img = camera.read() cv2.imshow("camera",img) cv2.imwrite(folder + name +".jpg",img) cv2.waitKey(1000) camera.release()#释放摄像头 cv2.destroyWindow("camera")# 关闭窗口 def setMsg():# 邮件格式设置 msg = MIMEMultipart('mixed') msg['Subject'] = '定时照片' msg['From'] = sender #发送方 msg['To'] = receiver #接收方 #邮件正文 text = '定时拍的共享照片' text_plain = MIMEText (text,'plain','utf-8') msg.attach(text_plain) #图片附件 SendImageFile = open("D:/bbb/"+ name + ".jpg",'rb').read() image = MIMEImage(SendImageFile) image['content-Disposition'] = 'attachment;filename=photo.jpg' msg.attach(image) return msg.as_string() def SendEmail(msg):# 发送邮件 smtp = smtplib.SMTP() smtp.connect(host) smtp.login(sender,pwd) smtp.sendmail(sender,receiver,msg()) smtp.quit() pwd = 'dxxxxxxxxxhh'# 授权码 host = 'smtp.qq.com' port = 25 sender = '877156811@qq.com' receiver = '846032001@qq.com' while(True): name = time.strftime("%Y%m%d-%H%M%S",time.localtime()) GetPicture() msg = setMsg SendEmail(msg) cv2.waitKey(10000)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有