在使用OpenCV打开2k USB摄像头时,发现VideoCapture实例化的对象捕捉的视频帧的分辨率总是640×480640 \times 480640×480,而我的摄像头硬件分辨率最高可以支持2560×14402560 \times 14402560×1440,经研究发现需要重新设置分辨率。

使用OpenCV测试摄像头支持的最高分辨率

#include <opencv2/highgui.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>using namespace std;int main()
{cv::Mat frame;cv::VideoCapture cap(0);//默认分辨率double frame_width = cap.get(cv::CAP_PROP_FRAME_WIDTH);double frame_height = cap.get(cv::CAP_PROP_FRAME_HEIGHT);double frame_rate = cap.get(cv::CAP_PROP_FPS);cout << "default : " << "( " << frame_width << ", " << frame_height << " )" << ", " << frame_rate << endl;//设置分辨率,编码格式cap.set(cv::CAP_PROP_FRAME_WIDTH, 5000);cap.set(cv::CAP_PROP_FRAME_HEIGHT, 5000);cap.set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'));double frame_set_width = cap.get(cv::CAP_PROP_FRAME_WIDTH);double frame_set_height = cap.get(cv::CAP_PROP_FRAME_HEIGHT); double frame_set_rate = cap.get(cv::CAP_PROP_FPS);cout << "after Change : " << "( " << frame_set_width << ", " << frame_set_height << " )" << ", " << frame_set_rate << endl;return 0;
}
default : ( 640, 480 ), 30
after Change : ( 2560, 1440 ), 30
[ WARN:0] terminating async callback

可以看到,欲设置分辨率5000×50005000\times50005000×5000,但是设置结束后,显示的分辨率为:2560×14402560 \times 14402560×1440。因此,2560×14402560 \times 14402560×1440就是该摄像头所支持的最高分辨率。

更改分辨率

#include <opencv2/highgui.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>using namespace std;int main()
{cv::Mat frame;cv::VideoCapture cap(0);//默认分辨率double frame_width = cap.get(cv::CAP_PROP_FRAME_WIDTH);double frame_height = cap.get(cv::CAP_PROP_FRAME_HEIGHT);double frame_rate = cap.get(cv::CAP_PROP_FPS);cout << "default : " << "( " << frame_width << ", " << frame_height << " )" << ", " << frame_rate << endl;//设置分辨率,编码格式cap.set(cv::CAP_PROP_FRAME_WIDTH, 1920);cap.set(cv::CAP_PROP_FRAME_HEIGHT, 1080);cap.set(cv::CAP_PROP_FOURCC, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'));double frame_set_width = cap.get(cv::CAP_PROP_FRAME_WIDTH);double frame_set_height = cap.get(cv::CAP_PROP_FRAME_HEIGHT); double frame_set_rate = cap.get(cv::CAP_PROP_FPS);cout << "after Change : " << "( " << frame_set_width << ", " << " )" << frame_set_height << ", " << frame_set_rate << endl;if (!cap.isOpened()){return -1;}cout << "摄像头是否打开:" << cap.isOpened() << endl;while (1) {cap.read(frame);cv::imwrite("./1920-1080-4.jpg", frame);cv::namedWindow("frame", 0);cv::resizeWindow("frame", 1280, 720);      //设置长宽大小cv::moveWindow("frame", 0, 0);              //移动窗口到(0,0)坐标cv::imshow("frame", frame);cv::waitKey(1);                              //间隔时间长一点,保存完整图片}cap.release();cv::destroyAllWindows();return 0;
}

如此,捕获的视频帧分辨率可高达1920×10801920 \times 10801920×1080。

namedWindow

void cv::namedWindow(const String& winname,int   flags = WINDOW_AUTOSIZE
)

resizeWindow

void cv::resizeWindow(const String& winname,int  width,int   height
)

moveWindow

void cv::moveWindow(const String& winname,int    x,int   y
)

参考文献:

  1. 关于opencv读取摄像头的未解之谜
  2. Python+Opencv读取高帧率USB摄像头问题

