YUV视频PSNR计算

该程序用于计算YUV视频的峰值信噪比(PSNR),需要输入原始视频路径、评估视频路径、视频宽度、高度和比较的帧数。程序首先检查输入参数,然后读取两视频的Y分量并计算每帧的MSE和PSNR,最后输出平均PSNR值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <string>

using namespace std;

//参数输入格式:原始视频路径 需评估的视频路径 宽 高 需比较的帧数,共4个参数
void main(int argc, char*argv[])
{
	if(strcmp(argv[1],"-h")==0)
	{
		cout<<"参数输入格式:原始视频路径 需评估的视频路径 宽 高 需比较的帧数"<<endl;
		cout<<"Example: PSNR org.yuv dec.yuv 1024 768 9"<<endl;
		return ;
	}
	//psnr
	float psnr=0.0;
	//视频分辨率
	int width=atoi(argv[3]);
	int height=atoi(argv[4]);
	//帧数
	int num=atoi(argv[5]);
	
	//yuv视频
	FILE *org,*synth;
	if(width>0 && height>0 && num>0)
	{
		cout<<"------------视频相关信息-----------"<<endl;
		cout<<"视频分辨率:"<<width<<"x"<<height<<endl;
		cout<<"原始视频路径:"<<argv[1]<<endl;
		cout<<"需测量视频路径:"<<argv[2]<<endl;
		cout<<"计算帧数:"<<num<<endl;
		//打开视频文件
		if((org=fopen(argv[1],"rb"))==NULL)
		{
			cout<<"视频文件路径不对\n"<<endl;
			return ;
		}
		if((synth=fopen(argv[2],"rb"))==NU
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值