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()
相关推荐
一切皆是因缘际会1 分钟前
底层重构与价值破壁人工智能产业变革
人工智能·安全·重构·系统架构
团象科技4 分钟前
企业出海本地化攻坚阶段 云端大模型微调的跨区域适配实践观察
大数据·人工智能
拾年2755 分钟前
一个月更 30 个版本!Claude Code 5 月核心更新,效率直接拉满
人工智能·ai编程·claude
罗小罗同学7 分钟前
Nat Med发表SPARK智能体框架,可以自主思考、提出假设、设计实验并验证结果,让AI也能主动发现肿瘤生物学规律
大数据·人工智能·spark·医学图像处理
一只奶龙7 分钟前
从0教你做一个AI编程智能体(一) · 智能体初识和搭建
人工智能
团象科技9 分钟前
跨境服务与产品多地域迭代场景下 生成式AI安全部署的实操路径观察
服务器·人工智能
YOLO数据集集合10 分钟前
无人机航拍人体检测数据集|低空巡检搜救智能监控|YOLO目标检测算法训练集
人工智能·深度学习·yolo·目标检测·无人机
逻辑君10 分钟前
Foresight研究报告【20260013】
人工智能·机器学习
明月照山海-11 分钟前
机器学习周报四十七
人工智能·机器学习
weixin_4684668512 分钟前
图像处理之亚像素边缘检测新手教程
图像处理·人工智能·自动化·图像分割·机器视觉·亚像素·光学系统