OpenCV读取摄像头窗口变大且很卡的解决方法

视频讲解

OpenCV读取摄像头窗口变大且很卡的解决方法

测试过程

读取摄像头窗口变大且很卡的代码

复制代码
import cv2
cap = cv2.VideoCapture(0)
if not cap.isOpened():
    print("Cannot open camera")
    exit()
while True:
    ret, frame = cap.read()
    if not ret:
        print("no stream!")
        break
    cv2.imshow('frame', frame)
    if cv2.waitKey(1) == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

运行后,读取摄像头的窗口很大,而且很卡,出现如下的提示

复制代码
python3 test-camera.py
[ WARN:0@0.986] global /home/jetson/Downloads/opencv-4.5.5/modules/videoio/src/cap_gstreamer.cpp (1405) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
Gtk-Message: 21:12:47.677: Failed to load module "canberra-gtk-module"

安装libcanberra-gtk-module

复制代码
sudo apt-get install libcanberra-gtk-module

继续运行,还是很卡,WARN还在,修改代码如下,增加cv2.CAP_V4L2

v4l2(video for linux two)是Linux中内核提供给应用层访问音视频驱动的统一接口。v4l2中获取摄像头的能力的是通过ioctl函数的VIDIOC_QUERYCAP命令获取。

复制代码
import cv2
cap = cv2.VideoCapture(0, cv2.CAP_V4L2)
if not cap.isOpened():
    print("Cannot open camera")
    exit()
while True:
    ret, frame = cap.read()
    if not ret:
        print("no stream!")
        break
    cv2.imshow('frame', frame)
    if cv2.waitKey(1) == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()
相关推荐
simodai3 分钟前
机器学习1.Anaconda安装+环境配置
人工智能·机器学习
wang_chao1186 分钟前
RK3399平台ffmpeg-VPU硬编码录制USB摄像头视频、H264或MJPEG编码
ffmpeg·音视频
IT_陈寒9 分钟前
JavaScript 2024:10个颠覆你认知的ES新特性实战解析
前端·人工智能·后端
froxy13 分钟前
音频中的PDM、PCM概念解读
音视频·pcm
ModelWhale14 分钟前
AI教育白皮书解读 | 医学教育数智化转型新机遇,“人工智能+”行动实践正当时
人工智能·ai
大模型真好玩15 分钟前
大模型工程面试经典(五)—大模型微调与RAG该如何选?
人工智能·面试·deepseek
九章云极AladdinEdu2 小时前
临床数据挖掘与分析:利用GPU加速Pandas和Scikit-learn处理大规模数据集
人工智能·pytorch·数据挖掘·pandas·scikit-learn·paddlepaddle·gpu算力
上海锝秉工控2 小时前
超声波风向传感器:以科技之翼,捕捉风的每一次呼吸
大数据·人工智能·科技
说私域2 小时前
基于开源AI智能名片、链动2+1模式与S2B2C商城小程序的流量运营与个人IP构建研究
人工智能·小程序·流量运营
xiaoxiaoxiaolll3 小时前
期刊速递 | 《Light Sci. Appl.》超宽带光热电机理研究,推动碳纳米管传感器在制药质控中的实际应用
人工智能·学习