关于opencv读取摄像头1080P的测试
最近测试了一下opencv自带的函数读取高清摄像头,究竟能不能做到实时读取?我先是百度了一下,网上很多读取1080p的例子,好像是可以。所以用单位的摄像头做了一个测试,结果如下:
1 opencv读取1920*1080的视频流。帧率只能达到 7.3帧/s
2 用DShow显示的话,帧率可以达到15帧/s
测试用的是同一个摄像头,不知道和摄像头有没有关系。
此次测试结果和我预想的有点差距,我感觉opencv应该可以做到实时读取1080P的视频流。在此先记录一下,如果测试过程有误请指正。
代码如下:
videoCapture读取:
void CMFCDShowDlg::OnBnClickedButopen2()
{VideoCapture capture;capture.open(0);capture.set(CV_CAP_PROP_FOURCC, CV_FOURCC('M', 'J', 'P', 'G'));capture.set(CAP_PROP_FRAME_WIDTH, 1920);capture.set(CAP_PROP_FRAME_HEIGHT, 1080);Mat frame0;Mat gray;int nframe = 0;float fps;DWORD time2;DWORD time1 = GetTickCount();while (1){capture.read(frame0);cvtColor(frame0, gray, CV_RGB2GRAY);nframe++;time2 = GetTickCount();double seconds = (time2 - time1) / 1000.0;fps = nframe / seconds;TRACE("Estimated frames per second : %f /s \r\n", fps);imwrite("f://img//ds1.jpg", gray);//显示cv::imshow("camera", gray);if (cvWaitKey(20) == 27)break;}frame0.release();gray.release();
}
DShow读取:
void CMFCDShowDlg::OnBnClickedButton1()
{if (m_cameranum == 0)return;CCameraDS camera;//打开第一个摄像头 //弹出属性选择窗口if (!camera.OpenCamera(0, true)){fprintf(stderr, "Can not open camera.\n");return;}//if (!camera.OpenCamera(0, false, 640, 480)) //不弹出属性选择窗口,用代码制定图像宽和高//{//fprintf(stderr, "Can not open camera.\n");//return;//}int tt = 0, ltt = 0;cv::namedWindow("camera");int et = -13;int nframe = 0;float fps;DWORD time2;DWORD time1 = GetTickCount();while (1){//camera.SetExposure(et);//获取一帧IplImage *pFrame = camera.QueryFrame();//std::cout<<"size = "<<pFrame->imageSize<<std::endl;cv::Mat frame(1080, 1920, CV_8UC3, pFrame->imageData);cv::Mat grey(1080, 1920, CV_8UC1);cvtColor(frame, grey, CV_RGB2GRAY);nframe++;time2 = GetTickCount();double seconds = (time2 - time1) / 1000.0;fps = nframe / seconds;TRACE("Estimated frames per second : %f /s \r\n", fps);cv::flip(grey, grey, 1);imwrite("f://img//ds0.jpg",grey);//显示cv::imshow("camera", grey);et++;if (cvWaitKey(2) == 27)break;}camera.CloseCamera(); //可不调用此函数,CCameraDS析构时会自动关闭摄像头cvDestroyWindow("camera");
}
关于opencv读取摄像头1080P的测试相关推荐
- 关于opencv读取摄像头的未解之谜
前段时间做项目需要用opencv读usb摄像头的视频数据,遇到很多无解的问题,虽然后来没有用到,但是还是记录下来,也许以后就知道答案了呢. 1.无论摄像头的实际分辨率是多少,opencv读进来的视频分 ...
- FFmpeg+OpenCV 读取摄像头
FFmpeg+OpenCV 读取摄像头 提供两种方式使用 FFmpeg 从摄像头中读取数据,并使用 OpenCV 显示视频帧. 读取摄像头 方法一 void VideoCapture() {avdev ...
- opencv读取摄像头数据有黑边
opencv读取摄像头,发现有黑边 #ifdef WIN32cv::VideoCapture capture(mCameraIndex,cv::CAP_DSHOW); #elsecv::VideoCa ...
- Qt+OpenCV读取摄像头视频、本地视频、网络视频流Demo
Qt+OpenCV读取摄像头视频.本地视频.网络视频流Demo
- android opencv卡顿,Opencv读取摄像头卡顿
Opencv读取摄像头卡顿 开发环境:Win10系统,罗技HD1080p高清摄像头,UE4_21,VS2017后端 开发原理:多线程中经过OpenCV对摄像头进行高清采集(1920*1080),而后显 ...
- b g opencv读入的图片 r,OpenCV 读取摄像头并显示图像的R、G、B三个通道的直方图...
1.读取摄像头 2.从一副彩色图像中分离出R.G.B三个通道(cvSplit) 3. 分别对每个通道图像创建直方图,并显示 源码如下: // Camera_Capture_Histogram.cpp ...
- 树莓派摄像头读出来的数据是黑的!!(使用c++版qt5的opencv读取摄像头)
我难受了整整一周的问题,我把网上所有的博客都翻烂了,尝试了各种各样的方法,问了很多很多人,天天头疼欲裂,我必须得记录一下! 故事背景: 我本来使用了python版的qt 来读32位bullseye版本 ...
- OpenCV读取摄像头,把摄像头的视频读取保存
一.读取摄像头 #include <opencv2\opencv.hpp> using namespace cv; using namespace std;int main() {//读取 ...
- 基于OpenCV读取摄像头进行人脸检测和人脸识别
前段时间使用OpenCV的库函数实现了人脸检测和人脸识别,笔者的实验环境为VS2010+OpenCV2.4.4,OpenCV的环境配置网上有很多,不再赘述.检测的代码网上很多,记不清楚从哪儿copy的 ...
最新文章
- SQL系列ROLLUP关键字
- AdventureWorksBI.msi 和 AdventureWorksDB.msi 的官方下载地址及安装方法
- 2019黑龙江省赛总结
- Reinforcement Learning
- 响应对象Response
- SOAPUI接口测试http协议详细测试过程
- 乘幂法求矩阵的特征值及特征向量
- 8个接私活的网站,只要你有码,那就有钱!
- 几何学五大公理_高中数学几何公理,定理。全部
- 《网页配色密码》 一本易读实用的好书
- 123457123457#0#-----com.yuming.TruckCarRun01--前拼后广--大卡车游戏cym
- 威联通文件传输服务器,威联通QTS文件传输体验
- Hello!树先生 (2011)
- python 蒙特卡罗_python实现蒙特卡罗方法教程
- C语言求组合数C35,巧用组合数的性质求和
- 西游记中13大高手排名
- 5V转3.3V的N种方法
- 机器学习(一) 机器学习概述
- python3抓取杭州房价信息
- 在数据库EMIS1中;把日志文件初始大小修改为10MB,增长量为每次增长5MB,最大大小保持不变。
热门文章
- Recurdyn中Subrtine和ProcessNet的dll文件建立
- 迪文屏幕动态曲线显示问题记录
- 基于esp32的ic卡考勤系统
- ue4 android联机,UE4 局域网联机(LAN)
- PSD/PS: Matlab估计PSD的方法
- php视频播放链提取,php获取腾讯云点播上传视频后获取视频url地址以及时长 | 小灰灰博客...
- Spring MVC 入门概要 1
- alphassl通配符证书送一个月
- discuz 头像html5上传,discuz更新H5头像上传
- 冈萨雷斯数字图像处理第三章空间滤波