首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

opencv进阶学习笔记1: 调用摄像头用法大全(打开摄像头,打开摄像头并实时不断截屏,读取视频并截图)

  • 23-09-22 21:02
  • 2744
  • 6043
blog.csdn.net

python +opencv 用法大全。
这里简单介绍下,如何打开摄像头,如何截屏。如何自动实时截屏。
如何读取视频文件并截屏。

打开摄像头

import cv2
import numpy as np
def video_demo():
    capture = cv2.VideoCapture(0)#0为电脑内置摄像头
    while(True):
        ret, frame = capture.read()#摄像头读取,ret为是否成功打开摄像头,true,false。 frame为视频的每一帧图像
        frame = cv2.flip(frame, 1)#摄像头是和人对立的,将图像左右调换回来正常显示。
        cv2.imshow("video", frame)
        c = cv2.waitKey(50)
        if c == 27:
            break
video_demo()
cv2.destroyAllWindows()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

解释:
capture = cv2.VideoCapture(0)#0为电脑内置摄像头。外置摄像头为其他参数
frame = cv2.flip(frame, 1)#摄像头是和人对立的,将图像左右调换回来正常显示。
frame:每一帧图像
cv2.waitKey(50):一张图像只等50毫秒。等于说视频正常显示。如果为0,摄像头卡住,只显示第一张图像.
c=-1
if c == 27: 可以不要
显示如下:

打开摄像头并截屏

import cv2

cap = cv2.VideoCapture(0)  # 打开摄像头

while (1):
    # get a frame
    ret, frame = cap.read()
    frame = cv2.flip(frame, 1)  # 摄像头是和人对立的,将图像左右调换回来正常显示
    # show a frame
    cv2.imshow("capture", frame)  # 生成摄像头窗口

    if cv2.waitKey(1) & 0xFF == ord('q'):  # 如果按下q 就截图保存并退出
        cv2.imwrite("test.png", frame)  # 保存路径
        break

cap.release()
cv2.destroyAllWindows()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

按下q键 即保存图到本地

在这里插入图片描述

打开摄像头并实时自动不断截屏

#这段代码有借鉴他人。

import cv2
import numpy as np

def video_demo():
    print('开始')
    cap = cv2.VideoCapture(0)  # 电脑自身摄像头
    i = 0#定时装置初始值
    photoname = 1#文件名序号初始值

    while True:
        i = i + 1
        reg, frame = cap.read()
        frame = cv2.flip(frame, 1)  # 图片左右调换
        cv2.imshow('window', frame)

        if i == 50:  # 定时装置,定时截屏,可以修改。

            filename = str(photoname) + '.png'  # filename为图像名字,将photoname作为编号命名保存的截图
            cv2.imwrite('C:/Users/Shineion/Desktop/yu' + '\' + filename, frame)  # 截图 前面为放在桌面的路径 frame为此时的图像
            print(filename + '保存成功')  # 打印保存成功
            i = 0  # 清零

            photoname = photoname + 1
            if photoname >= 20:  # 最多截图20张 然后退出(如果调用photoname = 1 不用break为不断覆盖图片)
                # photoname = 1
                break
        if cv2.waitKey(1) & 0xff == ord('q'):
            break
    # 释放资源
    cap.release()

video_demo()
cv2.destroyAllWindows()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

本地文件生成的图片

说明:原始文件路径为 C:UsersShineionDesktopyu 。
需要修改C:/Users/Shineion/Desktop/yu

读取视频文件并自动不断截屏

import cv2
import numpy as np

def video_demo():
    print('开始')
    cap = cv2.VideoCapture('C:\Users\Shineion\Desktop\1233.mp4')
    i = 0#定时装置初始值
    photoname = 1#文件名序号初始值

    while True:
        i = i + 1
        reg, frame = cap.read()
        frame = cv2.flip(frame, 1)  # 图片左右调换
        cv2.imshow('window', frame)#显示视频

        if i == 50:  # 定时装置,定时截屏,可以修改。

            filename = str(photoname) + '.png'  # filename为图像名字,将photoname作为编号命名保存的截图
            cv2.imwrite('C:/Users/Shineion/Desktop/yu' + '\' + filename, frame)  # 截图 前面为放在桌面的路径 frame为此时的图像
            print(filename + '保存成功')  # 打印保存成功
            i = 0  # 清零

            photoname = photoname + 1
            if photoname >= 20:  # 最多截图20张 然后退出(如果调用photoname = 1 不用break为不断覆盖图片)
                # photoname = 1
                break
        if cv2.waitKey(1) & 0xff == ord('q'):
            break
    # 释放资源
    cap.release()

video_demo()
cv2.destroyAllWindows()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

解释:cap = cv2.VideoCapture(‘C:UsersShineionDesktop1233.mp4’) 读取视频文件.。路径要多加个个表示对进行转义。

实时显示

截屏的照片

OpenCV基础版笔记目录:
python3+opencv学习笔记汇总目录(适合基础入门学习)

进阶版笔记目录:
python+opencv进阶版学习笔记目录(适合有一定基础)
电气专业的计算机小白,写博文不容易。如果觉得本文对你有用,请点个赞支持下。谢谢。

文章知识点与官方知识档案匹配,可进一步学习相关知识
OpenCV技能树进阶任务OpenCV问答20473 人正在系统学习中
注:本文转载自blog.csdn.net的总裁余(余登武)的文章"https://blog.csdn.net/kobeyu652453/article/details/107219698"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top