bash
метод (один вариант ответа Майкл Нил ), используя process & amp; command substitution : FOO=42 . <(echo -e echo $(
Выход: hello 42 world
Обратите внимание, что export
не требуется. sed
оценить , если something.txt имеет много строк: FOO=42 sed 's/"/\\\"/g;s/.*/echo "&"/e' something.txt
Вы можете использовать фундаментальную матрицу для восстановления матриц камер и триангуляции трехмерных точек из их изображений. Однако вы должны знать, что реконструкция, которую вы получите, будет проективной реконструкцией, а не евклидовой. Это полезно, если вашей целью является измерение проективных инвариантов в исходной сцене, таких как поперечное соотношение, пересечения линий и т. Д., Но этого недостаточно для измерения углов и расстояний (для этого вам придется откалибровать камеры).
Если у вас есть доступ к учебнику Хартли и Зиссермана , вы можете проверить раздел 9.5.3, где вы найдете то, что вам нужно, чтобы перейти от основной матрицы к паре матриц камеры, которые позволят вам вычислить проективную реконструкцию (я считаю, что то же самое содержание содержится в разделе 6.4 книги И Ма). Поскольку исходный код алгоритмов книги доступен в Интернете , вы можете проверить функции vgg_P_from_F, vgg_X_from_xP_lin и vgg_X_from_xP_nonlin.
Если ваше 3D-пространство может быть выбрано произвольно, вы можете установить вашу первую матрицу камеры как
P = [I | 0]
Без трансляции, без вращения. В этом случае у вас останется система координат, определенная из камеры 1. Тогда не будет слишком сложно откалибровать вторую камеру.
Код Matlab Питера будет вам очень полезен, я думаю:
http://www.csse.uwa.edu.au/~pk/ research / matlabfns /
Питер опубликовал ряд фундаментальных матричных решений. Оригинальные алгоритмы были упомянуты в книге Зиссермана
Кроме того, пока вы на нем, не забудьте посмотреть песню о фундаментальной матрице:
http://danielwedge.com/fmatrix/
один штраф состав на мой честный взгляд!