关于OpenCV打开摄像头默认分辨率是640*480的问题相关推荐

  1. 【计算机视觉】关于用opencv 设置摄像头读分辨率问题的若干说明

    关于用opencv 设置摄像头读分辨率问题的若干说明 1 问题最初起因 我想充分利用相机高分辨率来提高视角,故用opencv直接设置摄像机分辨率.不幸的我倒霉出现问题. VideoCapture类读A ...

  2. AI 质检学习报告——实践篇——第一步:python利用OpenCV打开摄像头并截图

    写在前边 想要做一个AI质检的项目,一点一点来,首先:python利用OpenCV打开摄像头并拍照. 效果 设摄像头像素不咋地,实际的产品肯定不会是这个像素,必须安排一个专业的. 实现代码 impor ...

  3. 如何使用 Opencv 打开摄像头获取图像信息?

    如何使用 Opencv 打开摄像头获取图像信息? Flow 遍历摄像头设备. 根据 VID 和 PID 打开特定的设备. 使用 Directshow 设置摄像头相关参数(曝光度.分辨率.亮度.饱和度. ...

  4. python opencv打开摄像头,截图保存

    python opencv打开摄像头,截图保存,学习结果如下: 使用python打开摄像头 import cv2 cap = cv2.VideoCapture(0) #设置摄像头 0是默认的摄像头 如 ...

  5. python opencv打开摄像头

    opencv打开摄像头 import cv2 cap = cv2.VideoCapture(0) while True:ret, frame = cap.read()frame = cv2.flip( ...

  6. AI 质检学习报告——实践篇——第三步:python利用OpenCV打开摄像头截图后实现图片识字

    AI 质检学习报告--实践篇--第一步:python利用OpenCV打开摄像头并截图 AI 质检学习报告--实践篇--第二步:实现图片识字 前边两篇实践已经分别实现了利用OpenCV打开摄像头并截图和 ...

  7. OpenCv打开摄像头失败问题处理cap_msmf.cpp (677) MFVideoFormat_RGB24(codec not found)

    python opencv 打开摄像头,服务器挂掉重新启动问题 下面是代码 importing the required modules import cv2 import numpy as np c ...

  8. OpenCV打开摄像头,RGB转HSV空间

    文章目录 前言 一.使用OpenCV打开摄像头 二.使用OpenCV进行图像预处理 前言 有段时间没有更新了,最近主要在忙一个项目,用到了OpenCV,故想把一些常用代码在这里备份一下,一起学习. 环 ...

  9. C++/Qt 使用OpenCV打开摄像头,旋转视频,计算fps

    C++/Qt 使用OpenCV打开摄像头,旋转视频,计算fps 设置摄像头参数 不要随意修改,同时也不一样会修改成功,需要根据实际摄像头的参数选择设置 /*设置摄像头参数 不要随意修改capture. ...

最新文章

  1. 深入理解程序执行原理
  2. 把老赵的页面缓存片断改一下,呵呵
  3. python selenium加速_selenium2.0环境搭建(一)
  4. 最常使用Eclipse快捷键
  5. mysql 表格入门_MySQL-快速入门(1)基本数据库、表操作语句
  6. 用户故事与敏捷方法—估算用户故事
  7. vue json 编辑组件_内置为Vue组件的Visual JSON编辑器
  8. 树莓派3B的摄像头模块
  9. 国内遥感卫星资源综述
  10. java 实现QQ自动登录(带验证码)
  11. Unity3d美颜滤镜
  12. 电感电容串联起什么作用
  13. 计算机无法同步时间同步,在win10中,为什么电脑时间不能同步?
  14. 在寂静的夜中、独自沉沦_悲伤QQ个人签名
  15. 三菱FX3Uplc控制的三轴程序通用编程,程序带有注解,有原点回归,机器手加减速设置
  16. 利用opencv从USB摄像头获取图片 获得摄像头编号
  17. 4线触摸屏控制器ET2046介绍
  18. ArcGIS:按数值提取栅格区域
  19. 新电脑安装Ubuntu的血泪史:UEFI+GPT模式下在同一块固态硬盘上安装win10和Ubuntu16.04双系统
  20. 【Leetcode】1641. Count Sorted Vowel Strings

热门文章

  1. java exp5_[Core Java® for the Impatient]重载Java1
  2. 基于JAVA的在线人才招聘求职系统【数据库设计、源码、开题报告】
  3. 编程俱乐部9.12比赛总结
  4. C++ 手写自建小顶堆
  5. 2021年CSP-S初赛试题
  6. 基于深度学习的轴承故障识别
  7. Linux C 进程间的管道通信
  8. 8843 留学生form_报税季又来啦~2019留学生最新最详细的报税指南看过来!
  9. 设置更换 PyCharm 的主题和字体与下载导入其他PyCharm主题
  10. 新能源汽车与三电技术