VS2017环境下使用C++和OpenCV获取摄像头参数的代码实战

这篇具有很好参考价值的文章主要介绍了VS2017环境下使用C++和OpenCV获取摄像头参数的代码实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本文将介绍如何在VS2017环境下使用C++和OpenCV查看摄像头参数。通过使用使用OpenCV库的相关函数,获取摄像头的帧率、宽度、高度、亮度、对比度和饱和度等参数。


一、导入OpenCV库

 首先,我们需要在代码中导入OpenCV库,以便使用OpenCV的相关函数。在C++中,可以使用以下代码导入OpenCV库:

#include <opencv2/opencv.hpp>

二、创建摄像头对象

接下来,我们需要创建一个摄像头对象。在C++中,可以使用以下代码创建:

cv::VideoCapture cap(0);

这里的参数0表示使用默认的摄像头。

三、检查摄像头是否打开成功

创建摄像头对象后,我们需要检查摄像头是否打开成功。在C++中,可以使用以下代码检查:

if (cap.isOpened()) {
    // 获取摄像头参数
}

如果摄像头打开失败,则不会执行if语句内的代码。

四、获取摄像头参数

获取摄像头参数是本文的重点。在C++中,可以使用以下代码获取摄像头的帧率、宽度、高度、亮度、对比度和饱和度等参数:

double fps = cap.get(cv::CAP_PROP_FPS); // 帧率
int width = cap.get(cv::CAP_PROP_FRAME_WIDTH); // 视频帧宽度
int height = cap.get(cv::CAP_PROP_FRAME_HEIGHT); // 视频帧高度
double brightness = cap.get(cv::CAP_PROP_BRIGHTNESS); // 亮度
double contrast = cap.get(cv::CAP_PROP_CONTRAST); // 对比度
double saturation = cap.get(cv::CAP_PROP_SATURATION); // 饱和度

五、输出获取到的参数

获取到摄像头参数后,我们可以使用以下代码将其输出:

std::cout << "帧率: " << fps << std::endl;
std::cout << "视频帧宽度: " << width << std::endl;
std::cout << "视频帧高度: " << height << std::endl;
std::cout << "亮度: " << brightness << std::endl;
std::cout << "对比度: " << contrast << std::endl;
std::cout << "饱和度: " << saturation << std::endl;

六、释放摄像头资源

最后,我们需要释放摄像头资源。可以使用以下代码释放:

cap.release();
cv::destroyAllWindows();

至此,我们已经成功使用C++和OpenCV获取摄像头参数。希望这篇文章能够帮助到大家。

完整代码如下:文章来源地址https://www.toymoban.com/news/detail-723663.html

#include <opencv2/opencv.hpp>
int main()
{
	cv::VideoCapture cap(0);
	if (cap.isOpened()) {
		double fps = cap.get(cv::CAP_PROP_FPS); // 帧率
		int width = cap.get(cv::CAP_PROP_FRAME_WIDTH); // 视频帧宽度
		int height = cap.get(cv::CAP_PROP_FRAME_HEIGHT); // 视频帧高度
		double brightness = cap.get(cv::CAP_PROP_BRIGHTNESS); // 亮度
		double contrast = cap.get(cv::CAP_PROP_CONTRAST); // 对比度
		double saturation = cap.get(cv::CAP_PROP_SATURATION); // 饱和度

		std::cout << "帧率: " << fps << std::endl;
		std::cout << "视频帧宽度: " << width << std::endl;
		std::cout << "视频帧高度: " << height << std::endl;
		std::cout << "亮度: " << brightness << std::endl;
		std::cout << "对比度: " << contrast << std::endl;
		std::cout << "饱和度: " << saturation << std::endl;
	}

	cap.release();
	cv::destroyAllWindows();
	system("pause");
}

