Я использую этот устаревший код: http://fossies.org/dox/opencv-2.4.8/trifocal_8cpp_source.html для оценки трехмерных точек из данных соответствующих 2D-точек из трех разных точек зрения. Проблема я столкнулся с такой же, как указано здесь: http://opencv-users.1802565.n2.nabble.com/trifocal-tensor-icvComputeProjectMatrices6Points-icvComputeProjectMatricesNPoints-td2423108.htmlПреобразование матриц проекции, вычисленных из трифокального тензора для оценки 3D-точек
Я мог бы вычислить матрицы Проекционные успешно используют icvComputeProjectMatrices6Points. Я использовал 6 наборов соответствующих точек из 3 видов. Результаты представлены ниже:
projMatr1 P1 =
[-0.22742541, 0.054754492, 0.30500898, -0.60233182;
-0.14346679, 0.034095913, 0.33134204, -0.59825808;
-4.4949986e-05, 9.9166318e-06, 7.106331e-05, -0.00014547621]
projMatr2 P2 =
[-0.17060626, -0.0076031247, 0.42357284, -0.7917347;
-0.028817834, -0.0015948272, 0.2217239, -0.33850163;
-3.3046148e-05, -1.3680664e-06, 0.0001002633, -0.00019192585]
projMatr3 P3 =
[-0.033748217, 0.099119112, -0.4576003, 0.75215244;
-0.001807699, 0.0035084449, -0.24180284, 0.39423448;
-1.1765103e-05, 2.9554356e-05, -0.00013438619, 0.00025332544]
Кроме того, я вычислен 3D точек с помощью icvReconstructPointsFor3View. Шесть 3D точки являются следующие:
4D points =
[-0.4999997, -0.26867214, -1, 2.88633e-07, 1.7766099e-07, -1.1447386e-07;
-0.49999994, -0.28693244, 3.2249036e-06, 1, 7.5971762e-08, 2.1956141e-07;
-0.50000024, -0.72402155, 1.6873783e-07, -6.8603946e-08, -1, 5.8393886e-07;
-0.50000012, -0.56681377, 1.202426e-07, -4.1603233e-08, -2.3659911e-07, 1]
While, фактические 3D точки являются следующие:
- { ID:1,X:500.000000, Y:800.000000, Z:3000.000000}
- { ID:2,X:500.000000, Y:800.000000, Z:4000.000000}
- { ID:3,X:1500.000000, Y:800.000000, Z:4000.000000}
- { ID:4,X:1500.000000, Y:800.000000, Z:3000.000000}
- { ID:5,X:500.000000, Y:1800.000000, Z:3000.000000}
- { ID:6,X:500.000000, Y:1800.000000, Z:4000.000000}
Мой вопрос теперь, как преобразовать P1, P2 и P3 в форме, которая позволяет значимая триангуляция? Мне нужно вычислить правильные трехмерные точки, используя трифокальный тензор.
как я вычислить H, когда я уже знаю калибровки камеры Матрица K? – magarwal
Ссылка на PDF была сломана, я ее исправил. Вы нашли раздел, на который я ссылался? – AldurDisciple
сделал. Но не смог понять его до уровня реализации :( – magarwal