android opencv卡顿,Opencv读取摄像头卡顿
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读取摄像头卡顿相关推荐
- 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 ...
- 写字机器人开发之:python opencv linux下合作操作摄像头
2019独角兽企业重金招聘Python工程师标准>>> 设想 之前使用C#控制摄像头的,现在厌烦了windows,决定转移到linux下玩耍.感觉能够python语言特有的好入手,正 ...
- sd卡座封装尺寸_SD卡座结构图及使用注意说明
SD卡座示例图 SD卡座结构图 SD卡座的结构分析及工作原理 SD卡座是一种弹跳式的装置,在sd卡座的卡槽底部一般都是有一个复位的装置结构.可以将sd卡弹跳出来,其操作原理是,在SD卡座中卡槽的底部有 ...
- android读取文本卡顿,Android TextView setText卡顿问题
TextView 是常用控件之一,最常用的方法是setText() .但是 我们在显示大量的文本的时候,使用setText还是会有一些性能的问题. 这篇文章 关于TextView的setText 的 ...
- NANO开发套件SD卡烧录+opencv配置+tensorrt+cuda10.2
本博客所有使用的资料在百度盘中,请自取: 链接:https://pan.baidu.com/s/1GZFR_Lx35zu3UoB38GI4TA 提取码:4p6x 复制这段内容后打开百度网盘手机App, ...
- 树莓派摄像头读出来的数据是黑的!!(使用c++版qt5的opencv读取摄像头)
我难受了整整一周的问题,我把网上所有的博客都翻烂了,尝试了各种各样的方法,问了很多很多人,天天头疼欲裂,我必须得记录一下! 故事背景: 我本来使用了python版的qt 来读32位bullseye版本 ...
- 使用Python,OpenCV进行卡类型及16位卡号数字的OCR
使用Python,OpenCV进行卡类型及16位卡号数字的OCR 1. 效果图 2. 原理 2.1 OCR-A字体 2.2 检测过程步骤 2.3 优化 3. 源代码 参考 这篇博客将介绍如何通过Ope ...
- android 读取sd卡中的图片
一.获取读取SD卡的权限 <!--在SDCard中创建与删除文件权限 --><uses-permission android:name="android.permissio ...
- android 音乐播放器 获取sd卡所有音乐文件,Android Studio音乐播放器无法读取SD卡,只有内部存储器...
我很抱歉,如果这原来是一个愚蠢的问题,它可能会成为一个快速修复,但我只是无法弄清楚.我在android studio中创建了音乐播放器,并且没有任何sdcard上的歌曲不会显示在列表视图中,只有内部内 ...
最新文章
- 清空控制台Console.log()信息
- java中方法的参数传递
- 欣赏一下OFFICE 2013 PLUS吧
- Oracle创建 表空间 用户 给用户授权命令
- 中国四丁基尿素(TBU)市场趋势报告、技术动态创新及市场预测
- 如何才能成为一个高效工作的软件工程师?
- 查看每个用户linux内存,编写shell脚本查看linux当前各用户的cpu和memory消耗比例
- AcWing 892. 台阶-Nim游戏(nim博弈变种)
- 我们团队一位自学Android的经验总结
- 通过Expression Tree来扩展MVC中的HtmlHelper 和 UrlHelper
- WIFi6与WIFI5技术路线演进及优势
- 【013】故宫博物院数字文物库-让文物随时可赏
- Linux程序设计——用getopt处理命令行参数
- 听《正面管教》,论如何教育孩子
- 文献笔记:Contrast-Phys: Unsupervised Video-based Remote Physiological Measurement viaSpatiotemporal Con
- 斯坦福极简经济学 读书笔记
- Python音乐下载
- QGIS教程-1:软件安装
- 微信Mac版 v3.0.0正式版上线!mac电脑上也能在朋友圈点赞和互动!
- 香农费诺编码 c语言实现,对于香农编码、费诺编码和哈夫曼编码,编码方法惟一的是()。...