C++ 如何使这种构造返回值从0到1?
它只给我1秒C++ 如何使这种构造返回值从0到1?,c++,floating-point,int,double,C++,Floating Point,Int,Double,它只给我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]
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;
intmaxval;
因特明瓦尔;
int-wh=w*h;
整数值[1000];
对于(x=0;x值数组是int
的数组,因此它只能包含整数而不是浮点数。将其更改为float
或double
是否解决了问题?此外,您的索引表达式x*y+y
不正确:它应该是x*h+y
或w*y+x
values
数组是一个int
数组,因此它只能包含整数而不是浮点数。将其更改为float
或double
是否解决了问题?另外,您的索引表达式x*y+y
不正确:它应该是x*h+y
或w*y+x
你试过使用调试器吗?你试过使用调试器吗?