2011-02-07 3 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 방법을 줘 ??? wall

+0

디버거를 사용해 보셨습니까? –

답변

3

values 배열은 int의 배열이므로 부동 소수점 숫자가 아닌 정수 만 포함 할 수 있습니다. float 또는 double으로 변경하면 문제가 해결됩니까? 또한 색인 표현식 x*y + y이 올바르지 않습니다. x*h + y 또는 w*y + x이어야합니다.

관련 문제