对不起,我之前的回答有误。确实没有CAP_PROP_SUPPORTED_PREVIEW_SIZES
这个宏。
在OpenCV中,获取摄像头支持的分辨率列表可以通过以下方式实现:
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
cv::VideoCapture capture(0); // 打开默认摄像头
if (!capture.isOpened()) {
std::cout << "无法打开摄像头" << std::endl;
return -1;
}
// 获取支持的分辨率列表
std::vector<cv::Size> resolutions;
for (auto& fmt : capture.get(cv::CAP_PROP_FORMATS)) {
capture.set(cv::CAP_PROP_FOURCC, fmt);
resolutions.push_back(cv::Size(capture.get(cv::CAP_PROP_FRAME_WIDTH), capture.get(cv::CAP_PROP_FRAME_HEIGHT)));
}
// 输出每个分辨率
for (const auto& resolution : resolutions) {
std::cout << "Width: " << resolution.width << ", Height: " << resolution.height << std::endl;
}
capture.release(); // 释放资源
return 0;
}
以上代码使用了cv::VideoCapture
类,并通过遍历所有可用的格式来设置摄像头的FourCC(四字符码),然后获取相应的分辨率。最后,遍历列表并输出每个分辨率的宽度和高度。
同样,请确保已正确安装和配置OpenCV库,并将代码编译为可执行文件后运行测试。
内容由零声教学AI助手提供,问题来源于学员提问