From d82384ba15c1c132e68f47680217c5ac4f34e359 Mon Sep 17 00:00:00 2001 From: adityavaishampayan Date: Fri, 20 Mar 2020 18:33:42 -0400 Subject: [PATCH] Task 1.15.8 Added stubs for LinearPnP.py --- scripts/LinearPnP.py | 52 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 scripts/LinearPnP.py diff --git a/scripts/LinearPnP.py b/scripts/LinearPnP.py new file mode 100644 index 0000000..54632e3 --- /dev/null +++ b/scripts/LinearPnP.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- + +""" +MIT License + +Copyright (c) 2018 Aditya Vaishampayan, Amrish Bhaskaran + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +""" + +# @file LinearPnP.py +# @Author Aditya Vaishampayan (adityavaishampayan) +# @Author Amrish Baskaran (amrish1222) +# @copyright MIT +# @brief a function that estimates the camera pose using linear least squares + +import sys + +# noinspection PyBroadException +try: + sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages') +except: + pass + +# G + + +def linear_pnp(correspondences_2d_3d: float, calibration_matrix: float) -> float: + """ + Given 2D-3D correspondences, X↔x and the intrinsic parameter K, estimate the camera pose using linear least squares + :param correspondences_2d_3d: 2D to 3D point correspondences + :param calibration_matrix: intrinsic matrix K + :return: estimated camera pose using linear least square + """ + ... +