opencv c++两个mp4文件怎么计算psnr
时间: 2023-06-25 15:01:57 浏览: 151
可以使用 OpenCV 的 `cv::PSNR` 函数计算两个视频文件之间的 PSNR 值。以下是一个示例代码:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main() {
VideoCapture cap1("video1.mp4");
VideoCapture cap2("video2.mp4");
if (!cap1.isOpened()) {
cout << "Error opening video1 file!" << endl;
return -1;
}
if (!cap2.isOpened()) {
cout << "Error opening video2 file!" << endl;
return -1;
}
double psnr = 0;
Mat frame1, frame2;
while (cap1.read(frame1) && cap2.read(frame2)) {
psnr += cv::PSNR(frame1, frame2);
}
psnr /= cap1.get(CV_CAP_PROP_FRAME_COUNT);
cout << "PSNR value: " << psnr << endl;
return 0;
}
```
在此代码中,我们打开了两个视频文件并使用 `cv::PSNR` 计算了每一帧之间的 PSNR 值,并对所有帧的 PSNR 值取平均值。最后输出了计算得到的 PSNR 值。
阅读全文