PSNR计算
来源:互联网 发布:网络直播底线失守照片 编辑:程序博客网 时间:2024/05/14 14:10
峰值信噪比(Peak Signal to Noise Ratio,PSNR)
1、是使用广泛的评价图像质量的标准之一;
2、应用于图像压缩,PSNR越大,表示图像的失真度就越小;
3、如果重构后的图像和原图像完全相同,则PSNR=Inf(无穷大),原图像为全白,重构图像为全黑,则PSNR=0;
4、通常对于有损压缩来说,PSNR值通常介于30~50dB之间;
5、对于使用相同的原图像和相同的压缩比的不同算法,PSNR越大,通常会说明该算法对图像的保真效果越好。
%彩色图像的PSNR计算
% demo for PSNR function
% Copyright (c) 2016,
% Sunlinju
% All Rights Reserved
%1.the two image have the same size;
%2.if psnr=1000,it means the two image are same.
clc;
close all;
clear all;
imgOriginal=double(imread('DemCap_240G_On.bmp'));%must be double ,or not sumSqrError always equals 255
imgProcessed=double(imread('DemCap_240G_Off.bmp'));
height = size(imgOriginal,1);
width = size(imgOriginal,2);
errorR=0;
errorG=0;
errorB=0;
sumSqrError=0;
mse=0;
psnr=0;
for i=1:height
for j=1:width
errorR=imgProcessed(i,j,1)-imgOriginal(i,j,1);
errorG=imgProcessed(i,j,2)-imgOriginal(i,j,2);
errorB=imgProcessed(i,j,3)-imgOriginal(i,j,3);
sumSqrError=sumSqrError+errorR*errorR+errorG*errorG+errorB*errorB;
end
end
if sumSqrError~=0
mse = sumSqrError/(height*width*3);
psnr=10*log10(255*255/mse)
else
psnr=1000 %means psnr=Inf
end
%波峰波谷检测
%% Peak Test1
% a = 20;
% x = -30:1:30;
% y = 1./sqrt(a^2+(a+x).^2)+1./sqrt(a^2+(a-x).^2);
% plot(x,y);
% grid on;
% yy = diff(y);
% yy(yy<0) = -1;
% yy(yy>0) = 1;
% yyy = diff(yy);
%
% mv = yyy(yyy~=0);
% id = find(yyy~=0);
% x0 = x(id);
% y0 = y(id);
% hold on;
% for k = 1:length(id);
% plot(x0(k),y0(k),’r.’);
% if mv(k)<0
% s = ‘峰:’;
% else
% s = ‘谷:’;
% end;
% s = [s num2str(x0(k)) ‘,’ num2str(y0(k))];
% text(x0(k),y0(k),s);
% end;
% hold off;
%% Peak test2
% data=[105.03 99.18 84.965 72.445 68.994 77.265 91.052 100.61 98.215 86.363 74.439 71.625 80.061 92.18 97.823 91.483 80.241 73.616 78.547 89.084 94.924 89.689 79.898 75.485 81.544 89.485 90.578 83.712 77.401 80.18 86.904 88.721 83.468 78.971 81.983 86.25 85.224 80.901 80.808 84.488]
% IndMin=find(diff(sign(diff(data)))>0)+1;
% IndMax=find(diff(sign(diff(data)))<0)+1;
% plot(1:length(data),data);
% hold on;grid on;
% plot(IndMin,data(IndMin),’r^’)
% plot(IndMax,data(IndMax),’k*’)
% legend(‘曲线’,’波谷点’,’波峰点’)
%% Peak test3
% data=[ 2 12 4 6 9 4 3 1 19 7];
% plot(1:length(data),data);
% hold on;grid on;
% pks=findpeaks(data) %pks= 12 9 19
%% 将Nx1宫格内数据归一化为其均值
image_in=double(imread(‘DemCap_016R_Off.bmp’));%读取图像
height = size(image_in,1);
width = size(image_in,2);
N=20;
Template=zeros(1,N);
for i=1:N:height-N
for j=1:width
TemplateAvg=mean(mean(image_in(i:i+N-1,j,1)));
image_in(i:i+N-1,j,1)=TemplateAvg;
end
end
imshow(uint8(image_in));
0 0
- psnr 计算
- PSNR计算
- PSNR的计算
- PSNR定义与计算
- PSNR的计算
- PSNR定义与计算
- YUV视频PSNR计算
- X264中PSNR的计算
- PSNR和SSIM计算工具
- 如何使用Opencv计算PSNR
- PSNR
- psnr
- PSNR
- PSNR
- JM86中数组quad和PSNR计算
- x264中的PSNR计算及其打印
- 对于彩色图像,PSNR的计算
- SSIM与PSNR的计算方式
- Jquery datatables 监听上一页/下一页 ,页码,刷新列宽度
- 分享一个自己写的比较牛的linux服务器自动监控程序
- MySQL使用连接查询的方式查询(连接3个表,并使用COUNT内置函数)
- 获取挂载设备的信息 gio
- 致23岁的我丨生活
- PSNR计算
- ffmpeg
- Java SE TreeSet(实现Comparable接口和Comparator匿名类)根据属性排序示例
- Log4J和springMVC
- CSDN-markdown编辑器语法——字体、字号与颜色
- 收藏的一些网页
- 分页JS
- cube上显示一张贴图
- 读取mongodb 显示日k 指定日期近500条 不能超过800条