Aqui está um transformMatrix Mat 4x4.
1,000, 0,000, -0,004, 0,784,
-0,000, 1,000, 0,001, -0,205,
0,004, -0,001, 1,000, -1,435,
0,000, 0,000, 0,000, 1,000
Aqui está um vetor de 3 dimensões
507.347.359.172.229.584
Realizei a operação de multiplicação do OpenCV Mat da seguinte maneira
dados duplos[] = {507.347, 359.172, 229.584, 1};
cv::Mat s(4, 1, CV_64F, dados);
cv::Mat d = transformMatrix * s;
O resultado de saída é o seguinte, mas difere do valor calculado usando uma calculadora.
Resultado da multiplicação do OpenCV Mat = matriz * (507.347.359.172.229.584) = (507.394.359.158.229.605)
Resultado do cálculo = 507,213, 359,197, 230,538
Por que o resultado é diferente? Há algo errado com o código?