抱歉,我之前的回答有误。在OpenCV中,cv::VideoCapture
类没有直接提供获取摄像头支持分辨率的方法。
相反,您可以使用一些操作来获取可用的分辨率选项。下面是一个示例代码:
#include <opencv2/opencv.hpp>
int main() {
cv::VideoCapture cap(0); // 打开默认的USB摄像头设备
if (!cap.isOpened()) {
std::cerr << "Failed to open camera!" << std::endl;
return -1;
}
cv::Mat frame;
// 使用不同分辨率尝试打开摄像头并获取帧
for (int width : {640, 1280, 1920}) {
for (int height : {480, 720, 1080}) {
cap.set(cv::CAP_PROP_FRAME_WIDTH, width);
cap.set(cv::CAP_PROP_FRAME_HEIGHT, height);
// 尝试读取一帧图像
if (cap.read(frame)) {
std::cout << "Resolution: " << width << "x" << height << std::endl;
}
}
}
cap.release();
return 0;
}
上述代码会依次尝试设置不同的宽度和高度值,并通过读取一帧图像来检查是否支持该分辨率。如果成功读取到帧图像,则说明该分辨率是受支持的。您可以根据需要修改示例代码以适应更多可能的分辨率选项。
内容由零声教学AI助手提供,问题来源于学员提问