技术专栏
用OpenCV进行USB摄像头调用,并解决1080p下延迟卡顿问题的学习笔记
1. 加载摄像头
首先直接放上一段加载USB相机的例程供参考
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2023/5/16 10:22
# @Author : Chenan_Wang
# @File : cv_test.py
# @Project : pad_det
# @Software : PyCharm
import cv2 as cv
if __name__ == "__main__":
cap = cv.VideoCapture()
cap.open(1, cv.CAP_DSHOW) # 我这里0为电脑自带摄像头,1为外接相机
while True:
if not cap.isOpened():
print('can not open camera')
break
ret, frame = cap.read() # 读取图像
if not ret: # 图像读取失败则直接进入下一次循环
continue
cv.namedWindow("cv_test")
cv.imshow('cv_test', frame)
my_key = cv.waitKey(1)
# 按q退出循环,0xFF是为了排除一些功能键对q的ASCII码的影响
if my_key & 0xFF == ord('q'):
break
#释放资源
cap.release()
cv.destroyAllWindows()
2. 高分辨率视频流延迟问题
摄像头成功加载出来,但是默认分辨率太低(我的相机支持的是1080p),通过如下代码设置分辨率和帧率:
cap.set(cv.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv.CAP_PROP_FRAME_HEIGHT, 1080)
cap.set(cv.CAP_PROP_FPS, 30)
此时分辨率是1080p了,但是延迟严重,在网上找了一堆方法,几乎都不可用!!!:
- 设置格式为MJPG:
cap.set(cv.CAP_PROP_FOURCC, cv.VideoWriter_fourcc('M', 'J', 'P', 'G'))
无法解决问题,依然有延迟
- 开启多线程接受图像信息,依然无法解决问题,延迟依旧
- 发现修改为低分辨率的时候卡顿会降低,推测可能是由于分辨率太高导致的延迟现象,但是理论上来说这点算力对计算机是没影响的,结果在修改分辨率的时候突然问题就解决了
3. 延迟解决方案
设置分辨率的时候不要设置为1920x1080,改成1900x1080!,实际成像依然会匹配相机的1920x1080,保存的时候也是1920x1080
而且画面会和之前cv默认分辨率的帧率一样,及其流畅,几乎无延迟
具体啥原因就不知道了,希望有大佬可以解答一下~
下面放上完整代码供参考:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2023/5/16 10:22
# @Author : Chenan_Wang
# @File : cv_test.py
# @Project : pad_det
# @Software : PyCharm
import cv2 as cv
if __name__ == "__main__":
cap = cv.VideoCapture()
cap.open(1, cv.CAP_DSHOW) # 我这里0为电脑自带摄像头,1为外接相机
cap.set(cv.CAP_PROP_FOURCC, cv.VideoWriter_fourcc('M', 'J', 'P', 'G'))
cap.set(cv.CAP_PROP_FRAME_WIDTH, 1900) # 解决问题的关键!!!
cap.set(cv.CAP_PROP_FRAME_HEIGHT, 1080)
cap.set(cv.CAP_PROP_FPS, 30)
while True:
if not cap.isOpened():
print('can not open camera')
break
ret, frame = cap.read() # 读取图像
if not ret: # 图像读取失败则直接进入下一次循环
continue
cv.namedWindow("cv_test")
cv.imshow('cv_test', frame)
my_key = cv.waitKey(1)
# 按q退出循环,0xFF是为了排除一些功能键对q的ASCII码的影响
if my_key & 0xFF == ord('q'):
break
#释放资源
cap.release()
cv.destroyAllWindows()
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
点赞
收藏
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:2127次2022-11-23 16:19:38
-
浏览量:1374次2023-04-17 16:03:03
-
浏览量:7175次2021-01-28 09:52:52
-
浏览量:2530次2023-06-28 17:22:40
-
浏览量:1778次2020-02-25 12:02:53
-
浏览量:2095次2020-04-01 10:07:10
-
浏览量:11479次2022-03-18 09:00:47
-
浏览量:3440次2020-10-29 17:26:12
-
浏览量:772次2023-06-12 14:35:58
-
浏览量:5168次2021-04-23 14:11:19
-
浏览量:1887次2020-01-17 14:35:18
-
浏览量:2828次2023-06-26 08:57:07
-
浏览量:1136次2024-01-11 17:32:51
-
浏览量:1720次2024-03-01 16:01:03
-
浏览量:5603次2022-06-01 09:36:28
-
浏览量:3396次2020-03-25 10:02:47
-
浏览量:2364次2021-10-19 22:29:41
-
浏览量:2717次2020-05-19 10:50:52
-
浏览量:1140次2023-11-20 17:36:15
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
愚人陆陆
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注