2012-03-18 57 views
1

我使用Region Growing從CT圖像中分割肝臟。我需要計算參考圖像和分割區域之間的RMS誤差。當我運行代碼時,我得到1.1146的輸出。當我重新排列輸入的順序時,我得到的值是2.2164。我不知道我有多準確。因爲,我不知道RMS誤差的範圍。第一個圖像是參考圖像'ref3.jpg',第二個圖像是分割圖像'm5.jpg'。請幫助我。我的代碼,我的分割是否準確?

%metrics.m 
I=imread('ref3.jpg'); 
J=imread('m5.jpg'); 
re2=rms_error(I,J) 

---- 
function [er]=rms_error(A1,A2) 
% A1, A2 : Matrices of same size MxN 
% er : Rms error 
% Author : Kamlesh Pawar 

if (size(A1)~= size(A2)) 
    display('Matrix dimension mismatch while calculating RMS value'); 
    return; 
end 

er = sum((A1(:)-A2(:)).^2); 

er=sqrt(er/size(A1(:),1)); 
end 

Reference image ref3.jpg Segmented image m5.jpg

回答

0

這裏使用RMS誤差不是很合適。 RMS誤差測量2幅圖像之間的偏差幅度,如果比較由灰度值組成的圖像,則誤差幅度很大。您的情況進行了分類比較:像素屬於肝臟(1)還是不屬於(0)?我的圖片在多大程度上同意?
第一種可能性是測量兩幅圖像之間的相關性。你用corr2執行此操作。
第二種可能性是科恩的kappa統計量或Kappa協議指數(KIA)。這項措施考慮到偶然的協議。你可以使用函數kappa.m,在Matlab中心的貢獻,你可以找到here

+0

我如何使用我的Kappa集分割圖像,以及兩名法官圖像集計算? – 2014-09-05 15:13:20

1

你真正需要的是所謂的「基於區域的評估分割性能的措施」。

我可以建議以下措施,這是非常可以接受的措施。 1.骰子係數 2.靈敏度 3.豪斯多夫距離 4.平均絕對距離

爲了計算的詳細信息請參考下圖。 其中C是圖像中的像素總數,| s |表示任何集合的基數。 A(s)和A(G)是分割結果和手動描繪的緊密邊界的區域。

我還可以建議你在自動分割結果上使用形態開放。希望這是有幫助的。

enter image description here