关于OpenCV打开摄像头默认分辨率是640*480的问题
在使用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
)
参考文献:
- 关于opencv读取摄像头的未解之谜
- Python+Opencv读取高帧率USB摄像头问题
关于OpenCV打开摄像头默认分辨率是640*480的问题相关推荐
- 【计算机视觉】关于用opencv 设置摄像头读分辨率问题的若干说明
关于用opencv 设置摄像头读分辨率问题的若干说明 1 问题最初起因 我想充分利用相机高分辨率来提高视角,故用opencv直接设置摄像机分辨率.不幸的我倒霉出现问题. VideoCapture类读A ...
- AI 质检学习报告——实践篇——第一步:python利用OpenCV打开摄像头并截图
写在前边 想要做一个AI质检的项目,一点一点来,首先:python利用OpenCV打开摄像头并拍照. 效果 设摄像头像素不咋地,实际的产品肯定不会是这个像素,必须安排一个专业的. 实现代码 impor ...
- 如何使用 Opencv 打开摄像头获取图像信息?
如何使用 Opencv 打开摄像头获取图像信息? Flow 遍历摄像头设备. 根据 VID 和 PID 打开特定的设备. 使用 Directshow 设置摄像头相关参数(曝光度.分辨率.亮度.饱和度. ...
- python opencv打开摄像头,截图保存
python opencv打开摄像头,截图保存,学习结果如下: 使用python打开摄像头 import cv2 cap = cv2.VideoCapture(0) #设置摄像头 0是默认的摄像头 如 ...
- python opencv打开摄像头
opencv打开摄像头 import cv2 cap = cv2.VideoCapture(0) while True:ret, frame = cap.read()frame = cv2.flip( ...
- AI 质检学习报告——实践篇——第三步:python利用OpenCV打开摄像头截图后实现图片识字
AI 质检学习报告--实践篇--第一步:python利用OpenCV打开摄像头并截图 AI 质检学习报告--实践篇--第二步:实现图片识字 前边两篇实践已经分别实现了利用OpenCV打开摄像头并截图和 ...
- OpenCv打开摄像头失败问题处理cap_msmf.cpp (677) MFVideoFormat_RGB24(codec not found)
python opencv 打开摄像头,服务器挂掉重新启动问题 下面是代码 importing the required modules import cv2 import numpy as np c ...
- OpenCV打开摄像头,RGB转HSV空间
文章目录 前言 一.使用OpenCV打开摄像头 二.使用OpenCV进行图像预处理 前言 有段时间没有更新了,最近主要在忙一个项目,用到了OpenCV,故想把一些常用代码在这里备份一下,一起学习. 环 ...
- C++/Qt 使用OpenCV打开摄像头,旋转视频,计算fps
C++/Qt 使用OpenCV打开摄像头,旋转视频,计算fps 设置摄像头参数 不要随意修改,同时也不一样会修改成功,需要根据实际摄像头的参数选择设置 /*设置摄像头参数 不要随意修改capture. ...
最新文章
- 深入理解程序执行原理
- 把老赵的页面缓存片断改一下,呵呵
- python selenium加速_selenium2.0环境搭建(一)
- 最常使用Eclipse快捷键
- mysql 表格入门_MySQL-快速入门(1)基本数据库、表操作语句
- 用户故事与敏捷方法—估算用户故事
- vue json 编辑组件_内置为Vue组件的Visual JSON编辑器
- 树莓派3B的摄像头模块
- 国内遥感卫星资源综述
- java 实现QQ自动登录(带验证码)
- Unity3d美颜滤镜
- 电感电容串联起什么作用
- 计算机无法同步时间同步,在win10中,为什么电脑时间不能同步?
- 在寂静的夜中、独自沉沦_悲伤QQ个人签名
- 三菱FX3Uplc控制的三轴程序通用编程,程序带有注解,有原点回归,机器手加减速设置
- 利用opencv从USB摄像头获取图片 获得摄像头编号
- 4线触摸屏控制器ET2046介绍
- ArcGIS:按数值提取栅格区域
- 新电脑安装Ubuntu的血泪史:UEFI+GPT模式下在同一块固态硬盘上安装win10和Ubuntu16.04双系统
- 【Leetcode】1641. Count Sorted Vowel Strings