2015-04-02 18 views
0

我使用這個代碼:對於數組,我得到值爲0和255之間的任何內容爲matlab?

for m_cof=1:3 
    for n_cof=1:3 
     Fixed_term=(((2*(m_cof-1)+1)*(2*(n_cof-1)+1))/(g(1)*g(2))); 
     c(m_cof,n_cof)=0; 
     for u=1:g(1) 
      y=((2*u)/g(1)); 
      uof=Polynomial1(y,m_cof); 
      for v=1:g(2) 
       z=((2*v)/g(2)); 
       vof=Polynomial1(z,n_cof); 
       f=f_template(u,v); 
       iop=(Fixed_term*f_template(u,v)*uof*vof) 
       c(m_cof,n_cof)=iop+c(m_cof,n_cof) 
      end 
     end 
    end 
end` 

其中f_template是RGB爲灰度圖像陣列,c內容都只是0和255之間,沒有什麼可以請你幫

+1

是您的圖像類型'uint8'(無符號的8位整數)?如果是這樣,整數除法將結果截斷爲最接近的整數,並且在最小/最大值「0」和「255」處飽和。在進行任何計算之前,嘗試將'Im = double(Im)'轉換爲double。 – eigenchris 2015-04-02 14:51:51

+0

感謝它解決了:) – Ankit 2015-04-03 08:13:16

回答

0

由於圖片所屬的數據類型,您看起來像飽受折磨。要解決這個問題,請將您的圖片投射到double,然後再次嘗試您的代碼。

簡單地說,嵌套循環之前做到這一點,在你的代碼的開頭:

f_template = double(f_template); 
+1

感謝它解決了:) – Ankit 2015-04-03 08:13:33

+0

@Ankit - 很高興工作!祝你好運! – rayryeng 2015-04-03 08:14:42

相關問題