前言
本文将介绍如何在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
完整代码如下:文章来源地址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模板网!