[討論] 求影像的均方根誤差(RMSE)

看板MATLAB作者 (!)時間11年前 (2013/03/14 12:40), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
各位好~~ 最近求兩張影像的均方根誤差(RMSE) 因為求出來的值很怪異 所以想麻煩版上各位高手 幫忙檢視一下 是不是那裡出了問題 程式如下: -------------------------------------------------------------------- h1=imread('1.tif'); h2=imread('2.tif'); s=size(size(h1)); if s(2)==2 f1=h1; f2=h2; else f1=rgb2gray(h1); f2=rgb2gray(h2); end G1=double(f1); G2=double(f2); [m1,n1]=size(G1); [m2,n2]=size(G2); m=min(m1,m2); n=min(n1,n2); c=0; for i=1:m for j=1:n w=G1(i,j)-G2(i,j); c=c+w^2; end end f=sqrt(c/(m*n)); fprintf(1,'RMSE= %7.3f ', c); --------------------------------------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.238.186.167

03/14 23:25, , 1F
有些問題 1.RMSE 應該是比較影像處理前後的結構相似程度
03/14 23:25, 1F

03/14 23:25, , 2F
圖片大小應該本來就要相同了吧
03/14 23:25, 2F

03/14 23:26, , 3F
2.你的結果是f吧 怎麼會輸出c呢? = =
03/14 23:26, 3F

03/14 23:27, , 4F
應該是 " fprintf(1,'RMSE= %7.3f ', f); " 吧
03/14 23:27, 4F

03/15 15:07, , 5F
恩,樓上說的對,圖片(矩陣)要維度相同才能求均方根誤差吧
03/15 15:07, 5F

03/15 15:08, , 6F
維度相同也不用用迴圈,直接c = sqrt(sum(sum(G1-G2)));
03/15 15:08, 6F
文章代碼(AID): #1HGLIgD2 (MATLAB)