精华内容
下载资源
问答
  • 查看摄像头相关信息: lsusb 拍照测试: fswebcam -d /dev/video0 --no-banner -r 720x480 /home/pi/image.jpg -d表示调用的设备,-no-banner不加会字体报错,-r是图片分辨率信息   延时拍照: fs...

    前言:

    本人在树莓派3B+上做图像识别的功能,由于手头仅有USB摄像头,便决定使用fswebcam进行抓拍,测试的环境是Ubuntu Desktop 18.04和某杂牌USB摄像头

    1.安装fswebcam:

    sudo apt-get install fswebcam
    

    2.查看信息:

    查看设备信息:

    ls /dev
    

    查看摄像头相关信息:

    lsusb
    

    3.拍照测试:

    fswebcam -d /dev/video0 --no-banner -r 720x480 -S 10 ~/image.jpg
    

    -d表示调用的设备,-no-banner不加会字体报错,-r是图片分辨率信息,-S表示延时拍照,参数10的实际延时远小于10s

    在实际测试中发现,如果延时参数小于10,拍出的图片总是模糊或全是白色,拍照效果极差,原因未知,或许是使用的USB摄像头的问题,这一点以后有空会再测试补充的

    在Terminal中执行完毕此命令,将在~/文件夹下生成一个图像文件image.jpg

    4.python调用fswebcam

    新建并编写代码:

    vim camera.py
    

    文件内容:

    import os
    import sys
    import re
    os.system("fswebcam --no-banner -r 1080x720 -S 10 image.jpg")
    

    执行文件:

    python camera.py
    

    命令执行完毕,将在当前目录生成image.jpg文件

    展开全文
  • Python+Opencv 调用USB摄像头(一)

    万次阅读 多人点赞 2019-04-07 21:51:00
    最简单的调用笔记本内置相机 import cv2 #引入库 cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() cv2.imshow("Video", frame) #读取内容 if cv2.waitKey(10) == ord("q"): break #随时准.....

    一.最简单的调用笔记本内置相机

    import cv2
    #引入库
    cap = cv2.VideoCapture(0)
    while True:
        ret, frame = cap.read()
        cv2.imshow("Video", frame)
    #读取内容
        if cv2.waitKey(10) == ord("q"):
            break
            
    #随时准备按q退出
    cap.release()
    cv2.destroyAllWindows()
    #停止调用,关闭窗口
    import cv2
    import os
    #引入库
    
    print("=============================================")
    print("=  热键(请在摄像头的窗口使用):             =")
    print("=  z: 更改存储目录                          =")
    print("=  x: 拍摄图片                              =")
    print("=  q: 退出                                  =")
    print("=============================================")
    #提醒用户操作字典
    
    class_name = input("请输入存储目录:")
    while os.path.exists(class_name):
        class_name = input("目录已存在!请输入存储目录:")
    os.mkdir(class_name)
    #存储
    
    index = 1
    cap = cv2.VideoCapture(0)
    width = 640
    height = 480
    w = 360
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
    crop_w_start = (width-w)//2
    crop_h_start = (height-w)//2
    print(width, height)
    #设置特定值
    
    while True:
        ret, frame = cap.read()
       
        frame = frame[crop_h_start:crop_h_start+w, crop_w_start:crop_w_start+w]
        #没理解?
    
        frame = cv2.flip(frame,1,dst=None)
        #镜像显示
        cv2.imshow("capture", frame)
        #显示
    
        input = cv2.waitKey(1) & 0xFF
        if input == ord('z'):
            class_name = input("请输入存储目录:")
            while os.path.exists(class_name):
                class_name = input("目录已存在!请输入存储目录:")
            os.mkdir(class_name)
        #存储
    
        elif input == ord('x'):
            cv2.imwrite("%s/%d.jpeg" % (class_name, index),
                        cv2.resize(frame, (224, 224), interpolation=cv2.INTER_AREA))
            print("%s: %d 张图片" % (class_name, index))
            index += 1
        #?
        if input == ord('q'):
            break
        #退出
            
    cap.release()
    cv2.destroyAllWindows()
        #关闭窗口

    参考博客:opencv_python版调用摄像头、显示内容 https://blog.csdn.net/yang123p/article/details/79831697

    python+openCV调用摄像头拍摄和处理图片 https://blog.csdn.net/weixin_43344725/article/details/83214833

    笔记:

    1.1、cap = cv2.VideoCapture(0)

    videoCapture(0) 参数0表示调用笔记本内置摄像头

    videoCapture("e:\emp\cp.avi") 参数路径 表示调用存储的视频

    videocapture有获得照相机的一切权利的感觉 所以后期可以用cap.read()对照相机的镜头取镜

    VideoCapture()中参数是0,表示打开笔记本的内置摄像头,参数是视频文件路径则打开视频,如cap = cv2.VideoCapture("../test.avi")

     

    1.2.ret frame  = cap.read()

    ret frame 是调用 cap.read()的两个返回值 read就是一直调用一直返回很多帧所以返回的好像是一个连续的视频,要保证一直调用,所以要一直返回一个true值使它不断继续调用,所以ret是一个布尔值,返回true则继续调用,返回false说明调用完毕或出现调用错误。关于frame就是每一帧的图像,是一个三维矩阵。frame是一个类似于文件夹/包,不断的读取一帧一帧的照片进去,到后面用到窗口显示时,再对frame进行解包,释放出一帧一帧的图像,就像视频一样。

     

    1.3.cv2.imshow("vedio",frame)

     

    1.4.关于frame (自己的理解,有待考证)

    有多少接收多少 有多少释放多少自带“循环”,不用外部给它循环从而输出视频,它的视频的显示和图像的显示基本是一样的 

     

    1.5.waitkey()函数功能: 

    cv2.waitKey顾名思义等待键盘输入,单位为毫秒,即等待指定的毫秒数看是否有键盘输入,若在等待时间内按下任意键则返回按键的ASCII码,程序继续运行。若没有按下任何键,超时后返回-1。参数为0表示无限等待。不调用waitKey的话,窗口会一闪而逝,看不到显示的图片

    1.6.显示图像cv2.imshow()

    使用函数cv2.imshow() 显示图像。窗口会自动调整为图像大小。第一个参数是窗口的名字,其次才是我们的图像。你可以创建多个窗口,只要你喜欢,但是必须给他们不同的名字。

    cv2.imshow('image',img)

    1.7.为什么使用Python-OpenCV

    虽然python 很强大,而且也有自己的图像处理库PIL,但是相对于OpenCV 来讲,它还是弱小很多。跟很多开源软件一样OpenCV 也提供了完善的python 接口,非常便于调用。OpenCV 的稳定版是2.4.8,最新版是3.0,包含了超过2500 个算法和函数,几乎任何一个能想到的成熟算法都可以通过调用OpenCV 的函数来实现,超级方便。

    1.8.大写+下划线"_"格式
     cv2.imread() 读入图像
     cv2.IMREAD_COLOR 加了一个模式(用彩色模式)
     cv2.IMREAD_GRAYSCALE 加了一个模式(用灰度模式)
     总结:当调用imread时 如果要用特定的模式 可以用下划线+大写这样特殊的表达以表示用特殊的
     模式调用imread 

    1.9.python语言没有switch 常用if elif

     

    二.常见操作

    参考:openCV-Python笔记二:视频捕获 https://blog.csdn.net/djcxym/article/details/52177220

    2.1关于propld

    可以使用函数 cap.get(propId) 来获得视频的一些参数信息。这里 propId 可以是 0 到 18 之间的任何整数。每一个数代表视频的一个属性,其中的一些值可以使用 cap.set(propId,value) 来修改,value 就是 你想要设置成的新值。

    例如,可以使用 cap.get(3) 和 cap.get(4) 来查看每一帧的宽和高。 默认情况下得到的值是 640X480。但是可以使用 cap.set(3,320) 和 cap.set(4,240) 来把宽和高改成 320X240。

    propId为以下值:[加粗为应用过的]
    CV_CAP_PROP_POS_MSEC Current position of the video file in milliseconds.
    CV_CAP_PROP_POS_FRAMES 0-based index of the frame to be decoded/captured next.
    CV_CAP_PROP_POS_AVI_RATIO Relative position of the video file: 0 - start of the film, 1 - end of the film.
    CV_CAP_PROP_FRAME_WIDTH Width of the frames in the video stream.
    CV_CAP_PROP_FRAME_HEIGHT Height of the frames in the video stream.

    CV_CAP_PROP_FPS Frame rate.
    CV_CAP_PROP_FOURCC 4-character code of codec.
    CV_CAP_PROP_FRAME_COUNT Number of frames in the video file.
    CV_CAP_PROP_FORMAT Format of the Mat objects returned by retrieve() .
    CV_CAP_PROP_MODE Backend-specific value indicating the current capture mode.
    CV_CAP_PROP_BRIGHTNESS Brightness of the image (only for cameras).
    CV_CAP_PROP_CONTRAST Contrast of the image (only for cameras).
    CV_CAP_PROP_SATURATION Saturation of the image (only for cameras).
    CV_CAP_PROP_HUE Hue of the image (only for cameras).
    CV_CAP_PROP_GAIN Gain of the image (only for cameras).
    CV_CAP_PROP_EXPOSURE Exposure (only for cameras).
    CV_CAP_PROP_CONVERT_RGB Boolean flags indicating whether images should be converted to RGB.
    CV_CAP_PROP_WHITE_BALANCE Currently unsupported
    CV_CAP_PROP_RECTIFICATION Rectification flag for stereo cameras (note: only supported by DC1394 v 2.x backend cur- rently)
     

    三.Python3 opencv 连接 usb 摄像头 

    import cv2
    
    #调用usb摄像头
    cap = cv2.VideoCapture(camera_id)
    cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
    
    cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter.fourcc("M","J","P","G")) #?1为啥要重设
    
    #显示
    while True:
        ret, frame = cap.read() 
        cv2.imshow("window1",frame)
        
        if cv2.waitKey(1)&0xFF == ord("q"):
            break
            
    #关闭
    cap.release()        
    cv2.destroyAllWindows()
    

    参考博客 Python3 opencv 链接 usb 摄像头 https://blog.csdn.net/weixin_42271658/article/details/82874524 

    3.1.fourcc

    视频播放软件通过查询 FourCC 代码并且寻找与 FourCC 代码相关联的视频解码器来播放特定的视频流

    3.2.time.time() 返回当前的时间戳

    http://www.runoob.com/python/att-time-time.html

     

    四.参考

    Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()

    https://blog.csdn.net/winner_looser/article/details/81162052

    OpenCV中cv2.waitKey()相关

    https://www.jianshu.com/p/cf1d12a070fe?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

    openCV-Python笔记二:视频捕获

    https://blog.csdn.net/djcxym/article/details/52177220

    fourcc (four caractor code 四符代码)

    https://baike.baidu.com/item/fourcc/6168470?fr=aladdin

     

     

     

     

     

     

    展开全文
  • 0, "bl") cmd="shut" Image = pygame.image.load(filename) #screen.fill(0,0,200) screen.blit(Image, (0,0)) pygame.display.update() time.sleep(SLEEP_TIME_LONG) 以上这篇python 简单照相机调用系统摄像头实现...

    如下所示:

    # -*- coding: utf-8 -*-

    from VideoCapture import Device

    import time

    import pygame

    from pygame.locals import *

    import sys

    pygame.init()

    size = width, height = 620, 485

    print size

    speed = [2, 2]

    black = 0, 0, 0

    if pygame.display.get_init():

    print ("inited")

    else:

    print"notinit"

    pygame.display.set_caption('1111')

    screen = pygame.display.set_mode((600,500))

    SLEEP_TIME_LONG = 0.0

    cam = Device(devnum=0, showVideoWindow=0)

    print cam

    filename = "test.jpg"

    while True:

    for event in pygame.event.get():

    if event.type== QUIT:

    sys.exit()

    elif event.type== KEYDOWN:

    key = pygame.key.get_pressed()

    if key[97]:

    filename = "test" + int(time.time()//1).__str__()+".jpg"

    print filename

    cam.saveSnapshot(filename, timestamp=3, boldfont=1, quality=55)

    elif event.type== MOUSEBUTTONDOWN:

    pass

    elif event.type== MOUSEMOTION:

    pass

    elif event.type== MOUSEBUTTONUP:

    pass

    #cam.getImage(0, 0, "bl")

    cmd="shut"

    Image = pygame.image.load(filename)

    #screen.fill(0,0,200)

    screen.blit(Image, (0,0))

    pygame.display.update()

    time.sleep(SLEEP_TIME_LONG)

    blank.gif

    blank.gif

    以上这篇python 简单照相机调用系统摄像头实现方法 pygame就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

    时间: 2018-08-02

    展开全文
  • 二、Python打开USB摄像头并保存图片程序 一、USB摄像头与电脑摄像头有何不同? (我是菜鸟,如下文章中若有错误,还希望各位大佬指正!谢谢!) 我理解的是没啥不同。。有些电脑是没有自带摄像头的,所以常常会连接...

    之前是在打一个比赛,用USB摄像头代替电脑摄像头单纯只是想让作品显得高大上一点呜呜,本来想用OV7725或者OV7670的,奈何实力不允许,搞不出来~

    一、USB摄像头与电脑摄像头有何不同?

    (我是菜鸟,如下文章中若有错误,还希望各位大佬指正!谢谢!)

    我理解的是没啥不同。。有些电脑是没有自带摄像头的,所以常常会连接USB摄像头来代替电脑摄像头,如果是电脑有自带摄像头,那需要在设备管理器中右击电脑摄像头将它禁用,禁用后你打开的USB摄像头就可以完全代替电脑摄像头了,使用python指令打开摄像头时打开的就是USB摄像头

    (如果不知道哪个是电脑摄像头,将USB摄像头拔掉刷新后留下来的就是电脑摄像头)
    在这里插入图片描述

    二、Python打开USB摄像头并保存图片程序

    USB摄像头和电脑摄像头程序是一样的

    #此程序功能是用Python控制打开USB摄像头,拍照后将图片保存在本地
    
    #coding:utf-8
    import cv2
    cap = cv2.VideoCapture(0)
     
    index = 1
    while(cap.isOpened()):
        ret, frame = cap.read()
        cv2.imshow("USB",frame)
        k = cv2.waitKey(1) & 0xFF
        if k == ord('s'):     #按下s(save)键,进入保存图片操作
            cv2.imwrite("C:/Users/xiaoyan/Desktop/fruit" + str(index) + ".jpg", frame)#这个fruit是图片的命名
            index += 1
        elif k == ord('q'):     #按下q(quit)键,程序退出
            break
    cap.release()
    cv2.destroyAllWindows()
    

    注意:上面的s和q是需要英文输入,如果没有得到保存图片可能是按的s键是中文输入的,可以用打印函数测试有无保存成功:

    在这里插入图片描述

    对python打开摄像头感兴趣的朋友也可以再看看用Python实现将手机摄像头画面(彩色或黑白)传到电脑端并且显示这篇博客,对上面代码有什么不理解的也可以看看,我在那篇博客中有详细解释,这里就不说啦~

    希望有你有帮助!

    在这里插入图片描述

    展开全文
  • 今天小编就为大家分享一篇python+opencv打开摄像头,保存视频、拍照功能的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 本文实例为大家分享了python OpenCV来表示USB摄像头画面的具体代码,供大家参考,具体内容如下确认Python版本$ pythonPython 2.7.13 (default, Jan 19 2019, 14:48:08)[GCC 6.3.0 20170124] on linux2Type "help", ...
  • python双目摄像头调用

    2020-03-24 10:48:14
    打开双目摄像头,进行拍照,并保存到相应文件夹内,主要用于双目标定的前期工作,另外附有一个常用的python小程序:批量重命名
  • Python调用摄像头

    2021-01-13 05:30:09
    一、打开摄像头import cv2import numpy as npdef video_demo():capture = cv2.VideoCapture(0)#0为电脑内置摄像头while(True):ret, frame = capture.read()#摄像头读取,ret为是否成功打开摄像头,true,false。...
  • python+opencv+usb摄像头 拍照太暗问题

    千次阅读 2019-12-01 13:42:39
    打开摄像头(不拍照,就一直...cap = cv2.VideoCapture(1)#打开usb摄像头 ret, frame = cap.read() # cap.read()返回两个值,第一个存储一个bool值,表示拍摄成功与否。第 二个是当前截取的图片帧。 cv2.imwrite(...
  • Mac 下使用python调用电脑摄像头

    千次阅读 2019-07-10 18:26:34
    废话不多说啦,直接上代码(直接...pip3 install opencv-python 按下s键盘是保存的,图片路径是绝对路径,具体可以根据你的需要而来 import cv2 cap = cv2.VideoCapture(0) i = 0 while (1): ret, frame = c...
  • 一个是python 2.7,需要安装numpy支持;另一个是获取摄像头会用到opencv,opencv是计算机视觉库(树莓派安装的是最新的3.5版本opencv)。二、实现过程ython通过opencv 模块来打开摄像头,代码精简,比较容易理解;整体...
  • 这篇文章主要介绍了python调用摄像头的示例代码,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 一、打开摄像头 import cv2 import numpy as np def video_demo(): capture = cv2.VideoCapture...
  • 树莓派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...
  • 许多需要长时间的压测的场景,我们都可以通过摄像头拍照记录下测试设备的运行情况, 本篇主要介绍如何通过Python + ffmpeg + 电脑摄像头实现自动化持续拍照功能。 准备阶段 ffmpeg的下载地址及其介绍可参考:...
  • python 双目摄像头拍照

    2020-04-12 17:42:48
    一个非常简单的拍照程序可以通过按键来是先拍照和保存照片,没有什么可以讲解的,相信大加很容易看明白。希望能给大家带来一定的帮助。谢谢
  • 树莓派USB摄像头拍照

    2019-04-09 14:05:38
    调用V4L2实现树莓派USB摄像头拍照 1. 定义 V4L2(Video For Linux Two) 是内核提供给应用程序访问音、视频驱动的统一接口。 2. 工作流程: 打开设备-> 检查和设置设备属性-> 设置帧格式-> 设置一种输入输出方法...
  • 首先,树莓派要能够使用摄像头,具体使用树莓派完成拍照参照以下两位作者的博客。 https://blog.csdn.net/NCTU_to_prove_safety/article/details/64923572 @ NCTU_to_prove_safety ...
  • 操作USB摄像头一定需要用到鼠标来操作。像是截图、录像都可以完成。如今学习了python计算机编程语言那就要动手来完成一件有成就感的事情吧,就像本文中教的那样,看看是如何使用Python来操作摄像头。首先完成这件...
  • python opencv 读取USB摄像头的像素问题

    千次阅读 2019-03-19 17:30:00
    每次调用capture读取video的时候,还回的像素都是640x480,不管是笔记本的摄像头还是USB摄像头,明明我的摄像头是支持130万读取的功能的呀。 问题分析 一番查找,关于用opencv 设置摄像头读分辨率问题的若干说明,...
  • # -*- coding: utf-8 -*-from VideoCapture import Deviceimport timeimport pygamefrom pygame.locals import *import syspygame.init()size = width, height = 620, 485print sizespeed = [2, 2]black = 0, 0, 0if...
  • 案例故事:有一款已经上市的终端产品,偶现异常自动...许多需要长时间的压测的场景,我们都可以通过摄像头拍照,来记录被测试设备的运行情况,本篇主要介绍如何通过Python + ffmpeg + 电脑摄像头实现自动化持续拍照...
  • 在树莓派自带得python IDE Thonny中写如下代码,并在树莓派上插上usb摄像头import cv2cap=cv2.VideoCapture(0) #调用摄像头‘0'一般是打开电脑自带摄像头,‘1'是打开外部摄像头(只有一个摄像头的情况)width=1280...
  • 用的树莓派3B+ 然后插个usb摄像头 就行了 文件名:colorList.py 这是颜色库。。。 1 #-*- coding:UTF-8 -*- 2 importnumpy as np3 importcollections4 5 6 defgetColorList():7 dict =collections.defaultdict...
  • Opencv3捕获USB摄像头

    2018-11-18 09:44:34
    Opencv3捕获USB摄像头视频,在VisualStudio 2017 下编译通过
  • Python 调用摄像头并保存图片

    万次阅读 2015-04-03 16:29:40
    # -*- coding: utf-8 -*- from VideoCapture import Device interval = 2 cam = Device() cam.saveSnapshot('./image.jpg') Python3.4 .python2.7 均可使用 转载注明作者与出处
  • win10下使用命令行自动打开摄像头拍照,用python实现的一个脚本。做自功化测试的时候很好用。缺点是单一任务,运行时一定摄像头要在前端。
  • [opencv3+python ]安装相应库,实现本机监控手机摄像头图像。 (https://blog.csdn.net/SHAOYEZUIZUISHAUI/article/details/80959590)
  • 【树莓派】使用USB摄像头拍照

    千次阅读 2019-05-09 15:30:54
    测试USB摄像头是否连接成功 使用lsusb命令 在插入设备前先输入lsusb,之后再插入设备再输入一次lsusb,对比前后两次输出结果,就能发现你的USB摄像头了。 查看设备名字 同上述一样,分别两次插拔USB摄像头并输入ls /...
  • 首先 看效果 先是安装 一个小工具 叫 fswebcam sudo apt-get install fswebcam安装好了就可以拍照 实时监控了拍照 使用 (树莓派上) fswebcam 10 test.jpg执行后会 延时10帧 拍摄 (给个准备时间)产生 一张 名称为 ...
  • qt下USB摄像头拍照和视频

    热门讨论 2012-10-18 16:57:15
    嵌入式的 V4L2代码,c语言的,并且包含了QT部分的开发。

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 357
精华内容 142
关键字:

python调用usb摄像头拍照

python 订阅