2011-02-07 8 views
0

それは、唯一のこのような構成の戻り値を0から1にする方法はありますか?

 int maxVal; 
     int minVal; 
     int wh = w*h; 
     int values[1000]; 
     for(x=0;x<w;x++){ 
      for(y=0;y<h;y++){ 
       double RealColor = cvGetReal2D(source, y, x); 
       values[x*y + y] = RealColor; 
      } 
     } 
     minVal = *min_element(values,(values+wh)); 
     maxVal = *max_element(values,(values+wh)); 
     float dif = maxVal - minVal; 
     float fminVal; 
     fminVal = minVal; 
     for(x=0;x<w;x++){ 
      for(y=0;y<h;y++){ 
       float rc = cvGetReal2D(source, y, x); 
       float normRealColor =(rc - fminVal + 1)/dif; 
       file << normRealColor << " "; 
      } 
      file << endl; 
     }file << endl; 

どのようにそれだけではなく、1または0が、0を返すように作るため1S 0.1 0.001 ... 1どのように私を与えます? 壁は

+0

デバッガを試しましたか? –

答えて

3

valuesアレイはintの配列であるので、整数のみではなく、浮動小数点数を含むことができます。 floatまたはdoubleに変更すると問題が解決しますか?また、インデックス式x*y + yは正しくありません。x*h + yまたはw*y + xである必要があります。

関連する問題