Opencv读取摄像头卡顿

开发环境:Win10系统,罗技HD1080p高清摄像头,UE4_21,VS2017后端

开发原理:多线程中经过OpenCV对摄像头进行高清采集(1920*1080),而后显示到UMG中。多线程

遇到问题:在2k采集模式下,画面卡顿厉害。ide

猜测1:是否是卡在采集后的图像cv::Mat往UTexture2D*填入时的问题,毕竟1920*1080个像素的拷贝。编码

实践:减少采集分辨率(640*480),而后cv::resize到1920*1080,再拷贝到1920*1080的UTexture2D* 中spa

结果:视频很是流畅,那么能够断言,跟图像据拷贝到UTexture2D*中这一步,就不要紧了.net

猜测2:是否是摄像头采集的问题。有大佬说了,不少摄像头,在高分辨率的状况下都不到15帧,以MJPG格式解码能达到30帧。线程

实践:这一步固然去网上搜刮了。code

原理篇参阅Jetson TX1开发笔记(六):V4L2+OpenCV3.1以MJPG格式读取USB摄像头图像并实时显示视频

大体意思是这样的,该摄像头的YUV2输出格式只有一种640 x 480分辨率,而输出格式为MJPG有多种分辨率,若是想实现高清采集,须要经过MJPG格式进行采集。

那么,怎么设置采集模式呢?

毫无疑问,确定在设置里面。看看网上大佬是怎么表演的吧。

Python opencv 调用摄像头时设置以MJPG等编码格式获取视频

(下面引用上篇博客,转C++实现)

使用opencv读取和设置摄像头或视频属性代码以下。

cv::VideoCapture cap;

cap.set(proID, value)

cap.get(proID)

其中,propId 的值为 0 - 18,19个值并非每一个均可以进行修改,每一个值对应的属性以及功能以下以下:

参数

功能/意义

CV_CAP_PROP_POS_MSEC

0

视频文件的当前位置(以毫秒为单位)或视频捕获时间戳

CV_CAP_PROP_POS_FRAMES

1

基于0的索引将被解码/捕获下一帧

CV_CAP_PROP_POS_AVI_RATIO

2

视频文件相对位置:0 - 电影的开始,电影的1 - 结束

CV_CAP_PROP_FRAME_WIDTH

3

视频里每一帧的宽

CV_CAP_PROP_FRAME_HEIGHT

4

视频里每一帧的高

CV_CAP_PROP_FPS

5

视频的帧速

CV_CAP_PROP_FOURCC

6

4个字符表示的视频编码器格式

CV_CAP_PROP_FRAME_COUNT

7

视频的帧数

CV_CAP_PROP_FORMAT

8

byretrieve()返回的Mat对象的格式

CV_CAP_PROP_MODE

9

指示当前捕获模式的后端特定值

CV_CAP_PROP_BRIGHTNESS

10

图像的亮度(仅适用于相机)

CV_CAP_PROP_CONTRAST

11

图像对比度(仅适用于相机)

CV_CAP_PROP_SATURATION

12

图像的饱和度(仅适用于相机)

CV_CAP_PROP_HUE

13

图像的色相(仅适用于相机)

CV_CAP_PROP_GAIN

14

图像的增益(仅适用于相机)

CV_CAP_PROP_EXPOSURE

15

曝光(仅适用于相机)

CV_CAP_PROP_CONVERT_RGB

16

表示图像是否应转换为RGB的布尔标志

CV_CAP_PROP_WHITE_BALANCE

17

目前不支持

CV_CAP_PROP_RECTIFICATION

18

立体摄像机的整流标志(注意:只有当前支持DC1394 v 2.x后端)

//1.打开摄像机设备(默认第一个)

cv::VideoCapture cap= cv::VideoCapture(0);

//2.必定要先设置采集格式!!!

cap.set(CV_CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'));

//3.而后再设置高清采集分辨率

cap.set(CV_CAP_PROP_FRAME_WIDTH, 1920);

cap.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);

结果:流畅地一笔,本身去感觉

