图像识别(8)——使用OpenCV预览USB摄像头+曝光设置
来源:互联网 发布:网络电视直播翡翠台 编辑:程序博客网 时间:2024/05/17 06:59
博主QQ:1356438802
QQ群:473383394——UVC&OpenCV473383394
平台:Win7 64bits + Visual Studio 2012 + OpenCV 2.4.10
其实用OpenCV预览USB摄像头,在前面的文章中为了录制视频,已经讲过了,这里在贴出来,相当于复习下。
因为OpenCV是纯C语言和C++,与平台无关,所以基于OpenCV写出来的程序,也是跨平台的,我在Visual Studio上写好了,直接放到QT里面同样可以编译运行,而且所有平台我之前都安装打通了,现在用哪个平台已经无所谓了!
其实书本案例已经给出了预览摄像头的代码,我在代码中增加了设置曝光值和读取画面分辨率的语句。
//--------------------------------------【程序说明】-------------------------------------------//程序说明:《OpenCV3编程入门》OpenCV2版书本配套示例程序07//程序描述:使用VideoCapture类调用摄像头读入视频并显示//开发测试所用操作系统: Windows 7 64bit//开发测试所用IDE版本:Visual Studio 2010//开发测试所用OpenCV版本:2.4.9//2014年03月 Created by @浅墨_毛星云//2014年11月 Revised by @浅墨_毛星云//------------------------------------------------------------------------------------------------//---------------------------------【头文件、命名空间包含部分】----------------------------//描述:包含程序所使用的头文件和命名空间//-------------------------------------------------------------------------------------------------#include <opencv2\opencv.hpp> using namespace cv; using namespace std;Mat frame; //定义一个Mat变量,用于存储每一帧的图像double time0;int exposure = -1;//-----------------------------------【main( )函数】--------------------------------------------//描述:控制台应用程序的入口函数,我们的程序从这里开始//-------------------------------------------------------------------------------------------------int main( ) { //【1】从摄像头读入视频VideoCapture capture(0);if(false == capture.isOpened()){return -1;}exposure = capture.get(CV_CAP_PROP_EXPOSURE);//显示曝光值cout << ">设置前: 曝光值= " << exposure << endl;//设置曝光值capture.set(CV_CAP_PROP_EXPOSURE, exposure);exposure = capture.get(CV_CAP_PROP_EXPOSURE);//显示曝光值cout << ">设置后: 曝光值= " << exposure << endl;double width = capture.get(CV_CAP_PROP_FRAME_WIDTH);double height = capture.get(CV_CAP_PROP_FRAME_HEIGHT);//显示尺寸cout << ">宽:= " << width << "; 高: =" << height << endl;//【2】循环显示每一帧while(1) { time0 = static_cast<double>(getTickCount( ));//记录起始时间capture >> frame; //读取当前帧//若视频播放完成,退出循环if (frame.empty()){break;}imshow("UVC",frame); //显示当前帧//显示帧率//cout << ">帧率= " << getTickFrequency() / (getTickCount() - time0) << endl;char c = (char)waitKey(10);if( c == 27 )break;} return 0; }
要注意的是,有些USB摄像头并不支持调节曝光值,即使你调了也没有变化。还有我手上有个摄像头,当我调了曝光值后的瞬间,画面有变化,但是马上又恢复原来的样子。
0 0
- 图像识别(8)——使用OpenCV预览USB摄像头+曝光设置
- 图像识别(9)——UVC预览+曝光滑动调节
- USB摄像头预览识别二维码
- USB摄像头预览识别二维码
- 图像识别(10)——UVC预览+曝光滑动调节+Canny阈值调节+圆心打点
- zynq-7000学习笔记(十六)——opencv采集USB摄像头图像
- 树莓派自带摄像头OpenCV图像识别-二维码识别
- 玩转Dragonboard 410c USB摄像头——获取USB摄像头图像
- -06-OpenCV通过USB摄像头采集图像【Xilinx-Petalinux学习】
- OpenCV入门学习之读取usb摄像头图像,实时显示
- opencv图像识别 0——精通
- Android+OpenCV 摄像头实时识别模板图像并跟踪
- OpenCV-009:识别摄像头图像中的指定颜色并显示
- opencv中VideoCapture的使用——打开网络摄像头/图像序列
- OpenCV之VideoCapture的使用——打开网络摄像头/图像序列
- 使用Qt+OpenCV+VideoInput 显示摄像头图像
- MFC中使用OpenCV显示摄像头图像
- opencv 调用USB 摄像头
- java web 图片上传功能
- 文本文件里如何快速在每行头尾都加上指定的内容---正则表达式(一)
- C# 结构体 struct
- jme3模型纹理合并导出j3o
- SUMO文档063:osmWebWizard
- 图像识别(8)——使用OpenCV预览USB摄像头+曝光设置
- 2017年做微商如何赚钱
- [Leetcode] Minimum Size Subarray Sum
- Android开源项目
- c++ return (a,b)类似的问题
- MFC 添加richedit控件
- 超强、超详细Redis数据库入门教程
- 容量评估与应用水位
- ubuntu下Tomcat7安装