opencv-python调用摄像头失败 global /io/opencv/modules/videoio/src/cap_v4l.cpp (1000) tryIoctl VIDEOIO(V4L2
环境
Ubuntu 18.04 aarch64
Python 3.7.15
opencv-python 4.6.0
问题现象
插入USB摄像头后,/dev/video0
会正常出现,使用fswebcam
也能正常拍摄照片。但运行opencv-python
的视频拍摄例程时出错,例程如下:
import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
if not cap.isOpened():print("Cannot open camera")exit()
while True:# Capture frame-by-frameret, frame = cap.read()# if frame is read correctly ret is Trueif not ret:print("Can't receive frame (stream end?). Exiting ...")break# Our operations on the frame come heregray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)# Display the resulting framecv.imshow('frame', gray)if cv.waitKey(1) == ord('q'):break
# When everything done, release the capture
cap.release()
cv.destroyAllWindows()
报错信息如下
[ WARN:0@10.618] global /io/opencv/modules/videoio/src/cap_v4l.cpp (1013) tryIoctl VIDEOIO(V4L2:/dev/video0): select() timeout.
Can't receive frame (stream end?). Exiting ...
问题分析
单步调试后,发现出错语句在于
ret, frame = cap.read()
执行该语句后,终端会出现警告信息[ WARN:0@10.618] global /io/opencv/modules/videoio/src/cap_v4l.cpp (1013) tryIoctl VIDEOIO(V4L2:/dev/video0): select() timeout.
;并且语句的返回值ret
为False
,代表执行失败。
解决问题
见招拆招,接下来谷歌这个警告,有如下收获
https://forum.opencv.org/t/videoio-v4l2-dev-video0-select-timeout/8822/5
Hey, I got simmilar issue and solve it with setting format as MJPG int the 4-character code of codec.
from cv2 import cv2camera = cv2.VideoCapture(0) camera.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')) status, image = camera.read() camera.release()
我们在初始化cap
对象后,给它额外设置属性”MJPG int 编解码器的 4 字符代码”,即可解决该问题。原理尚不清楚,先记录下过程。
修改后的例程如下
import numpy as np
import cv2 as cv
cap = cv.VideoCapture(0)
cap.set(cv.CAP_PROP_FOURCC, cv.VideoWriter_fourcc('M', 'J', 'P', 'G'))if not cap.isOpened():print("Cannot open camera")exit()
while True:# Capture frame-by-frameret, frame = cap.read()# if frame is read correctly ret is Trueif not ret:print("Can't receive frame (stream end?). Exiting ...")break# Our operations on the frame come heregray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)# Display the resulting framecv.imshow('frame', gray)if cv.waitKey(1) == ord('q'):break
# When everything done, release the capture
cap.release()
cv.destroyAllWindows()
屏幕窗口中将显示灰度处理后的摄像头实时视频。
opencv-python调用摄像头失败 global /io/opencv/modules/videoio/src/cap_v4l.cpp (1000) tryIoctl VIDEOIO(V4L2相关推荐
- opencv python 调用摄像头_python+opencv实现摄像头调用的方法
最近入了一块树莓派,想让其实现摄像头的调用,因此写下此博客备忘 一.树莓派网络的配置 首先,对树莓派进行网络配置,否则就无法进行软件的安装 我们知道,ifconfig命令可以修改ip地址.子网掩码等信 ...
- python调用摄像头录制视频_Python OpenCV使用摄像头捕获视频
我们知道,OpenCV是一款强大的跨平台的计算机视觉库,使用它能完成我们对于图像和视频处理的很多功能,今天,我们使用OpenCV来捕获计算机摄像头的视频. 使用OpenCV捕获摄像头视频 我们知道,视 ...
- python调用海康工业相机并用opencv显示(整体实现)
python语言调用海康机器人(hikrobotics)工业相机 系列文章目录 第一章 python调用海康工业相机并用opencv显示(整体实现) 第二章 python 调用海康工业相机图像获取方式 ...
- 调用摄像头使用face_recognition 或 opencv中haar人脸特征实时检测识别人脸、给人脸打马赛克/给人脸贴图
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) OpenCV:python调用摄像头同时使用OpenCV中自带 ...
- opencv python 从摄像头获取视频、帧率、分辨率等属性设置和使用
opencv python 从摄像头获取视频.帧率.分辨率等属性设置和使用 文章目录: 1,为了获取视频,你应该创建一个 VideoCapture 对象.他的参数可以是设备的索引号,或者是一个视频文件 ...
- opencv之调用摄像头动态识别二维码
结合前几篇做的工作,实现一下动态识别二维码 opencv之调用摄像头动态识别二维码
- 成功解决cv2.error: OpenCV(4.1.2) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion fa
成功解决cv2.error: OpenCV(4.1.2) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion fa ...
- python调用摄像头转向_教你如何利用python调用摄像头
这篇文章主要介绍了python调用摄像头的示例代码,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 一.打开摄像头 import cv2 import numpy as np def v ...
- [ERROR:0] global /build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp (2791) open VIDEOIO/FFMPEG: F
用模型处理视频时,遇到如下报错,不支持x264编码: [ERROR:0] global /build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp (2 ...
最新文章
- c++语言static作用,详解c++中的 static 关键字及作用
- 面了一个47的程序员,我很慌...
- mysql学_MySQL学习(一)
- 程序员成长的三个方法
- C++学习笔记-----operator=函数处理自赋值
- Python自动化开发学习22-Django下(Form)
- qt中数据库操作总结
- Hello,Behavior
- Web系统开发构架再思考-前后端的完全分离 MVVM
- ios人脸照片_iOS10照片人脸识别功能是什么?iOS10照片人脸识别功能使用教程
- 因子分析后如何进行聚类分析?
- [安卓逆向]安卓逆向-一次简单的静态分析
- 每周分享第二期:人工智能对未来工作的影响
- SDUST 第四次实验
- 【QCA】SDK11.2添加Marvell AQR114c的支持(uboot+linux)
- 陶瓷天线是什么,它的工作原理是怎样的?
- 国内云计算市场发展行情
- 61、Window11+Clion+MinGW32编译MNN使用
- 安卓学习日记——APP共享内容
- NLP入门+实战必读:一文教会你最常见的10种自然语言处理技术
热门文章
- java游戏斗地主_Java斗地主小游戏有序版
- 【报告分享】2020中国共享两轮车市场专题分析-易观智库(附下载)
- 基于微信小程序的答题系统设计与实现
- Pennylane混合经典量子分类器-Mnist分类
- 紫光存储面临巨大调整,紫光集团的SSD业务以后靠谁了呢?
- 解决Anonymity内部类的迷惑
- NVIDIA TensorRT安装包下载分享—— 云盘分享 【TensorRT安装】
- 汉中2021年高考成绩查询,汉中市各高中2020年高考喜报成绩一览
- asp.net 调用html页面,ASP.NET中HTML页面的访问验证设置方法
- 什么是智慧酒店?完整的解决方案教你如何做好智慧酒店