В стереоизображении изображения выпрямляются перед расчетом несоответствия. Точки в карте несоответствия соответствуют точкам в выпрямленное изображение. Если я надеюсь узнать соответствующие точки в неуправляемом изображении, поэтому мне нужно применить обратную операцию исправления к карте несоответствия. Я прав? Есть ли такая функция в OpenCV?Несоответствие для точек в неустранимом изображении
0
A
ответ
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];
}
}
}
`