下面的MATLAB程序计算两幅图像的加权峰值信噪比。相比常用的PSNR而言,考虑到HVS(human visual sytem)的影响。
function f = WPSNR(A,B,varargin)
% This function computes WPSNR (weighted peak signal-to-noise ratio) between
% two images. The answer is in decibels (dB).
%
% Using contrast sensitivity function (CSF) to weight spatial frequency
% of error image.
%
% Using: WPSNR(A,B)
%
% Written by Ruizhen Liu, http://www.assuredigit.com
if A == B
error('Images are identical: PSNR has infinite value')
end
max2_A = max(max(A));
max2_B = max(max(B));
min2_A = min(min(A));
min2_B = min(min(B));
if max2_A > 1 | max2_B > 1 | min2_A < 0 | min2_B < 0
error('input matrices must have values in the interval [0,1]')
end
e = A - B;
if nargin<3
fc = csf; % filter coefficients of CSF
else
fc = varargin{1};
end
ew = filter2(fc, e); % filtering error with CSF
decibels = 20*log10(1/(sqrt(mean(mean(ew.^2)))));
% disp(sprintf('WPSNR = +%5.2f dB',decibels))
f=decibels;
%=============
function fc = csf()
%=============
% Program to compute CSF
% Compute contrast sensitivity function of HVS
%
% Output: fc --- filter coefficients of CSF
%
% Reference:
% Makoto Miyahara
% "Objective Picture Quality Scale (PQS) for Image Coding"
% IEEE Trans. on Comm., Vol 46, No.9, 1998.
%
% Written by Ruizhen Liu, http://www.assuredigit.com
% compute frequency response matrix
Fmat = csfmat;
% Plot frequency response
%mesh(Fmat); pause
% compute 2-D filter coefficient using FSAMP2
fc = fsamp2(Fmat);
%mesh(fc)
%========================
function Sa = csffun(u,v)
%========================
% Contrast Sensitivity Function in spatial frequency
% This file compute the spatial frequency weighting of errors
%
% Reference:
% Makoto Miyahara
% "Objective Picture Quality Scale (PQS) for Image Coding"
% IEEE Trans. on Comm., Vol 46, No.9, 1998.
%
% Input : u --- horizontal spatial frequencies
% v --- vertical spatial frequencies
%
% Output: frequency response
%
% Written by Ruizhen Liu, http://www.assuredigit.com
% Compute Sa -- spatial frequency response
%syms S w sigma f u v
sigma = 2;
f = sqrt(u.*u+v.*v);
w = 2*pi*f/60;
Sw = 1.5*exp(-sigma^2*w^2/2)-exp(-2*sigma^2*w^2/2);
% Modification in High frequency
sita = atan(v./(u+eps));
bita = 8;
f0 = 11.13;
w0 = 2*pi*f0/60;
Ow = ( 1 + exp(bita*(w-w0)) * (cos(2*sita))^4) / (1+exp(bita*(w-w0)));
% Compute final response
Sa = Sw * Ow;
%===================
function Fmat = csfmat()
%===================
% Compute CSF frequency response matrix
% Calling function csf.m
% frequency range
% the rang of frequency seems to be:
% w = pi = (2*pi*f)/60
% f = 60*w / (2*pi), about 21.2
%
min_f = -20;
max_f = 20;
step_f = 1;
u = min_f:step_f:max_f;
v = min_f:step_f:max_f;
n = length(u);
Z = zeros(n);
for i=1:n
for j=1:n
Z(i,j)=csffun(u(i),v(j)); % calling function csffun
end
end
Fmat = Z;
<!-- Signature -->
分享到:
相关推荐
在压缩包内的“wpsnr.m”文件很可能是用MATLAB编写的一个函数或脚本,实现了上述的HVS图像质量评估或WPSNR计算。MATLAB是一种广泛用于数值计算、图像处理和科学建模的编程环境,因此这个.m文件很适合进行这些复杂的...
本文提出了一种基于特征相似性和多尺度几何分析的客观图像质量评价方法,该方法从人类视觉特性的不同角度出发,对图像的质量进行客观评价。
传统的图像质量评估方法通常依赖于人类视觉系统(Human Visual System, HVS)的特性,但由于HVS的复杂性,这些方法往往不够准确或可靠。近年来,结构相似度指数测量(Structural SIMilarity, SSIM)作为一种新的图像...
1. 对图像进行非重叠的分块处理,采用大小相等的滑动窗口对图像进行划分。 2. 在每个分块内计算亮度影响因子、纹理细节影响因子以及空间位置影响因子。 3. 对这些影响因子进行归一化处理,得到每个分块的权值。 4. ...
在当前人眼视觉系统(HVS)特性研究的基础上提出基于梯度及HVS特性的离焦模糊图像质量评价模型...该方法与SSIM(图像结构相似度)评价模型相比,具有计算简单的特点,对离焦模糊图像的评价结果能更好地反映人眼视觉感受。
总结起来,这个项目提供了基于HVS的DWT数字水印技术实现,利用MATLAB的计算能力和可视化功能,结合人类视觉特性,实现了高效且隐蔽的水印嵌入。对于研究数字水印技术、图像处理或信息安全的学者和开发者来说,这是一...
"HVS与图像质量评价方法PPT教案.pptx" 该PPT教案主要讲述了人类视觉系统(HVS)和图像质量评价方法。下面是该PPT教案的详细知识点总结: 第一页:HVS与图像质量评价方法 * 视网膜(photoreceptors):圆柱体细胞...
而客观评价则通过数学模型来模拟人类视觉系统(HVS)对图像质量的感知,具有标准化和可重复性的优点。 1. **峰值信噪比(PSNR)**:PSNR是最常见的客观评价指标之一,衡量的是图像的平均信号与噪声的比值。通常以dB...
提出了一种红外图像细节增强算法,首先检测原始图像中的极值点并进行替换,去除散粒噪声,再用消噪后图像与低通滤波图像相减得到细节信息,同时还通过数学形态学方法得到图像梯度信息,结合原灰度值计算出灰度统计...
【HVS小波水印算法】是一种数字水印技术,主要应用于图像保护和版权认证。在数字水印领域,水印通常是指嵌入到原始数据(如图像、音频或视频)中的不可见或几乎不可察觉的信息,用于证明所有权或者验证数据的完整性...
文章的核心贡献在于提出了一种新的图像相似度度量方法,该方法在保持图像结构相似性评估的同时,通过KL变换进一步提取图像的边缘和纹理特征,提高了图像质量评估的准确性。文章详细介绍了基于KL变换的相似度度量模型...