无锡建设执业资格注册中心网站,页面设计简单吗,苏州市网站制作,电商网站开发目的操作系统#xff1a;ubuntu22.04 OpenCV版本#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言#xff1a;C11
算法描述
在 VideoCapture 中设置一个属性。 在OpenCV中#xff0c;cv::VideoCapture::set() 函数用于设置视频捕获设备的属性。这些属性可以包括分辨率、… 操作系统ubuntu22.04 OpenCV版本OpenCV4.9 IDE:Visual Studio Code 编程语言C11
算法描述
在 VideoCapture 中设置一个属性。 在OpenCV中cv::VideoCapture::set() 函数用于设置视频捕获设备的属性。这些属性可以包括分辨率、帧率等。
函数原型
virtual bool cv::VideoCapture::set
(int propId,double value
) 参数
参数propertyId (int) 描述属性标识符用于指定要设置的属性。示例cv::CAP_PROP_FRAME_WIDTH设置帧宽度 参数value (double) 描述要设置的属性值。示例1280设置宽度为1280像素
属性标识符 propertyId 参数可以是以下常量之一这里列出了一些常用的属性标识符
cv::CAP_PROP_POS_MSEC当前帧的位置以毫秒为单位 cv::CAP_PROP_POS_FRAMES当前帧的位置以帧数为单位 cv::CAP_PROP_POS_AVI_RATIO当前帧的位置以比例为单位范围0至1 cv::CAP_PROP_FRAME_WIDTH帧宽度以像素为单位 cv::CAP_PROP_FRAME_HEIGHT帧高度以像素为单位 cv::CAP_PROP_FPS帧率每秒帧数 cv::CAP_PROP_FOURCC四字符代码FourCC cv::CAP_PROP_FRAME_COUNT视频中的总帧数 cv::CAP_PROP_FORMAT格式仅用于某些平台 cv::CAP_PROP_MODE模式仅用于某些平台 cv::CAP_PROP_BRIGHTNESS亮度仅适用于某些设备 cv::CAP_PROP_CONTRAST对比度仅适用于某些设备 cv::CAP_PROP_SATURATION饱和度仅适用于某些设备 cv::CAP_PROP_HUE色调仅适用于某些设备 cv::CAP_PROP_GAIN增益仅适用于某些设备 cv::CAP_PROP_EXPOSURE曝光仅适用于某些设备 cv::CAP_PROP_CONVERT_RGB转换为RGB布尔值
返回值
类型bool 描述返回值指示设置是否成功。如果返回 true则表示设置成功如果返回 false则表示设置失败。
注意 即使返回 true这也不能保证属性值已被捕获设备接受。参见 VideoCapture::get() 中的注释。
代码示例 #include iostream
#include opencv2/opencv.hppint main()
{// 创建一个 VideoCapture 对象cv::VideoCapture cap;// 定义摄像头设备索引int cameraIndex 0; // 第一个摄像头设备// 尝试打开摄像头设备if ( !cap.open( cameraIndex, cv::CAP_ANY ) ){std::cout Failed to open camera at index: cameraIndex std::endl;return -1;}// 检查是否成功打开了摄像头设备if ( !cap.isOpened() ){std::cout Error opening camera at index: cameraIndex std::endl;return -1;}// 设置帧宽度和高度cap.set( cv::CAP_PROP_FRAME_WIDTH, 640 );cap.set( cv::CAP_PROP_FRAME_HEIGHT, 480 );// 设置亮度和对比度cap.set( cv::CAP_PROP_BRIGHTNESS, 0.5 ); // 假设0到1之间的值cap.set( cv::CAP_PROP_CONTRAST, 0.5 ); // 假设0到1之间的值// 循环读取并显示视频帧while ( true ){// 创建一个 Mat 对象来存储视频帧cv::Mat frame;// 从视频流中读取下一帧if ( !cap.read( frame ) ){std::cout No frame grabbed. std::endl;break;}// 检查是否成功读取到了帧if ( frame.empty() ){std::cout Frame is empty. std::endl;break;}// 显示视频帧cv::imshow( Camera Stream, frame );// 按 q 键退出循环if ( cv::waitKey( 1 ) q ){break;}}// 释放资源cap.release();cv::destroyAllWindows();return 0;
}