matlab代码实现图像的:均方根误差MSE、峰值信噪比PSNR、平均绝对误差MAE、结构相似性SSIM

实现matlab编程实现关于图像处理的一些简单的操作,加深对图像处理后图像性能评估的理解: 

  1. clc; close all;
  2. X = imread('1.jpg');
  3. X=rgb2gray(X);
  4. Y=X;
  5. Y = imnoise(Y, 'salt & pepper');%添加椒盐噪声,也可以改成其他噪声
  6. A=fspecial('average',3); %生成系统预定义的3X3滤波器  
  7. Z=filter2(A,Y)/255; %均值滤波
  8.  
  9. %Z=medfilt2(Y,[3,3]);%中值滤波
  10. %A=fspecial('gaussian'); %高斯滤波卷积核
  11. %Z=filter2(A,Y)/255;   %用生成的高斯序列进行滤波
  12.   
  13. figure; 
  14. subplot(1, 3, 1); imshow(X); title('原图像');
  15. subplot(1, 3, 2); imshow(Y); title('加噪声图像');
  16. subplot(1, 3, 3); imshow(Z); title('滤波后图像');
  17.  
  18. X = double(X);  
  19. Z = double(Z);  
  20.  
  21. D = Z-X;
  22. MSE = sum(D(:).*D(:))/numel(Z);%均方根误差MSE
  23. PSNR = 10*log10(255^2/MSE);%峰值信噪比
  24. MAE=mean(mean(abs(D)));%平均绝对误差
  25.  
  26. w = fspecial('gaussian', 11, 1.5);  %window 加窗  
  27. K(1) = 0.01;                      
  28. K(2) = 0.03;                      
  29. L = 255;       
  30. Z = double(Z);  
  31. X = double(X);  
  32. C1 = (K(1)*L)^2;  
  33. C2 = (K(2)*L)^2;  
  34. w = w/sum(sum(w));  
  35. ua   = filter2(w, Z, 'valid');%对窗口内并没有进行平均处理,而是与高斯卷积,  
  36. ub   = filter2(w, X, 'valid'); % 类似加权平均  
  37. ua_sq = ua.*ua;  
  38. ub_sq = ub.*ub;  
  39. ua_ub = ua.*ub;  
  40. siga_sq = filter2(w, Z.*Z, 'valid') - ua_sq;  
  41. sigb_sq = filter2(w, X.*X, 'valid') - ub_sq;  
  42. sigab = filter2(w, Z.*X, 'valid') - ua_ub;  
  43. ssim_map = ((2*ua_ub + C1).*(2*sigab + C2))./((ua_sq + ub_sq + C1).*(siga_sq + sigb_sq + C2));  
  44. MSSIM = mean2(ssim_map);  
  45.  
  46. display(MSE);%均方根误差MSE
  47. display(PSNR);%峰值信噪比
  48. display(MAE);%平均绝对误差
  49. display(MSSIM);%结构相似性SSIM

另外,常用于图像质量评价方法有:信噪比、峰值信噪比和结构相似性。

均方根误差

均方根误差在图像的质量评价中相当于一个中间的评价指标,很多后续的评价指标都是沿用均方根误差。均方根误差主要是评价已知图像和退化图像之间误差大小。其实这个指标跟最小二乘的原理多少有些类似,也跟统计知识的误差统计求标准差和方差是一样的。

其基本公式为:

RMSE = sqrt(1/mn * E(I - F))

其中,E(I - F) 是退化图像与真实图像之间每个像素的差值的平方和

峰值信噪比

一般峰值信噪比在图像的评价中使用的较多,公式为:

其中,MN是图形的大小,M*Nf 是真实图像,f∧是退化图像

结构相似度

结构相似度(SSIM)是来源于结构相似理论,用来测量两幅图像的结构相似性大小,其最大值为1。尤其反映了图像的轮廓,细节等的相似度。结构相似度可以表示为:

其中,l()表示亮度变化,c()表示差异变化,s()是结构变化。

其中,表示两幅图像,uf 和 ug 表示图像的均值,σf和σg 表示它们的方差,σfg表示它们的协方差。C1,C2,C3为比较小的常数,用来确保分母不等于零。

你可能感兴趣的:(python编程,深度学习,图像处理,图像处理,深度学习)