圖像增強評價指標


對於一種圖像處理方法,怎么樣來判斷該算法效果的好壞呢?除了人眼本身的觀察,還可以用某種指標來量化評判,本文將總結一下圖像質量評判的方法及實現。

峰值信噪比

峰值信噪比(PSNR)是一個用來評估圖像的保真性的客觀標准,經常用作圖像壓縮等信號重建質量的評價,非常簡單的方式是通過均方差(MSE)來定義:

\[MSE=\frac{\sum_{i=1}^{H}\sum_{j=1}^{W}{\left ( X\left ( i,j \right ) - Y\left ( i,j \right ) \right )}^2}{H * W} \]

\[PSNR=10\log_{10}{\frac{(2^n-1)^2}{MSE}} \]

其中,PSNR值越大,就代表失真越少,圖像壓縮典型的峰值信噪比在30-40dB,小於30dB的圖像是無法忍受的錯誤圖像。


function [PSNR, MSE] = psnr(X, Y)
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% 計算峰值信噪比PSNR
% 將RGB轉成YCbCr格式進行計算
% 如果直接計算會比轉后計算值要小2dB左右(當然是個別測試)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%
 if size(X,3)~=1   %判斷圖像時不是彩色圖,如果是,結果為3,否則為1
   org=rgb2ycbcr(X);
   test=rgb2ycbcr(Y);
   Y1=org(:,:,1);
   Y2=test(:,:,1);
   Y1=double(Y1);  %計算平方時候需要轉成double類型,否則uchar類型會丟失數據
   Y2=double(Y2);
 else              %灰度圖像,不用轉換
     Y1=double(X);
     Y2=double(Y);
 end
 
if nargin<2    
   D = Y1;
else
  if any(size(Y1)~=size(Y2))
    error('The input size is not equal to each other!');
  end
 D = Y1 - Y2; 
end
MSE = sum(D(:).*D(:)) / numel(Y1); 
PSNR = 10*log10(255^2 / MSE);

NC

NC對兩幅圖進行相似度的衡量,除了用眼觀看的方法之外,我們可以食用更加精確的使用數據來客觀評估歸一化,歸一化的相關系數(NC)提供了度量工具,,可以用來衡量圖像的魯棒性。

\[NC=\frac{\sum_{x=1}^{M} \sum_{y=1}^{N}W(x,y)W(x,y)^-))}{\sqrt{\sum_{x=1}^{M} \sum_{y=1}^{N} W(x,y)^2)} \sqrt{\sum_{x=1}^{M} \sum_{x=1}^{N}W(x,y)^2)}} \]

其中W(x,y)$W(x,y)^-$是代表的兩張圖,M和N代表的是圖像分標率,NC取值一般在[0,1],越接近1表示魯棒性越好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM