Таким образом, я вычисляю несоответствие между двумя стереоизображениями (левым и правым). Это выглядит правильно (потому что оно несколько похоже по форме на исходное изображение). После этого я использую строку: -
cvReprojectImageTo3D(&disparity, threeDimage, &Q);
и получите ответы в ThreeDimage. Это матрица, и я обращаюсь к ней как: -
for(int ii=0;ii<threeDimage->rows;ii++)
{
float *data = (float *)(threeDimage->data.ptr + ii * threeDimage->step);
for(int jj=0;jj<threeDimage->cols*3;jj=jj+3)
{
float a=data[jj];
float b=data[jj+1];
float c=data[jj+2];
fprintf(fpp,"%f %f %f \n", a,b,c);
}
}
Но проблема в том, что она не дает правильного ответа. Я получаю много повторяющихся значений вмой файл. Любой намек на то, что может пойти не так? Правильный ли обход матрицы?