//////////////////////////////////////////////////////////////////////////////// // // Paella // Copyright (C) 2015 - Thomas FORGIONE, Emilie JALRAS, Marion LENFANT, Thierry MALON, Amandine PAILLOUX // Authors : // Thomas FORGIONE // Emilie JALRAS // Marion LENFANT // Thierry MALON // Amandine PAILLOUX // Simone GASPARINI // // This file is part of the project Paella // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. // // Permission is granted to anyone to use this software for any purpose, // including commercial applications, and to alter it and redistribute it freely, // subject to the following restrictions: // // 1. The origin of this software must not be misrepresented; // you must not claim that you wrote the original software. // If you use this software in a product, an acknowledgment // in the product documentation would be appreciated but is not required. // // 2. Altered source versions must be plainly marked as such, // and must not be misrepresented as being the original software. // // 3. This notice may not be removed or altered from any source distribution. //////////////////////////////////////////////////////////////////////////////// #ifndef _CAMERA_HPP_ #define _CAMERA_HPP_ #include /** * \ingroup calibration * \brief Class that wraps the intrinsic parameters of a camera */ class Camera { public: /** * Default constructor */ Camera() {} /** * Initialize the camera loading the internal parameters from the given file * * @param[in] calibFilename the calibration file * @return true if success */ bool init( std::string calibFilename ); /** * Default destructor */ virtual ~Camera( ) {} /** * Return the OpenGL projection matrix for the camera * @param[out] proj the OGL projection matrix (ready to be passed, ie in col major format) * @param znear near clipping plane * @param zfar far clipping plane * \note using http://strawlab.org/2011/11/05/augmented-reality-with-OpenGL/ */ void getOGLProjectionMatrix( float *proj, const float znear, const float zfar ) const; public: cv::Mat matK; ///< Calibration matrix, with intrinsic parameters cv::Mat distCoeff; ///< Distortion coefficients cv::Size imageSize; ///< Size of the image }; #endif /* _CAMERA_HPP_ */