精华内容
下载资源
问答
  • 参考: ... ... 分析权衡了下, 使用外置免驱usb摄像头,或者pi cam。 玩视频太危险,占用cpu资源和空间,以及泄漏;还是玩图像长久些。 使用python脚本配合opencv库,可

    参考:

    http://www.shumeipai.net/thread-1210-1-4.html

    http://www.shumeipai.net/thread-19192-1-4.html

    分析权衡了下,


    使用外置免驱usb摄像头,或者pi cam。

    玩视频太危险,占用cpu资源和空间,以及泄漏;还是玩图像长久些。


    使用python脚本配合opencv库,可以截图抓图,

    或者用linux下的软件fswebcam来实现截取。



    存成连续jpg文件到本地;


    然后用py脚本发公开微博,或者合并虚拟目录到ftp上http web服务器目录上,

    这样就可以从微博端查看。


    【未完待续】

    展开全文
  • 树莓派】使用python调用USB摄像头

    万次阅读 2018-08-22 10:09:13
    首先根据我之前的博客安装好摄像头需要的库。 然后代码如下: import os improt sys import re import commands a=commands.getoutput("fswebcam --no-banner -r 640x480 image3.jpg&...

    首先根据我之前的博客安装好摄像头需要的库。
    然后代码如下:

    import os
    import sys
    import re
    import commands
    
    a=commands.getoutput("fswebcam --no-banner -r 640x480 image3.jpg")
    print a
    

    运行结果如下

    >>> print a
    --- Opening /dev/video0...
    Trying source module v4l2...
    /dev/video0 opened.
    No input was specified, using the first.
    --- Capturing frame...
    Captured frame in 0.00 seconds.
    --- Processing captured image...
    Disabling banner.
    Writing JPEG image to 'image3.jpg'.
    
    

    同时在pi目录下会多一张名为image3.jpg的照片。
    在python3中将import commands删除且将
    a=commands.getoutput(“fswebcam --no-banner -r 640x480 image3.jpg”)
    改为a=os.system(“fswebcam --no-banner -r 640x480 image3.jpg”)即可
    因为commands在python3中被废弃了。

    展开全文
  • 主要为大家详细介绍了树莓派python中的OpenCV输出USB摄像头画面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 在此实验中,我使用的为usb摄像头 当我们连接摄像头之后,终端输入 ls /dev/video* 如果终端提示如下: 则表示摄像头连接成功 三、编码实现对移动物体的检测 使用python编写程序,实现对移动物体的检测,代码如下 ...
  • 使用opencv调用USB外置摄像头进行循环录像,视频分段录制后进行保存(代码中是每5分钟存一下),当tf卡的可用空间不足50%的时候删除已保存视频最早的文件,然后继续新的录制 依赖轮子 opencv-python 图像处理必备 ...

    实现效果

    使用opencv调用USB外置摄像头进行循环录像,视频分段录制后进行保存(代码中是每5分钟存一下),当tf卡的可用空间不足50%的时候删除已保存视频最早的文件,然后继续新的录制

    依赖轮子

    • opencv-python 图像处理必备
    • logzero 日志记录神器

    完整代码

    #!/usr/bin/env python3
    import glob
    import os
    from datetime import datetime
    
    import cv2
    import logzero
    from logzero import logger
    
    # 配置logzero保存日志到文件,单文件最大5MB,最多保存3份
    logzero.logfile('/home/pi/video/log.log', maxBytes=5e6, backupCount=3)
    
    # 限制至少保留可用磁盘空间百分比
    SPACE_LIMIT = 50
    # 录制视频的分段时长(单位秒)
    PER_LENGTH = 5 * 60
    # 视频保存位置
    LOCATION = '/home/pi/video/'
    
    
    def disk_per():
        """
        计算当前/目录可用空间比率
        :return: 返回整数百分比结果
        """
        info = os.statvfs('/')
        free_size = info.f_bsize * info.f_bavail
        total_size = info.f_blocks * info.f_bsize
        percent = round(free_size / total_size * 100)
        return percent
    
    
    def get_files_list(exp):
        """
        获取指定位置下的指定后缀文件列表,根据文件创建时间正序排列(从早到后顺序)
        :param exp: 搜索路径表达式.格式: /home/pi/*.avi
        :return:
        """
        files = list(filter(os.path.isfile, glob.glob(exp)))
        # 按照文件创建时间倒序排列
        files.sort(key=lambda x: os.path.getctime(x), reverse=False)
        return files
    
    
    def record():
        """
        录制视频
        :return:
        """
    
        WIDTH = 640
        HEIGHT = 480
        FPS = 24.0
    
        cap = cv2.VideoCapture(0)
        # 设置摄像头设备分辨率
        cap.set(cv2.CAP_PROP_FRAME_WIDTH, WIDTH)
        cap.set(cv2.CAP_PROP_FRAME_HEIGHT, HEIGHT)
        # 设置摄像头设备帧率,如不指定,默认600
        cap.set(cv2.CAP_PROP_FPS, 24.0)
        # 建议使用XVID编码,图像质量和文件大小比较都兼顾的方案
        fourcc = cv2.VideoWriter_fourcc(*'XVID')
    
        start_time = datetime.now()
        filename = LOCATION + start_time.strftime('%Y-%m-%d_%H-%M-%S') + '.avi'
        out = cv2.VideoWriter(filename, fourcc, FPS, (WIDTH, HEIGHT))
    
        flag = True
        while flag:
            # 检测磁盘空间是否充足
            if disk_per() > SPACE_LIMIT:
                # 开始当前录制视频时段
                if (datetime.now() - start_time).seconds >= PER_LENGTH:
                    # 到达视频分段时长后停止录制
                    logger.info(f'分段录制结束,文件保存为{filename}')
                    out.release()
                    # 重新开始新的视频录制
                    start_time = datetime.now()
                    filename = LOCATION + start_time.strftime('%Y-%m-%d_%H-%M-%S') + '.avi'
                    out = cv2.VideoWriter(filename, fourcc, FPS, (WIDTH, HEIGHT))
                else:
                    ret, frame = cap.read()
                    if ret:
                        out.write(frame)
    
            else:
                # 磁盘使用空间达到配额后删除最早的视频文件
                logger.warn(f'磁盘可用空间不足{SPACE_LIMIT}%,将删除最早保存的视频文件')
                files = get_files_list(LOCATION + '*.avi')
                os.remove(files[0])
                logger.info(f'{files[0]}已删除')
    
        cap.release()
    
    
    if __name__ == '__main__':
        logger.info('开始录制视频')
        record()
    
    

    后台执行

    $ chmod +x cam.py
    $ vim run.sh
    //内容如下
    nohup ./cam.py >/dev/null 2>&1 &
    $ chmod +x run.sh
    $ ./run.sh
    
    展开全文
  • import cv2 import urllib.request import numpy as np import sys host = "192.168.1.109:8080" #在这里记得修改IP,否则是无法调用的,刚刚浏览器输入的地址 if len(sys.argv)>1: ...
    import cv2
    import urllib.request
    import numpy as np
    import sys
    host = "192.168.1.109:8080" #在这里记得修改IP,否则是无法调用的,刚刚浏览器输入的地址
    if len(sys.argv)>1:
        host = sys.argv[1]
    hoststr = 'http://' + host + '/?action=stream'
    print('Streaming ' + hoststr)
    
    print('Print Esc to quit')
    stream=urllib.request.urlopen(hoststr)
    bytes=bytes()
    while True:
        bytes+=stream.read(1024)
        a = bytes.find(b'\xff\xd8')
        b = bytes.find(b'\xff\xd9')
        if a!=-1 and b!=-1:
            jpg = bytes[a:b+2]
            bytes= bytes[b+2:]
            #flags = 1 for color image
            i = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),flags=1)
           # print i.shape
            cv2.imshow("wjw",i)
            if cv2.waitKey(1) & 0xFF == ord('q'):
                exit(0)

     

    import cv2
    import urllib.request
    import numpy as np
    import sys
    import base64
    import time
    import os
    
    host = "192.168.1.109:8080" #在这里记得修改IP,否则是无法调用的,刚刚浏览器输入的地址
    if len(sys.argv)>1:
        host = sys.argv[1]
    hoststr = 'http://' + host + '/?action=stream'
    print('Streaming ' + hoststr)
    
    print('Print Esc to quit')
    stream=urllib.request.urlopen(hoststr)
    bytes=bytes()
    while True:
        bytes+=stream.read(1024)
        a = bytes.find(b'\xff\xd8')
        b = bytes.find(b'\xff\xd9')
        if a!=-1 and b!=-1:
            jpg = bytes[a:b+2]
            bytes= bytes[b+2:]
            #flags = 1 for color image
            i = cv2.imdecode(np.fromstring(jpg, dtype=np.uint8),flags=1)
           # print i.shape
            cv2.imshow("wjw",i)
            if cv2.waitKey(1) & 0xFF == ord('q'):
                exit(0)
    
    
            name = str(time.time())
            p = '/home/wjw/Desktop/123/'+name+'.jpg'
            # 判断目录是否存在
            if not os.path.exists(os.path.split(p)[0]):
                # 目录不存在创建,makedirs可以创建多级目录
                os.makedirs(os.path.split(p)[0])
            try:
                # 保存数据到文件
                with open(p, 'wb') as f:
                    f.write(jpg)
                print('保存成功')
            except Exception as e:
                print('保存失败', e)

     

    转载于:https://www.cnblogs.com/wjw1014/p/11145936.html

    展开全文
  • barcodeData = barcode.data.decode("utf-8") return barcodeData if __name__ == '__main__': scance() 摄像头扫二维码的 # -*- coding:UTF-8 -*- import cv2 import xf_scance def videox(): vix = cv2....
  • 树莓派连接USB摄像头

    2015-07-20 12:41:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • 首先,树莓派要能够使用摄像头,具体使用树莓派完成拍照参照以下两位作者的博客。 https://blog.csdn.net/NCTU_to_prove_safety/article/details/64923572 @ NCTU_to_prove_safety ...
  • 目前连接两个usb摄像头,具体程序如下,使用的是多进程的思想打开的摄像头,若有其他方法,欢迎留言 #!/usr/bin/env python # -*- coding: utf-8 -*- import cv2 import numpy as np import multiprocessing def...
  • 树莓派上使用python实现人脸识别

    千次阅读 2019-05-10 02:40:01
    首先配置树莓派摄像头模块 ...如果是USB摄像头 可以参考一下 然后就可以操作摄像头了 拍照指令 raspistill -o keychain.jpg -t 2000 2000ms后 拍一张照,存在当前目录,名字叫keychain.jpg ...
  • 确认Python版本 $ python Python 2.7.13 (default, Jan 19 2019, 14:48:08) [GCC 6.3.0 20170124] on linux2 Type "help", "copyright", "credits" or ...
  • 树莓派python3+opencv调用usb摄像头显示并保存直接上代码运行指令运行结果 直接上代码 camera.py import cv2 import numpy as np name = 0 cap = cv2.VideoCapture(0) cap.set(3,640) cap.set(4,480) ret, frame...
  • 欢迎来访交流 ~~ 首先 看效果 先是安装 一个小工具 叫 fswebcam ...sudo apt-get install fswebcam ...拍照 使用 (树莓派上) fswebcam 10 test.jpg 执行后会 延时10帧 拍摄 (给个准备时间)产生...
  • 树莓派4b安装python3.7+opencv4.4.0

    千次阅读 2020-10-26 19:14:16
    usb接口的树莓派摄像头+小车一台:) 一、换源 打开配置文件进行修改 sudo nano /etc/apt/sources.list 将原先的源注释掉,换上清华源 deb ...
  • 树莓派使用python库pygame来调用USB摄像头保存图像。 树莓派使用python库pygame来调用USB摄像头保存图像。 树莓派使用python库pygame来调用USB摄像头保存图像。
  • /usr/bin/env python3 # -*- coding:utf-8 -*- import cv2 import numpy as np name = 0 cap = cv2.VideoCapture(0) cap.set(3,640) cap.set(4,480) ret, frame = cap.read() rows, cols, channels...
  • https://blog.csdn.net/qq_42403190/article/details/90453305... 创建文件 camera.py 简单读取 .../usr/bin/env python3 # -*- coding:utf-8 -*- import numpy as np import cv2 cap = cv2.VideoCapture(0)...
  • 1、把摄像头USB口接到树莓派的任意一个USB口后再开机。一定要先接摄像头再开机,不然树莓派无法识别。 2、树莓派终端可以用于检测外部摄像头设备的命令是:ls /dev/video* (输入指令后回车,个别情况可能看不到...
  • 一、测试摄像头 安装luvcview sudo apt-get install luvcview 输入以下命令,开启摄像头 luvcview -s 640x480 二、
  • 运行树莓派免驱动USB摄像头 实现了摄像头的拍照和摄像头的监控 网络监控依然弄不好(还是自己太菜了) 下午: 依然想要用树莓派实现语音识别 没想到pip和api的库安装不上(还是自己太菜) 想BAT语音识别群问...
  • 我的摄像头是树莓派自带摄像头,看网上有很多是用的usb摄像头,可以直接用cv2.videoCapture(0)来调用摄像头。我尝试之后并没有效果,cap.isOpened()返回False。 找了好久,找到一篇教程,大概介绍一下。 首先终端...
  • 1.树莓派3B 2.CSI摄像头 3.罗技C270 软件平台: 1.raspberrypi系统 2.opencv3.2.0 3.python3.4.2 一、安装opencv 本想省事使用apt安装,但是安装不上,所以就使用源码方式安装,开始安装opencv3.0.0版本 安装...

空空如也

空空如也

1 2 3 4 5
收藏数 94
精华内容 37
关键字:

树莓派usb摄像头python

python 订阅