兩種常用的全參考影象質量評價指標——峰值信噪比(PSNR)和結構相似性(SSIM)
原文:https://blog.csdn.net/zjyruobing/article/details/49908979
1.PSNR(Peak Signal to Noise Ratio)峰值信噪比:
MSE表示當前影象X和參考影象Y的均方誤差(Mean Square Error),H、W分別為影象的高度和寬度;
PSNR的單位是dB,數值越大表示失真越小。n為每畫素的位元數,一般的灰度影象取8,即畫素灰階數為256.
PSNR是最普遍和使用最為廣泛的一種影象客觀評價指標,然而它是基於對應畫素點間的誤差,即基於誤差敏感的影象質量評價。由於並未考慮到人眼的視覺特性(人眼對空間頻率較低的對比差異敏感度較高,人眼對亮度對比差異的敏感度較色度高,人眼對一個區域的感知結果會受到其周圍鄰近區域的影響等),因而經常出現評價結果與人的主觀感覺不一致的情況。
Matlab的函式程式碼實現如下:
function [ out ] = psnr( X,Y )
[ m,n ] = size( X );
mse = sum(( double(X(:)) - double(Y(:)) ).^2);
mse = mse/(m*n);
out = 10*log10((255*255)/mse);
end
2.SSIM(Structural Similarity)結構相似性:
μX、μY分別表示影象X和Y的均值,σX、σY分別表示影象X和Y的方差,σXY表示影象X和Y的協方差,即 :
SSIM分別從亮度、對比度、結構三方面度量影象相似性。
C1、C2、C3為常數,為了避免分母為0的情況,通常取C1=(K1∗L)2, C2=(K2∗L)2, C3=C22, 一般地K1=0.01, K2=0.03, L=255 則
SSIM取值範圍[0,1],值越大,表示影象失真越小.
SSIM的特殊形式如下:
3、MSSIM(Mean Structural Similarity )平均結構相似性
在實際應用中,可以利用滑動窗將影象分塊,令分塊總數為N,考慮到視窗形狀對分塊的影響,採用加權計算每一視窗的均值、方差以及協方差,權值wij滿足∑i∑jwij=1,通常採用高斯核,然後計算對應塊的結構相似度SSIM,最後將平均值作為兩影象的結構相似性度量,即平均結構相似性MSSIM:
Matlab的函式實現程式碼如下:
function [mssim, ssim_map] = ssim_index(img1, img2, K, window, L) C1 = (K(1)*L)^2; C2 = (K(2)*L)^2; window = window/sum(sum(window)); img1 = double(img1); img2 = double(img2); mu1 = filter2(window, img1, 'valid'); mu2 = filter2(window, img2, 'valid'); mu1_sq = mu1.*mu1; mu2_sq = mu2.*mu2; mu1_mu2 = mu1.*mu2; sigma1_sq = filter2(window, img1.*img1, 'valid') - mu1_sq; sigma2_sq = filter2(window, img2.*img2, 'valid') - mu2_sq; sigma12 = filter2(window, img1.*img2, 'valid') - mu1_mu2; if (C1 > 0 & C2 > 0) ssim_map = ((2*mu1_mu2 + C1).*(2*sigma12 + C2))./((mu1_sq + mu2_sq + C1).*(sigma1_sq + sigma2_sq + C2)); else numerator1 = 2*mu1_mu2 + C1; numerator2 = 2*sigma12 + C2; denominator1 = mu1_sq + mu2_sq + C1; denominator2 = sigma1_sq + sigma2_sq + C2; ssim_map = ones(size(mu1)); index = (denominator1.*denominator2 > 0); ssim_map(index) = (numerator1(index).*numerator2(index))./(denominator1(index).*denominator2(index)); index = (denominator1 ~= 0) & (denominator2 == 0); ssim_map(index) = numerator1(index)./denominator1(index); end mssim = mean2(ssim_map); return
相關推薦
兩種常用的全參考影象質量評價指標——峰值信噪比(PSNR)和結構相似性(SSIM)
原文:https://blog.csdn.net/zjyruobing/article/details/49908979 1.PSNR(Peak Signal to Noise Ratio)峰值信噪比: MSE表示當前影象X和參考影象Y的均方誤差(Mean Squar
無參考影象質量評價之影象質量評價方法(一)[均方根誤差、峰值信噪比、結構相似度]
影象質量評價在計算機視覺,人工智慧,高清視訊傳輸上面有很廣泛的應用。目前,影象質量評價主要分為三個方向,有參考影象的質量評價,半參考的影象質量評價,以及無參考的影象質量評價。但是,個人
全參考視訊質量評價方法(PSNR,SSIM)以及相關資料庫
最常用的全參考視訊質量評價方法有以下2種:PSNR(峰值信噪比):用得最多,但是其值不能很好地反映人眼主觀感受。一般取值範圍:20-40.值越大,視訊質量越好。SSIM(結構相似性):計算稍複雜,其值可以較好地反映人眼主觀感受。一般取值範圍:0-1.值越大,視訊質量越好。PS
無參考影象質量評價之基於多特徵的增強影象質量評價
參考文獻 本節主要參考的文獻是: Leida, Shen, Jinjian, et al. No-Reference Quality Assessment of Enhanced Images[J]
影象質量評價指標之 PSNR 和 SSIM
1. PSNR (Peak Signal-to-Noise Ratio) 峰值信噪比 給定一個大小為 \(m×n\) 的乾淨影象 \(I\) 和噪聲影象 \(K\),均方誤差 \((MSE)\) 定義為: \[MSE = \frac{1}{mn}\sum_{i=0}^{m-1}\sum_{j=0}^{n-
經典影象質量評價指標原理
有參評價指標 (1)均方誤差(MSE)和峰值信噪比(PSNR) 均方誤差(Mean Squared Error, MSE)通過取兩幅影象的均方差來計算“平均誤差”,是一種較方便簡單的影象質量評價方法,可以評價資料間的差異程度。 峰值信噪比(Peak Signal to Noise Rat
影象的:均方根誤差MSE、峰值信噪比PSNR、平均絕對誤差MAE、結構相似性SSIM
clc; close all; X = imread('1.jpg'); X=rgb2gray(X); Y=X; Y = imnoise(Y, 'salt & pepper');%新增椒鹽噪聲,也可以改成其他噪聲 A=fspecial('average',3); %
matlab 計算影象的峰值信噪比PSNR以及均方根誤差MSE
簡介PSNR 是最普遍,最廣泛使用的評鑑畫質的客觀量測法,不過許多實驗結果都顯示,PSNR 的分數無法和人眼看到的視覺品質完全一致,有可能 PSNR 較高者看起來反而比PSNR 較低者差。 這是因為人眼的視覺對於誤差的敏感度並不是絕對的,其感知結果會受到許多因素的影響而產生
影象的峰值信噪比(PSNR)
double getPSNR(const Mat& I1, const Mat& I2) { Mat s1; absdiff(I1, I2, s1); // |I1 - I2| s1.convertTo(s1, CV_3
判斷Java對象死亡的兩種常用算法
fin 引用 分享 mage 表達 nat obj 不可用 若是 當對象不餒引用的時候,這個對象就是死亡的,等待GC進行回收。 1.引用計數法 概念: 給對象中添加一個引用計數器,每當有一個地方引用它時,計數器值就增加1;當應用失效時,計數器值就減1;任何時刻計數器為0是對
js實現菲波那切數列的兩種常用方法
res alert 定義 面向 div ret 如果 clas cti 菲波那切數列即:1 1 2 3 5 8......,後面的數字是前面兩個數字的和,並且第一個,第二個數字都是1,用js實現 的兩種方法,一種通過常用的遞歸調用,第二種不通過遞歸,而是通過強大的閉包實現。
Struts2中validate數據校驗的兩種常用方法
red 有一種 資源文件 業務 相同 dna erp wrong 顯示 本文主要介紹Struts2中validate數據校驗的兩種方法及Struts2常用校驗器. 1.Action中的validate()方法 Struts2提供了一個Validateable接口,這個接口
JAVASCRIPT創建類的兩種常用方式
JAVASCRIPT創建類的兩種常用方式構造函數方式:a. 代碼: var myClass = function(name){ this.name = name } myClass.prototype.sex = "male" var myClass = new myClass(‘lee‘) myClass.
前臺獲取json未定義問題之兩種常用解決辦法
執行 || 框架 sele {} 幫助 很大的 朋友 gin 來自博客園的一位朋友解答: 為什麽要 eval這裏要添加 “("("+data+")");//”呢? 原因在於:eval本身的問題。 由於json是以”{}”的方式來開始以及結束的,在JS中,它會被 當成一個語句
依賴注入的兩種常用方式(構造器和Setter)與注入內容(裝配資料)——Spring IOC/DI(三)
本章主要講解一下Spring中依賴注入方式,接上一章依賴注入原理和方式: https://blog.csdn.net/qq_34598667/article/details/83315669 依賴注入常用的兩種方式以及注入的內容(裝配資料) Spring通過DI(依賴注入)實現I
java多執行緒、FutureTask的用法及兩種常用的使用場景
Java多執行緒實現的方式有四種 1.繼承Thread類,重寫run方法 2.實現Runnable介面,重寫run方法,實現Runnable介面的實現類的例項物件作為Thread建構函式的target 3.通過Callable和FutureTask建立執行緒 4.通過執行緒池
FutureTask的用法及兩種常用的使用場景 + FutureTask的方法執行示意圖
from: https://blog.csdn.net/linchunquan/article/details/22382487 FutureTask可用於非同步獲取執行結果或取消執行任務的場景。通過傳入Runnable或者Callable的任務給Fut
java中集合刪除元素的兩種常用方式及新手易錯
java中集合刪除元素的兩種常用方式及新手易錯: 建立集合: [java] view plain copy ArrayList<String> aLi
TreeSet排序的兩種常用構造
A無參構造,按照預設自然排序,或者類實現Comparable中重寫compareTo B帶參構造Comparator<? super T> Comparator, 通過匿名內部內進行比較器排序。 A :無參構造/自然排序—元素具備可比較性 讓元素所屬的類實現自然排序介面Com
影象質量評價相關收錄
2018-12-05 轉自 :https://www.cnblogs.com/ranjiewen/p/6390846.html#undefined ssim的計算裡面有高斯模糊 為了快速計算,先對每個小塊進行計算,然後計算所有塊的平均值。 可以參考原始碼實現,而且程式碼實現有近似的在裡面!m