openCV无法打开USB摄像头问题

2023-11-17

用Python-OpenCV 打开USB摄像头时, 出现如下提示, 意思是 媒体类型不匹配

测试源代码

cap = cv2.VideoCapture(0)
    while cap.isOpened():

        start = time.time()
        is_opened, frame = cap.read()
        end = time.time()
        if i<10:
            i+=1
            print("### 读取图像流时间: %f 秒"%(end-start) )

            start = time.time()
            cv2.imwrite('I:/' + str(i) + '.jpg', frame)
            end = time.time()
            print("@@@ 保存图像时间: %f 秒" % (end - start))

        cv2.imshow('frame', frame)

        k = cv2.waitKey(1)
        if k == 27:
            break
        elif k == ord('s'):
            start = time.time()
            cv2.imwrite('I:/' + str(i) + '.jpg', frame)
            end = time.time()
            print("@@@ 保存图像时间: %f 秒" % (end - start))
            i += 1

    cap.release()

错误提示为:

CvCapture_MSMF::initStream Failed to set mediaType (stream 0, (640x480 @ 30) MFVideoFormat_RGB24(codec not found)

需要在初始化摄像头是增加一个参数 cv2.CAP_DSHOW, 之后即可以正常打开:

cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)

使用Linux开发板无法打开摄像头

使用普通用户,无权限打开摄像头, 而使用sudo, 则提示找不到cv2模块, 此时为环境变量问题, 有多种方法可以修改环境变量路径解决该问题, 比如修改/etc/sudoers, 编辑.bashrc,最后添加alias sudo='sudo env PATH=$PATH’等, 我主要使用如下方法

第一种方法

使用sudo -E指令,保留当前用户环境变量, 次方法用起来比较简单

debian@npi:~/tigerots/python$ sudo -E python open_cv2_photo.py
### 读取图像流时间: 1.561338 秒
### 读取图像流时间: 0.674829 秒
### 读取图像流时间: 0.622834 秒

第二种方法

  1. 在普通用户Python环境中查看环境变量:
debian@npi:~/tigerots/python$ python
Python 3.7.3 (default, Jul 25 2020, 13:03:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import sys
>>> sys.path
['', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/home/debian/.local/lib/python3.7/site-packages', '/usr/local/lib/python3.7/dist-packages', '/usr/lib/python3/dist-packages']
>>>
>>>
  1. 在root用户中查看Python环境变量
debian@npi:~/tigerots/python$ sudo python
Python 3.7.3 (default, Jul 25 2020, 13:03:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import sys
>>> sys.path
['', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/dist-packages', '/usr/lib/python3/dist-packages']
>>>
  1. 找到环境变量的差异, 在Python代码中加入该环境变量
import sys
sys.path.append("/usr/local/lib/python3.7/dist-packages")
  1. 通过以上操作, 一般即可实现访问当前模块
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openCV无法打开USB摄像头问题 的相关文章

  • Pycharm Python 控制台不打印输出

    我有一个从 Pycharm python 控制台调用的函数 但没有显示输出 In 2 def problem1 6 for i in range 1 101 2 print i end In 3 problem1 6 In 4 另一方面 像
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • Python - 按月对日期进行分组

    这是一个简单的问题 起初我认为很简单而忽略了它 一个小时过去了 我不太确定 所以 我有一个Python列表datetime对象 我想用图表来表示它们 x 值是年份和月份 y 值是此列表中本月发生的日期对象的数量 也许一个例子可以更好地证明这
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • LLDB 常用命令

    LLDB 小结 简介 LLDB 是新一代高性能调试器 其是一组可重用组件的集合 这些组件大多是 LLVM 工程中的类库 如 Clang 表达式解析器或 LLVM 反汇编程序等 LLDB 是 Xcode 中默认的调试器 并且支持调试 C C
  • complier之stack machine with one register

    place holder
  • python 报错汇总【持续更新中....】

    1 Variable encoder embedding encoder already exists disallowed 总结 由于跑的翻译模型需要构建两个embed 一直报这个错误 InvalidArgumentError see a
  • 软考-系统架构师-计算机与网络基础知识-计算机网络基础知识

    文章目录 1 网络概述 1 1开放系统互连参考模型 1 2OSI协议集 2 计算机网络 2 1广域网局域网和城域网 2 2网络互联 2 3Internet 3 网络管理与网络安全 3 1网络管理 3 2计算机网络安全 3 3VPN 4 网络
  • 大数据挖掘的意义是什么?

    数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程 数据挖掘本质上像是机器学习和人工智能的基础 它的主要目的是从各种各样的数据来源中 提取出超集的信息 然后将这些信息合并让你发现你从来没有想到过的模式和内在关系 这就意味着 数据
  • Python:等差数列

    题目描述 数学老师给小明出了一道等差数列求和的题目 但是粗心的小明忘记了一 部分的数列 只记得其中 N 个整数 现在给出这 N 个整数 小明想知道包含这 N 个整数的最短的等差数列有几项 输入描述 输入的第一行包含一个整数 N 第二行包含
  • linux常会用到的命令

    查看gpu上运行的进程 nvidia smi 查看进程的完整信息 ps f p 进程号 搜索含有指定字符的进程信息 如radar ps ef grep radar 复制文件时排除某个文件夹 如从源路径中排除data rsync av exc
  • eNSP基础配置

    用户视图
  • latch&timeborrowing&Lookup latch

    原创文章 latch 锁存器 电路图结构如下 当 E 1 时 latch直传 transparent D端信号的变化会即时反应在Q端 当 E 0 时 latch关断 closed Q端保持关断瞬间D端的值 设计中使用Latch的好处是 相比
  • 【大数据】Flink 详解(三):核心篇 Ⅱ

    本系列包含 大数据 Flink 详解 一 基础篇 大数据 Flink 详解 二 核心篇 大数据 Flink 详解 三 核心篇 大数据 Flink 详解 四 核心篇 大数据 Flink 详解 五 核心篇 大数据 Flink 详解 六 源码篇
  • NoSQL - MongoDB及工具 - 安装

    1 应用场景 主要用于安装和使用MongoDB 2 学习 操作 1 文档阅读 NoSQL MongoDB 学习 实践 穿素白衫的中少年的博客 CSDN博客 2 整理输出 用于学习 推荐安装最新版本 或者 最新稳定版 这里就安装最新稳定版 如
  • vector string及数组使用

    使用vector输入字符串并输出字符串 include
  • 2023中兴笔试复盘

    选择加编程 选择题考的范围挺广的 编程题第一题有点难度 第二题还好 复盘一下遇到的有点卡顿的题目 1 排序问题 快速排序最适合排完全无序的数据 如果基本有序的数据反而会耗时比较长 原因在于这种情况下一般拿第一个数做基准值的话 容易出现按基准
  • synchronized的作用和用法

    郁闷 参考 synchronized的作用和用法 Java中Synchronized的使用 文章目录 简单介绍 用法 实战实例 修饰代码块 修饰普通方法 修饰静态方法 简单介绍 synchronized关键字是用来控制线程同步的 就是在多线
  • tensorflow学习笔记(1)-tensoflow的设计机制

    tensorflow将整个计算表征为一个图 graph 图的节点 node 是Operation 常常简称为ops 节点之间的边 edge 是张量 tensor 不能理解反了 用图的方式能很容易根据边的连接关系 发现可以并行执行的节点 运算
  • 【笔记】用python计算BS模型、隐波的笔记

    前言 这篇笔记是根据姜禄彬老板在公众号上发布的笔记复刻的 不同的是原作者用的是股票数据 我用的是比特币期权数据 这份笔记里主要是如何用python代码来计算BS模型 如何求隐含波动率 什么是波动率微笑 greeks等 整体还是有点乱 之后有
  • 半生已过:别赌感情,别猜人心

    感情中 很多时候 我们明明懂得了一些道理 却依然会屡屡受伤 是因为我们总是抱着一种信念 以为自己很在乎的人 真的和别人不一样 于是 我们常常毫无保留地信任一个人 坚定不移地相信一段感情 殊不知 期望越大 有时候失望也就会越大 看过一段话说
  • Gabor滤波进行目标图像纹理特征的提取

    1 傅里叶变换 1 简介 数字图像处理的方法主要分成两大部分 空域分析法和频域分析法 空域分析法就是对图像矩阵进行处理 频域分析法是通过图像变换将图像从空域变换到频域 从另外一个角度来分析图像的特征并进行处理 频域分析法在图像增强 图像复原
  • Mysql错误日志、通用查询日志、慢日志的介绍和二进制日志的查看和备份恢复

    目录 一 日志 1 日志和备份的必要性 2 mysql的日志类型 1 错误日志 2 通用查询日志 3 二进制日志 4 慢日志 一 日志 1 日志和备份的必要性 在数据库保存数据时 有时候会因为误删除数据库 意外断电或程序意外终止 由于病毒造
  • openCV无法打开USB摄像头问题

    用Python OpenCV 打开USB摄像头时 出现如下提示 意思是 媒体类型不匹配 测试源代码 cap cv2 VideoCapture 0 while cap isOpened start time time is opened fr