Таким образом, для более чем 10000 изображений openCV я хочу выполнить что-то вроде
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*h + 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) / dif;
file << normRealColor << " ";
}
file << endl;
}file << endl;
все мои изображения имеют черно-белый размер 8 * 8, но мне возвращается что-то вроде:
-1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND
-1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND
-1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND
-1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND
-1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND
-1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND
-1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND
-1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND -1.#IND
и возвращает его не всегда !!!время от времени я получаю нужные вещи, такие как
0 0 0 0.166667 0.166667 0.333333 0.333333 0.333333
0.166667 0.166667 0.166667 0.333333 0.333333 0.5 0.5 0.5
0.333333 0.333333 0.5 0.5 0.666667 0.666667 0.666667 0.833333
0.5 0.5 0.666667 0.666667 0.833333 0.833333 0.833333 1
0.666667 0.666667 0.666667 0.833333 0.833333 1 1 1
0.5 0.666667 0.666667 0.666667 0.833333 0.833333 1 1
0.5 0.5 0.5 0.666667 0.666667 0.833333 0.833333 0.833333
0.333333 0.5 0.5 0.5 0.666667 0.666667 0.833333 0.833333
Любые идеи?
Кстати (я знаю, что есть cvNormalize (source, source, 1,0, CV_MINMAX); но мне нужноиспользуйте рукописный код ...)