android opencv卡顿,Opencv读取摄像头卡顿相关推荐

  1. c语言 sd卡检测,单片机读取SD卡CSD寄存器获取容量详解(V1.0V2.0)

    目前,SD卡CSD寄存器有V1.0和V2.0两个版本. 下面是V1.0和V2.0的CSD寄存器各位的定义表格. 1.单片机如何识别SD卡是V1.0还是V2.0的? 答:CSD寄存器为128个位,即16 ...

  2. 写字机器人开发之:python opencv linux下合作操作摄像头

    2019独角兽企业重金招聘Python工程师标准>>> 设想 之前使用C#控制摄像头的,现在厌烦了windows,决定转移到linux下玩耍.感觉能够python语言特有的好入手,正 ...

  3. sd卡座封装尺寸_SD卡座结构图及使用注意说明

    SD卡座示例图 SD卡座结构图 SD卡座的结构分析及工作原理 SD卡座是一种弹跳式的装置,在sd卡座的卡槽底部一般都是有一个复位的装置结构.可以将sd卡弹跳出来,其操作原理是,在SD卡座中卡槽的底部有 ...

  4. android读取文本卡顿,Android TextView setText卡顿问题

    TextView 是常用控件之一,最常用的方法是setText()  .但是 我们在显示大量的文本的时候,使用setText还是会有一些性能的问题. 这篇文章 关于TextView的setText 的 ...

  5. NANO开发套件SD卡烧录+opencv配置+tensorrt+cuda10.2

    本博客所有使用的资料在百度盘中,请自取: 链接:https://pan.baidu.com/s/1GZFR_Lx35zu3UoB38GI4TA 提取码:4p6x 复制这段内容后打开百度网盘手机App, ...

  6. 树莓派摄像头读出来的数据是黑的!!(使用c++版qt5的opencv读取摄像头)

    我难受了整整一周的问题,我把网上所有的博客都翻烂了,尝试了各种各样的方法,问了很多很多人,天天头疼欲裂,我必须得记录一下! 故事背景: 我本来使用了python版的qt 来读32位bullseye版本 ...

  7. 使用Python,OpenCV进行卡类型及16位卡号数字的OCR

    使用Python,OpenCV进行卡类型及16位卡号数字的OCR 1. 效果图 2. 原理 2.1 OCR-A字体 2.2 检测过程步骤 2.3 优化 3. 源代码 参考 这篇博客将介绍如何通过Ope ...

  8. android 读取sd卡中的图片

    一.获取读取SD卡的权限 <!--在SDCard中创建与删除文件权限 --><uses-permission android:name="android.permissio ...

  9. android 音乐播放器 获取sd卡所有音乐文件,Android Studio音乐播放器无法读取SD卡,只有内部存储器...

    我很抱歉,如果这原来是一个愚蠢的问题,它可能会成为一个快速修复,但我只是无法弄清楚.我在android studio中创建了音乐播放器,并且没有任何sdcard上的歌曲不会显示在列表视图中,只有内部内 ...

最新文章

  1. 清空控制台Console.log()信息
  2. java中方法的参数传递
  3. 欣赏一下OFFICE 2013 PLUS吧
  4. Oracle创建 表空间 用户 给用户授权命令
  5. 中国四丁基尿素(TBU)市场趋势报告、技术动态创新及市场预测
  6. 如何才能成为一个高效工作的软件工程师?
  7. 查看每个用户linux内存,编写shell脚本查看linux当前各用户的cpu和memory消耗比例
  8. AcWing 892. 台阶-Nim游戏(nim博弈变种)
  9. 我们团队一位自学Android的经验总结
  10. 通过Expression Tree来扩展MVC中的HtmlHelper 和 UrlHelper
  11. WIFi6与WIFI5技术路线演进及优势
  12. 【013】故宫博物院数字文物库-让文物随时可赏
  13. Linux程序设计——用getopt处理命令行参数
  14. 听《正面管教》,论如何教育孩子
  15. 文献笔记:Contrast-Phys: Unsupervised Video-based Remote Physiological Measurement viaSpatiotemporal Con
  16. 斯坦福极简经济学 读书笔记
  17. Python音乐下载
  18. QGIS教程-1:软件安装
  19. 微信Mac版 v3.0.0正式版上线!mac电脑上也能在朋友圈点赞和互动!
  20. 香农费诺编码 c语言实现,对于香农编码、费诺编码和哈夫曼编码,编码方法惟一的是()。...

热门文章

  1. laravel6 内置 api 认证
  2. 激光雷达的结构和分类
  3. 深入浅出外观模式(二):外观模式应用实例
  4. 教你如何免费生成以及免费注册EOS账户
  5. 扒一扒在悉尼斩获大奖的TStack的“成名史”
  6. sssssssssss
  7. 病人康复训练中姿势识别与纠正方法研究
  8. 实验二:Lagrange拉格朗日插值法之C语言代码
  9. NEC海底光缆项目团队荣获日本ITU协会成就奖
  10. 大模型带来的MaaS(模型即服务)的商业模式将带来什么?