C++opencv打开并读取视频文件的宽和高
时间: 2024-02-05 19:11:40 浏览: 32
要打开并读取视频文件的宽和高,可以使用OpenCV库中的VideoCapture类。下面是一个简单的示例代码:
```c++
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
VideoCapture cap("example.mp4");
if(!cap.isOpened()) {
printf("Error opening video file.\n");
return -1;
}
int width = cap.get(CAP_PROP_FRAME_WIDTH);
int height = cap.get(CAP_PROP_FRAME_HEIGHT);
printf("Video width: %d\n", width);
printf("Video height: %d\n", height);
return 0;
}
```
在这个示例中,我们首先创建了一个VideoCapture对象来打开视频文件并检查其是否成功打开。然后,我们使用CAP_PROP_FRAME_WIDTH和CAP_PROP_FRAME_HEIGHT属性来获取视频的宽度和高度。最后,我们将这些值输出到控制台。
相关问题
C++opencv打开并读取视频文件的函数
在使用OpenCV读取视频文件时,可以使用cv::VideoCapture类和它的open()和read()方法。
以下是一个示例代码,可以打开视频文件并逐帧读取:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
// 打开视频文件
VideoCapture cap("test_video.mp4");
// 检查是否成功打开视频文件
if (!cap.isOpened()) {
cerr << "Error: Failed to open video file." << endl;
return -1;
}
// 获取视频的帧数和帧率
int frame_count = cap.get(CAP_PROP_FRAME_COUNT);
double fps = cap.get(CAP_PROP_FPS);
// 输出视频信息
cout << "Total frames: " << frame_count << endl;
cout << "Frame rate: " << fps << endl;
// 读取每一帧并显示
Mat frame;
while (cap.read(frame)) {
imshow("Video", frame);
waitKey(1);
}
// 关闭视频文件
cap.release();
return 0;
}
```
在上面的代码中,我们使用cap.get()方法获取视频的帧数和帧率,并使用cap.read()方法逐帧读取视频。读取的每一帧都被存储在Mat对象中,并使用imshow()方法显示。最后,我们使用cap.release()方法释放VideoCapture对象。
用c++opencv打开摄像头,并读取其画面
#include <opencv2/opencv.hpp>
int main()
{
cv::VideoCapture cap(0);
if(!cap.isOpened()) // check if we succeeded
return -1;
cv::namedWindow("My Camera Feed", cv::WINDOW_NORMAL);
while(true)
{
cv::Mat frame;
cap >> frame; // get a new frame from camera
cv::imshow("My Camera Feed", frame);
if(cv::waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}