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()
相关推荐
聚客AI1 分钟前
👉FastMCP深度解析:ctx.sample() 如何实现LLM任务逆向委托
人工智能·llm·mcp
京东零售技术1 分钟前
Text2SQL准确率暴涨22.6%!3大维度全拆
人工智能
去伪存真6 分钟前
手把手教你实现用AI大模型做代码审查
前端·人工智能
京东零售技术7 分钟前
4个月、2个人、1个霸榜的开源项目 !这位98年的校招生做到了!
人工智能
洛华36327 分钟前
初识神经网络04——构建神经网络2
人工智能·深度学习·神经网络
BricheersZ31 分钟前
LangChain4J-(1)-Hello World
java·人工智能·langchain
POLOAPI1 小时前
震撼!GPT-5已来,我用3种方法将API成本降低90%(附完整代码)
人工智能·chatgpt·ai编程
坐在地上想成仙1 小时前
计算机视觉(7)-纯视觉方案实现端到端轨迹规划(思路梳理)
人工智能·计算机视觉
新智元1 小时前
奥特曼公然叫板马斯克!重金杀入脑机接口,硅谷两大巨头彻底决裂
人工智能·openai
BarbaraChow1 小时前
Seed-VC:零样本语音转换与扩散transformer
人工智能·深度学习·transformer