2016-12-16 3 views
0

В стереоизображении изображения выпрямляются перед расчетом несоответствия. Точки в карте несоответствия соответствуют точкам в выпрямленное изображение. Если я надеюсь узнать соответствующие точки в неуправляемом изображении, поэтому мне нужно применить обратную операцию исправления к карте несоответствия. Я прав? Есть ли такая функция в OpenCV?Несоответствие для точек в неустранимом изображении

ответ

0

Мне не известно о какой-либо функции в opencv, которая непосредственно дает вам этот результат. Но это хак, который я использовал. Думаю, вы можете использовать функцию карты, полученную в функции stereoRectify. Что-то вроде этого. Хотя код является самоочевидным, но если вам нужна помощь, не стесняйтесь спрашивать.

`

for(int row = 0; row < noRows; row++) 
    { 
     for(int col = 0; col < noCols; col++) 
     { 
      float disp = imgDisparity.at<float>(row, col); 
      if(disp > 0) // valid disparity only 
      { 
       Vec2s v1, v2; 
       int x1, x2, y1, y2; // corresponding coordinates 
       v1 = mapL.at<Vec2s>(row, col); 
       v2 = mapR.at<Vec2s>(row, col - (int)disp); 

       x1 = v1[0]; 
       x2 = v2[0]; 

       y1 = v1[1]; 
       y2 = v2[1]; 
      } 
      } 
     } 

`

Смежные вопросы