精华内容
下载资源
问答
  • 最初的想法是写一个可以用电脑前置摄像头拍照的程序,在舍友使用你电脑的时候,不经意间获取到一大堆奇葩舍友的表情包。 然后我又突发奇想,要不搞个开机启动吧,这样我就可以看到是谁开启了我的电脑啦。 然后,突...
  • Python控制摄像头拍照并发邮件

    千次阅读 2019-04-18 20:24:54
    最初的想法是写一个可以用电脑前置摄像头拍照的程序,在舍友使用你电脑的时候,不经意间获取到一大堆奇葩舍友的表情包。 然后我又突发奇想,要不搞个开机启动吧,这样我就可以看到是谁开启了我的电脑啦。 然后,突...

    1 前言

    为什么会有写这个程序的想法呢?

    最初的想法是写一个可以用电脑前置摄像头拍照的程序,在舍友使用你电脑的时候,不经意间获取到一大堆奇葩舍友的表情包。

    然后我又突发奇想,要不搞个开机启动吧,这样我就可以看到是谁开启了我的电脑啦。

    然后,突(nao)发(dong)奇(da)想(kai)的我又想到万一我电脑不在身边怎么办?要不再加个邮件发送机制吧,开机拍到照片再邮件发送给我?哈哈

    2 工具

    deepin 15.9

    好看好用的国产linux系统

    python 2.7或者3.6

    解释器,哪个版本都可以,我选择3.6

    smtplib

    用来发送邮件

    email

    用来构造邮件内容的库

    opencv

    用来调取摄像头拍摄照片

    time

    获取开机以及拍照的时间

    os

    判断网络连接

    获取脚本路径

    sys

    判断网络是否联通

    3 思路

    1.用opencv库调用摄像头拍照保存为文件。

    2.检查网络是否连接,未连接则图片保存到本地。

    3.用email库构造邮件内容,把保存的照片以附件的形式插入到邮件内容中。

    4.用smtplib库发送邮件给指定邮件接收者。

    5.实现脚本开机自启动。

    4 安装及导入所使用的包

    首先当然是安装opencv啦。

    其他的email、smtplib、sys、os、time为python默认安装的包,我们只需要导入即可。

    如果是python3.6安装opencv就在终端输入:

    pip3install opencv-python

    如果是python2.7安装opencv,就在终端输入:

    pipinstall opencv-python

    安装完成后,我们导入必要的包。

    各个包的作用在前文已经讲过,不再多言。

    email 我们只需要部分功能,所以选择性导入

     


    5 设置参数

    将smtp服务器,登录邮箱账号及密码,收件人,脚本路径等设置为全局变量。方便以后程序移植与修改。

     

    注:很多邮箱为了安全起见,不会使用真实的登录密码,而是要使用授权码,在QQ邮箱的设置里面可以找到生成授权码选项。

    6 实现拍照

     


    7 构造邮件内容

     


    8 实现邮件发送

     


    9 判断网络联通状态

    判断网络联通状态的方法很多,我采用很简单很直接的ping。

     


    10 主函数逻辑

    如果网络连接正常,则拍照发邮件。

    如果网络未连接,等待十秒钟再次测试,如果等待次数超过设置的最大次数,程序退出。

     


    11 实现开机自启动

    首先要写一个开机自启脚本,文件名为:autoStart.sh

    脚本内容为

     

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

    ./home/projects/sendemail/autoStart.sh

    大功告成。

    10 重启系统

    代码都写好了,重启系统就可以收到邮件啦。

    展开全文
  • python3代码,使用PYQT5的QCameraInfo得到摄像头列表,然后CV2库从摄像头得到图像并保存.
  • python 双目摄像头拍照

    2020-04-12 17:42:48
    一个非常简单的拍照程序可以通过按键来是先拍照和保存照片,没有什么可以讲解的,相信大加很容易看明白。希望能给大家带来一定的帮助。谢谢
  • 主要分为2步,首先控制摄像头拍照,然后将拍到的照片作为邮件附件发送就行,下面我简单介绍一下实现过程,实验环境win7+python3.6+pycharm5.0,主要内容如下:控制摄像头拍照这里我们直接使用opencv的python接口包就...

    这个实现起来非常容易,主要分为2步,首先控制摄像头拍照,然后将拍到的照片作为邮件附件发送就行,下面我简单介绍一下实现过程,实验环境win7+python3.6+pycharm5.0,主要内容如下:

    控制摄像头拍照

    这里我们直接使用opencv的python接口包就行,借助于opencv强大的功能,我们只需要很少量的代码就可以实现摄像头拍照的功能,具体步骤如下:

    1.首先,安装opencv-python模块,这个直接在cmd窗口输入命令“pip install opencv-python”就行,如下,很快就能安装成功:

    2.安装完成后,我们就可以编写代码来实现控制摄像头拍照的功能了,测试代码如下,非常简单,打开摄像头,按帧播放,当按下q键时保存图片并退出,当前目录下就会出现拍到的照片,后面就是将这个照片作为邮件附件进行发送:

    发送邮件

    这里以发送163邮件为例,主要用到Python自带的smtplib模块,专门用于发送邮件,具体步骤如下:

    1.首先,需要开启开启邮箱POP3/SMTP服务,这个直接登录邮箱,在上面菜单栏点击“设置”,勾选POP3/SMPT服务就行,如下:

    接着点击左边管理列表的“客户端授权密码”,设置授权密码,后面的python代码中需要借助这个密码才能登陆邮箱服务器发送邮件:

    2.一切设置完成后,我们就可以直接编写代码来发送带有照片的邮件了,测试代码如下,非常简单,只需要在邮件中attach一下照片就行,函数输入参数分别为发送人邮箱、密码、接收人邮件列表、主题、内容和附件名称:

    运行这个程序,邮件就可以正常发送,并且可以看到发送的照片附件,如下:

    至此,我们就完成了利用python来控制摄像头拍照并发送邮件。总的来说,整个过程不难,思路也比较清晰,只要你有一定的python基础,熟悉一下上面的代码,多调试几遍程序,很快就能掌握的,网上也有相关教程和资料,非常丰富详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。

    展开全文
  • 案例故事:有一款已经上市的终端产品,偶现异常自动...许多需要长时间的压测的场景,我们都可以通过摄像头拍照,来记录被测试设备的运行情况,本篇主要介绍如何通过Python + ffmpeg + 电脑摄像头实现自动化持续拍照...

    案例故事:有一款已经上市的终端产品,偶现异常自动重启的情况,

    测试经理要求我们压测并尝试复现,我们的压测方案是:

    利用摄像头,每1 ~ 2秒拍一张终端产品运行的图片,拍摄一晚上,

    回头一张图片一张图片快速过一遍,看是否出现过了系统启动界面。

    camcoder.jpg

    许多需要长时间的压测的场景,我们都可以通过摄像头拍照,来记录被测试设备的运行情况,

    本篇主要介绍如何通过Python + ffmpeg + 电脑摄像头实现自动化持续拍照功能。

    准备阶段

    ffmpeg的下载地址及其介绍可参考:ffmpeg - 音视频图像编解码工具

    确保ffmpeg.exe已经加入Path环境变量里的某个路径下。

    确保摄像头驱动已经Ok,在Windows设备管理器"图像设备"里可以找到这个设备。

    format,png

    Python面向对象形式

    由于涉及设备初始化,开始拍照等功能,

    更建议直接用面向对象形式来定义这个ffmpeg_capture.py模块。

    # coding=utf-8

    import os

    import time

    class FFmpegCapturer(object):

    def __init__(self, camera_device="None"):

    self.camera_device = camera_device

    def start_capture(self, output_file):

    command = "ffmpeg -f dshow -i video=\"%s\" -qscale:v 2 -vframes 1 -s 1920x1080 -y %s"%(self.camera_device, output_file)

    os.system(command)

    if __name__ == "__main__":

    CAMERA_DEVICE = "USB " # 常量,自行去Windows设备管理器查看

    f_obj = FFmpegCapturer(CAMERA_DEVICE)

    for i in range(1000):

    print("摄像头正在进行第%s次拍照"%i)

    f_obj.start_capture("%s.jpg"%i)

    time.sleep(1)

    运行效果视频

    小提示

    (1). 摄像头购买一个USB口支持高清的即可,一般100 - 300元左右一个

    (2). 其实笔记本电脑自带的摄像头也可以通过以上方法调用

    (3). 设备管理器里显示的设备名称,有时候带有特殊字符,比如以上案例的"USB "居然多了一个空格,

    碰到这种情况,可以通过“ffmpeg -list_devices true -f dshow -i dummy”命令准确列出设备名称的文本来。

    (4). 以上核心其实就1条命令:

    ffmpeg -f dshow -i video="USB " -qscale:v 2 -vframes 1 -s 1920x1080 -y C:\1.jpg

    但是通过Python面向对象封装后,可以实现更完美的自动化调用!

    展开全文
  • I checked other solutions, but they weren't answering my question.My issue is that whenever I try to capture just one frame from a video (I want to basically take a picture with my webcam) I just get ...

    1586010002-jmsa.png

    I checked other solutions, but they weren't answering my question.

    My issue is that whenever I try to capture just one frame from a video (I want to basically take a picture with my webcam) I just get a black window.

    Code -

    import cv2

    cam = cv2.VideoCapture(0)

    frame = cam.read()[1]

    cv2.imwrite('img2.png', frame)

    cv2.imshow("img1", frame)

    My webcam is USB, 720p at 30fps.

    Thanks.

    解决方案

    One of two things. It might be that you need to add a waitKey() after cv2.imshow(). Alternatively, you aren't checking the return from the camera for any errors. It could be a connection problem. Here are the two things to do.

    import cv2

    cam = cv2.VideoCapture(0)

    retval, frame = cam.read()

    if retval != True:

    raise ValueError("Can't read frame")

    cv2.imwrite('img2.png', frame)

    cv2.imshow("img1", frame)

    cv2.waitKey()

    The waitKey() function halts the program until a user has entered a key in the window.

    展开全文
  • python调用摄像头摄像

    2018-08-27 16:15:04
    采用python进行摄像头调用,实现实时显示、按键存储的功能,便于后期python对实时成像的图像进行后处理。
  • 这里我使用自己的电脑进行控制拍照,将其发送到自己的邮箱;图片经过base64编码,至于怎么解码,从邮箱下载到本地重命名为后缀名为.jpg即可 另外项目目录也会出现 图片已经展示过???? 2、代码展示 import cv2 as...
  • frame) break cap.release() cv2.destroyAllWindows() 以上这篇python+opencv打开摄像头,保存视频、拍照功能的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
  • 主要介绍了python+openCV调用摄像头拍摄和处理图片的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • opencv python 采用摄像头拍照

    万次阅读 多人点赞 2018-07-26 18:38:33
    因为最近需要做个相机标定,所以要先用摄像头拍一下标定的照片。 按下s键就会保存照片到指定文件夹 按下esc就会退出程序 import cv2 cap=cv2.VideoCapture(0) i=0 while(1): ret ,frame = cap.read() k=cv2....
  • python打开摄像头

    2017-12-20 21:52:16
    python3.6及opencv,控制电脑打开摄像头,并将录像保存到本地
  • win10下使用命令行自动打开摄像头拍照,用python实现的一个脚本。做自功化测试的时候很好用。缺点是单一任务,运行时一定摄像头要在前端。
  • 如下所示: import cv2 import numpy as np bins = np.arange(256).reshape(256,1) def hist_curve(im): h = np.zeros((300,256,3)) if len(im.shape) == 2: color = [(255,255,255)] elif im.shape[2] == 3: ...
  • python双目摄像头调用

    2020-03-24 10:48:14
    打开双目摄像头,进行拍照,并保存到相应文件夹内,主要用于双目标定的前期工作,另外附有一个常用的python小程序:批量重命名
  • 调用摄像头实现拍照 按s键,拍照并保存; 按q键,退出。 自行更改照片保存的路径即可 import cv2 if __name__ == '__main__': i=0 cap=cv2.VideoCapture(0) while(1): ret ,frame = cap.read() cv2.imshow...
  • Python 调用摄像头

    2020-11-21 00:26:06
    环境搭建使用方法Device()调用一个设备saveSnapshot()拍下照片举例-拍一张照片from VideoCapture import Devicecam = Device()cam.saveSnapshot('image.jpg')举例-持续拍照并进行人脸识别(人脸识别参考百度AI接口...
  • 树莓派python调用摄像头拍照

    千次阅读 2020-09-06 08:21:01
    1、摄像头预览 from picamera import PiCamera from time import sleep camera = PiCamera() camera.start_preview() sleep(10) camera.stop_preview() 2、如果图像时上下颠倒的,可以用一下代码实现翻转 camera....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,223
精华内容 1,289
关键字:

python控制摄像头拍照

python 订阅