c语言图像峰值信噪比,PSNRSSIM
全参考视频质量评价方法
常用的方法有两种
1.PSNR(Peak Signal to Noise Ratio)峰值信噪比:一种评价图像的客观标准。
2.SSIM(structural similarity index),结构相似性,是一种衡量两幅图像相似度的指标。SSIM使用的两张图像中,一张为未经压缩的无失真图像,另一张为失真后的图像。
PSNR_ C语言实现:
void PSNR_compute()
{
int width = //宽;
int height = //高;
uint8_t* p = (uint8_t*)malloc(width*height*3/2);
if (p == NULL) {
return;
}
size_t toread = width*height*3/2;
if (fread(p,1,toread,reference_file) != toread) {
free(p);
return;
}
const uint8_t* yptr = //y分量;
const uint8_t* cbptr = //cb分量;
const uint8_t* crptr = //cr分量;
int stride = Y的stride.
int cstride = U或者V的Stride;
double img_mse_y = MSE( yptr, stride, p, width, width, height);
double img_mse_cb = MSE(cbptr, cstride, p+width*height, width/2, width/2,height/2);
double img_mse_cr = MSE(crptr, cstride, p+width*height*5/4, width/2, width/2,height/2);
mse_frames++;
mse_y += img_mse_y;
mse_cb += img_mse_cb;
mse_cr += img_mse_cr;
printf("%5d %6f %6f %6f %6f\n",
framecnt,
PSNR(img_mse_y), PSNR(img_mse_cb), PSNR(img_mse_cr),
ssimSum);
free(p);
}
double MSE(const uint8_t* img, int imgStride,
const uint8_t* ref, int refStride,
int width, int height)
{
double sum=0.0;
const uint8_t* iPtr = img;
const uint8_t* rPtr = ref;
for (int y=0;y
uint32_t lineSum=0;
for (int x=0;x
int diff = iPtr[x] - rPtr[x];
lineSum += diff*diff;
}
sum += ((double)lineSum)/width;
iPtr += imgStride;
rPtr += refStride;
}
return sum/height;
}
double PSNR(double mse)
{
if (mse==0) { return 99.99999; }
return 10*log10(255.0*255.0/mse);
}
void main () {
while () {
//计算所有。
PSNR_compute()
}
//最终结果
printf("#total %6f %6f %6f %6f\n",
PSNR(mse_y /mse_frames),
PSNR(mse_cb/mse_frames),
PSNR(mse_cr/mse_frames),
ssim_y/ssim_frames);
}
c语言图像峰值信噪比,PSNRSSIM相关推荐
- Python 不同分辨率图像峰值信噪比[PSNR]
PNNR:全称为"Peak Signal-to-Noise Ratio",中文直译为峰值信噪比 前言 一.定义 二.Python代码 1.自定义 2.Tensorflow 总结 前 ...
- (python)计算图像峰值信噪比-PSNR、结构相似度-SSIM
计算峰值信噪比-PSNR和结构相似度-SSIM(python实现) 说明: PSNR(Peak Signal to Noise Ratio),取值范围为:[0,100],PSNR值越大两张图片越相似, ...
- Python计算PSNR(图像峰值信噪比)
图像信噪比是用于评估两张图像相似度的指标. PSNR=10⋅log10(MAXI2MSE)=20⋅log10(MAXIMSE)P S N R=10 \cdot \log 10\left(\frac ...
- 图像的评价指标之PSNR——峰值信噪比
图像的评价指标之PSNR--峰值信噪比 文章目录: 以及Python的实现 参考: https://blog.csdn.net/szfhy/article/details/49615833 https ...
- 【深度学习】图像去雾,去噪里常用的相似评价指标:PSNR(峰值信噪比) SSIM(结构相似度)MSE(均方误差)
文章目录 一.PSNR(峰值信噪比) 二.SSIM(结构相似度) 三.MSE(均方误差) 小插曲:plt.savefig()保存的图片为空白 一.PSNR(峰值信噪比) 公式直接抄我师哥论文上的,n通 ...
- 图像的峰值信噪比(peak signal to noise ratio, PSNR)
峰值信噪比(PSNR)是一个表示信号最大可能功率和影响它的表示精度的破坏性噪声功率的比值的工程术语.由于许多信号都有非常宽的动态范围,峰值信噪比常用对数分贝单位来表示. 在图像处理中,要对图像进行客观 ...
- matlab snr mse,MATLAB 均方根误差MSE、两图像的信噪比SNR、峰值信噪比PSNR、结构相似性SSIM...
今天的作业是求两幅图像的MSE.SNR.PSNR.SSIM.代码如下: clc; close all; X = imread('q1.tif');% 读取图像 Y=imread('q2.tif'); ...
- python求不同分辨率图像的峰值信噪比,一文搞懂
可以使用 Python 的 NumPy 和 OpenCV 库来实现这个任务.提前准备一张图片作为素材. 文章目录 什么是峰值信噪比 PSNR 峰值信噪比补充说明 使用 OpenCV 库来实现这个任务 ...
- python求不同分辨率图像的峰值信噪比
要计算不同分辨率图像的峰值信噪比(PSNR),可以使用Python中的OpenCV库. 下面是一个简单的示例代码,演示如何使用OpenCV计算两张图像之间的PSNR值: import cv2 # 读取 ...
- 图像的平均梯度AG,信息熵IE,峰值信噪比PSNR,平均值,SSIM(matlab)
1,平均梯度 I10=imread('F:\picture_AIEM\10_aiem.jpg'); x2=I10; x2=x2(:,:,1); x2=double(x2); [m,n]=size(x2 ...
最新文章
- 生态伙伴 | 小鹅通企学院入驻飞书,助力企业一键打造自己的企业大学
- xCode中工程相关的一些处理:一个工程包含多个Target的用途和使用方法【转】...
- 使用TESSERACT来识别字符
- python--二进制的用法
- 我的世界java版袭击图片_我的世界:你mc“中毒”有多深?这8张图都能看懂,绝对是真爱粉...
- 阿里云服务器重启出现An error occurred 如何处理
- 飞畅科技-工业交换机电源故障初探
- Celery实现定时任务crontab
- Fundebug前端JavaScript插件更新至1.6.0,新增test()方法用于测试 1
- java如何进行传感器数据传输_使用Wio Terminal通过HTTP请求获取并展示传感器实时数据...
- 一个软件完整的开发流程,不会程序也能自己制作手机App
- 多个mysql共存_双mysql共存(MySQL8.0与MySQL5.7)
- emv中的 部分匹配_EMV指标策略
- ubuntu20.04 部署原生态openstack Victoria版的详细步骤
- 北斗导航公共服务平台首次落户四川
- 3mdax插件开发之环境配置(3dmax2018SDK +VS2017 +win10)详细步骤
- 随手记——Moment.js
- Java Socket正确读取数据姿势
- optimizer_features_enable
- 用产品思维设计API(三)——版本控制,没有你想的这么简单