到了这里,关于VS2017环境下使用C++和OpenCV获取摄像头参数的代码实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决OpenCV使用USB摄像头获取高分辨率视频低帧率、卡、果冻画面的问题

    最近制作移动设备,需要安置多个usb摄像头到电脑,踩了几个坑,记录一下解决方案。 不能使用分线器插多个usb摄像头,同一时间只能加载一个。 usb摄像头调高分辨率时,非常卡顿,视频画面像果冻一样,及不流畅 第二个情况具体描述: 摄像头支持1920*1080  60fps,opencv在

    2024年02月16日
    浏览(93)
  • 4. QT环境下使用OPenCV(视频或摄像头读取显示在QLabel控件上)

    1. 说明 在用opencv处理图像时,图像的来源大部分情况下是从视频中读取过来的,视频可以是本地保存的视频,也可以是本地摄像头或者网络摄像头实时拍摄的视频。 效果展示: opencv读取视频 2. 具体操作 关于视频的读取,实际上也是从视频中将每一帧图像加载后,显示到Q

    2024年02月04日
    浏览(55)
  • 5. QT环境下使用OPenCV(基于TCP实现摄像头图像数据的多线程传输)

    1. 说明 通常情况下对于图像数据的采集可以放在后端进行,采集到的图像数据如果有需要可以通过通信将数据传输到前端进行显示,这其中需要使用到TCP数据传输协议和QT下的多线程开发技术。 QT当中主线程一般是界面层次的,在主线程中执行耗时较长的数据操作,会引起界

    2024年02月11日
    浏览(63)
  • OpenCV获取网络摄像头实时视频流

    参考文章: [常用工具] OpenCV获取网络摄像头实时视频流_opencv网络摄像头 [常用工具] OpenCV获取网络摄像头实时视频流_opencv网络摄像头_落痕的寒假的博客-CSDN博客 在使用OpenCv处理视频时,无论是视频文件还是摄像头画面,都要使用VideoCapture类来进行每一帧图像的处理。当我们

    2024年02月01日
    浏览(63)
  • 【OpenCV】在VS2017中配置OpenCV开发环境

    开发环境:OpenCV4.5.4、VS2017、x64 打开属性管理器:视图--其他窗口--属性管理器 找到 Release|x64,配置OpenCV环境主要操作的对象就是 Micorosoft.Cpp.x64.user 需要注意的是Micorosoft.Cpp.x64.user 在VS2019里没有了,只能手动创建,手动创建方式:右击Release|x64,选择“添加新项目属性表” 在

    2024年02月08日
    浏览(52)
  • Opencv(C++)笔记--打开摄像头、保存摄像头视频

    关键代码语句: ① VideoCapture cam(0); ② cam.read(img); ③ imshow(\\\"cam\\\", img); 关键代码: ①VideoWriter vw ②vw.open(): fourcc指定编码格式(常见编码方式)、 fps指定帧率、 Size指定大小 ③vw.write() 注:在Windows上执行上述代码可能会报以下错误: 解决方法:在输出的网址下载对应版本的库

    2024年02月11日
    浏览(60)
  • 树莓派学习:学习opencv+用opencv获取树莓派mjpg摄像头视频流

    目录 前提步骤 打开树莓派摄像头 查看是否有图像,登录游览器打开树莓派IP地址的8080端口 获取mjpg的视频流url 代码 先设定好mjpg的视频流的url 利用opencv库中的v2.VideoCapture类读取mjpg视频流   cv2.VideoCapture() 检查摄像头是否成功打开,如果没有,则打印错误消息并退出程序 

    2024年02月03日
    浏览(60)
  • 玩转rk3588(六):rk3588使用ffmpeg实现硬件解码,解决opencv中VideoCapture获取网络摄像头视频时,一直在open时返回false的问题(一)

    目录 0、前言 1、开发环境 2、安装rkmpp 3、安装x264 4、安装libdrm 5、安装ffmpeg 6、相关报错 1)libdrm编译过程中报错

    2024年02月03日
    浏览(55)
  • OpenCV 实现读取摄像头、视频读取保存 (C++)

    重点语句:VideoCapture、imshow 原理:使用VideoCapture语句读取摄像头,再利用while一次次将VideoCapture所读取的数据利用imshow语句一帧帧地读取出来 重点语句:VideoWriter 原理:在摄像头读取完图之后,利用VideoWriter语句将图像保存为固定格式 通过加入一个循环语句,按空格将图片按

    2024年02月11日
    浏览(52)
  • OpenCV C++双目三维重建:双目摄像头实现双目测距

    目录 OpenCV C++双目三维重建:双目摄像头实现双目测距 1.目录结构 2.依赖库  (1) Ubuntu 18.04配置开发环境  (2) Windows配置开发环境 3.双目相机标定  (1)双目相机标定-Python版  (2)双目相机标定-Matlab版 4.相机参数配置 5. 双目测距 6. 运行Demo 7.双目测距的误差说明 8. 双目三维重建项

    2024年02月02日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包