图像质量评价---未完待续

介绍

图像算法评估=定性(主观,观察)+定量(客观,特征值)+算法时间

  • 定性:主要是观察+分析
  • 定量:主要是各参数指标,又分为 参考质量+非参考质量
  • 参考质量:处理后的图和原图之间的相关质量度量,比如对比度提升,轮廓复原率,过饱和率,结构相似度,
    PSN, SSIM, RMSE and UIQ
  • 非参考质量:图像本身的一些指标,
    e, σ, r and CNR
分述
  • 全参考Full-reference FR
    • 基于图像像素统计基础PSNR
      • PSNR峰值信噪比
      • MSE均方误差
    • 基于信息论基础:
      • IFC,信息保真度准则Information Fidelity Criterion
      • VIF,视觉信息保真度Visual Information Fidelity
    • 基于结构信息基础
      • SSIM结构相似性
  • 半参考,部分参考,Reduced-Reference,RR
  • 无参考,也叫盲评价,blind quality,No-Reference,NR
    • 均值
    • 标准差
    • 平均梯度
  1. 平均梯度Gradient
    指图像的边界或影线两侧附近灰度有明显差异,即灰度变化率大,这种变化率的大小可用来表示图像清晰度。
    它反映了图像微小细节反差变化的速率,即图像多维方向上密度变化的速率,表征图像的相对清晰程度。
    一般而言,评价梯度越大,图像层次越多,也就越清晰。
img = imread('*.jpg');
img = double(img); 
[r,c,b] = size(img); 

dx = 1; 
dy = 1; 
for k = 1 : b 
   band = img(:,:,k); 
   [dzdx,dzdy] = gradient(band,dx,dy); 
   s = sqrt((dzdx .^ 2 + dzdy .^2) ./ 2); 
   g(k) = sum(sum(s)) / ((r - 1) * (c - 1)); 
end 
outval = mean(g) 
  1. 信息熵Entropy
    图像信息熵也是图像质量评价的常用指标,它从信息论的角度反映图像信息丰富程度。通常情况下,图像信息熵越大
    其信息量就越丰富,质量越好。
img = imread('*.jpg');
img = im2uint8(img); 
[r,c,b] = size(img); 
	
% 灰度图像
if b == 1  
	hspec = imhist(img); 
	idx = find(hspec == 0); 
	hspec(idx) = eps;    % 最小精度浮点数
	hspec = hspec ./ (r * c); 
	H = -(hspec .* log2(hspec)); 
	s = sum(H(:))
% 彩色图像
elseif b == 3 
	band1 = img(:,:,1); 
	band2 = img(:,:,2); 
	band3 = img(:,:,3); 
	outval = zeros(256,256,256); 
	for m = 1 : r 
		for n = 1 : c 
			i = band1(m,n) + 1; 
			j = band2(m,n) + 1; 
			k = band3(m,n) + 1; 
			outval(i,j,k) = outval(i,j,k) + 1; 
		end 
	end 
	 
	% 将outval归一化 
	outval = outval ./ (r*c); 
	h = -(outval .* log2(outval + eps)); 
	s = sum(sum(sum(h))) 
end 
  1. 视觉信息保真度
    VIF是Sheikh等结合自然图像统计模型、图像失真模型和人眼视觉系统模型提出的图像质量评价指标. 与峰值信噪比(Peak Signal-to-Noise Ratio, PSNR)、结构相似性(Structural Similarity, SSIM)等指标相比,VIF与主观视觉有更高的一致性。其值越大,表明图像质量越好。
  2. 峰值信噪比PSNR
  3. 均方误差MSE

你可能感兴趣的:(matlab)