facebook360_dep
Facebook360 Depth Estimation Pipeline
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
fb360_dep::Camera Struct Reference

#include <Camera.h>

Public Types

enum  Type { Type::FTHETA, Type::RECTILINEAR, Type::EQUISOLID, Type::ORTHOGRAPHIC }
 
using Real = double
 
using Vector2 = Eigen::Matrix< Real, 2, 1 >
 
using Vector3 = Eigen::Matrix< Real, 3, 1 >
 
using Matrix3 = Eigen::Matrix< Real, 3, 3 >
 
using Ray = Eigen::ParametrizedLine< Real, 3 >
 
using Distortion = Eigen::Matrix< Real, 3, 1 >
 
using Rig = std::vector< Camera >
 

Public Member Functions

 Camera (const Type type, const Vector2 &resolution, const Vector2 &focal)
 
 Camera (const folly::dynamic &json)
 
folly::dynamic serialize () const
 
Vector3 forward () const
 
Vector3 up () const
 
Vector3 right () const
 
void setRotation (const Vector3 &forward, const Vector3 &up, const Vector3 &right)
 
void setRotation (const Vector3 &forward, const Vector3 &up)
 
Vector3 getRotation () const
 
void setRotation (const Vector3 &angleAxis)
 
void setDefaultDistortion ()
 
void setDistortion (const Distortion &distortion)
 
const DistortiongetDistortion () const
 
Real getDistortionMax () const
 
void setScalarFocal (const Real &scalar)
 
Real getScalarFocal () const
 
void setFov (const Real &radians)
 
Real getFov () const
 
void setDefaultFov ()
 
bool isDefaultFov () const
 
Camera rescale (const Vector2 &newResolution={1, 1}) const
 
void normalize ()
 
bool isNormalized () const
 
Vector2 pixel (const Vector3 &rig) const
 
Ray rig (const Vector2 &pixel) const
 
Vector3 rig (const Vector2 &pixel, const Real depth) const
 
Vector3 rigNearInfinity (const Vector2 &pixel) const
 
bool isBehind (const Vector3 &rig) const
 
bool isOutsideFov (const Vector3 &rig) const
 
bool isOutsideImageCircle (const Vector2 &pix) const
 
bool isOutsideSensor (const Vector2 &pix) const
 
bool sees (const Vector3 &rig, Vector2 &pix) const
 
bool sees (const Vector3 &rig) const
 
Real overlap (const Camera &other) const
 
Real distort (Real r) const
 
Real undistort (const Real y) const
 
Vector3 pixelToCamera (const Vector2 &pixel) const
 
Vector2 cameraToPixel (const Vector3 &camera) const
 

Static Public Member Functions

static Rig loadRig (const filesystem::path &filename)
 
static Rig loadRigFromJsonString (const std::string &json)
 
static void saveRig (const std::string &filename, const Rig &rig, const std::vector< std::string > &comments={}, const int doubleNumDigits=-1)
 
static Real getDefaultCosFov (Type type)
 
static void normalizeRig (Camera::Rig &rig)
 
static void perturbCameras (std::vector< Camera > &cameras, const double posAmount, const double rotAmount, const double principalAmount, const double focalAmount)
 
static const CamerafindCameraById (const std::string id, const Camera::Rig &rig)
 

Public Attributes

enum fb360_dep::Camera::Type type
 
Vector3 position
 
Matrix3 rotation
 
Vector2 resolution
 
Vector2 principal
 
Vector2 focal
 
Real cosFov
 
std::string id
 
std::string group
 

Static Public Attributes

static const Camera::Real kNearInfinity = 1e4
 

Member Typedef Documentation

◆ Distortion

using fb360_dep::Camera::Distortion = Eigen::Matrix<Real, 3, 1>

◆ Matrix3

using fb360_dep::Camera::Matrix3 = Eigen::Matrix<Real, 3, 3>

◆ Ray

using fb360_dep::Camera::Ray = Eigen::ParametrizedLine<Real, 3>

◆ Real

using fb360_dep::Camera::Real = double

◆ Rig

using fb360_dep::Camera::Rig = std::vector<Camera>

◆ Vector2

using fb360_dep::Camera::Vector2 = Eigen::Matrix<Real, 2, 1>

◆ Vector3

using fb360_dep::Camera::Vector3 = Eigen::Matrix<Real, 3, 1>

Member Enumeration Documentation

◆ Type

Enumerator
FTHETA 
RECTILINEAR 
EQUISOLID 
ORTHOGRAPHIC 

Constructor & Destructor Documentation

◆ Camera() [1/2]

fb360_dep::Camera::Camera ( const Type  type,
const Vector2 resolution,
const Vector2 focal 
)

◆ Camera() [2/2]

fb360_dep::Camera::Camera ( const folly::dynamic &  json)
explicit

Member Function Documentation

◆ cameraToPixel()

Vector2 fb360_dep::Camera::cameraToPixel ( const Vector3 camera) const
inline

◆ distort()

Real fb360_dep::Camera::distort ( Real  r) const
inline

◆ findCameraById()

const Camera & fb360_dep::Camera::findCameraById ( const std::string  id,
const Camera::Rig rig 
)
static

◆ forward()

Vector3 fb360_dep::Camera::forward ( ) const
inline

◆ getDefaultCosFov()

Camera::Real fb360_dep::Camera::getDefaultCosFov ( Camera::Type  type)
static

◆ getDistortion()

const Distortion& fb360_dep::Camera::getDistortion ( ) const
inline

◆ getDistortionMax()

Real fb360_dep::Camera::getDistortionMax ( ) const
inline

◆ getFov()

Camera::Real fb360_dep::Camera::getFov ( ) const

◆ getRotation()

Camera::Vector3 fb360_dep::Camera::getRotation ( ) const

◆ getScalarFocal()

Camera::Real fb360_dep::Camera::getScalarFocal ( ) const

◆ isBehind()

bool fb360_dep::Camera::isBehind ( const Vector3 rig) const
inline

◆ isDefaultFov()

bool fb360_dep::Camera::isDefaultFov ( ) const

◆ isNormalized()

bool fb360_dep::Camera::isNormalized ( ) const

◆ isOutsideFov()

bool fb360_dep::Camera::isOutsideFov ( const Vector3 rig) const
inline

◆ isOutsideImageCircle()

bool fb360_dep::Camera::isOutsideImageCircle ( const Vector2 pix) const
inline

◆ isOutsideSensor()

bool fb360_dep::Camera::isOutsideSensor ( const Vector2 pix) const
inline

◆ loadRig()

Camera::Rig fb360_dep::Camera::loadRig ( const filesystem::path &  filename)
static

◆ loadRigFromJsonString()

Camera::Rig fb360_dep::Camera::loadRigFromJsonString ( const std::string &  json)
static

◆ normalize()

void fb360_dep::Camera::normalize ( )

◆ normalizeRig()

void fb360_dep::Camera::normalizeRig ( Camera::Rig rig)
static

◆ overlap()

Real fb360_dep::Camera::overlap ( const Camera other) const
inline

◆ perturbCameras()

void fb360_dep::Camera::perturbCameras ( std::vector< Camera > &  cameras,
const double  posAmount,
const double  rotAmount,
const double  principalAmount,
const double  focalAmount 
)
static

◆ pixel()

Vector2 fb360_dep::Camera::pixel ( const Vector3 rig) const
inline

◆ pixelToCamera()

Vector3 fb360_dep::Camera::pixelToCamera ( const Vector2 pixel) const
inline

◆ rescale()

Camera fb360_dep::Camera::rescale ( const Vector2 newResolution = {1, 1}) const

◆ rig() [1/2]

Ray fb360_dep::Camera::rig ( const Vector2 pixel) const
inline

◆ rig() [2/2]

Vector3 fb360_dep::Camera::rig ( const Vector2 pixel,
const Real  depth 
) const
inline

◆ right()

Vector3 fb360_dep::Camera::right ( ) const
inline

◆ rigNearInfinity()

Vector3 fb360_dep::Camera::rigNearInfinity ( const Vector2 pixel) const
inline

◆ saveRig()

void fb360_dep::Camera::saveRig ( const std::string &  filename,
const Rig rig,
const std::vector< std::string > &  comments = {},
const int  doubleNumDigits = -1 
)
static

◆ sees() [1/2]

bool fb360_dep::Camera::sees ( const Vector3 rig,
Vector2 pix 
) const
inline

◆ sees() [2/2]

bool fb360_dep::Camera::sees ( const Vector3 rig) const
inline

◆ serialize()

folly::dynamic fb360_dep::Camera::serialize ( ) const

◆ setDefaultDistortion()

void fb360_dep::Camera::setDefaultDistortion ( )

◆ setDefaultFov()

void fb360_dep::Camera::setDefaultFov ( )

◆ setDistortion()

void fb360_dep::Camera::setDistortion ( const Distortion distortion)

◆ setFov()

void fb360_dep::Camera::setFov ( const Real radians)

◆ setRotation() [1/3]

void fb360_dep::Camera::setRotation ( const Vector3 forward,
const Vector3 up,
const Vector3 right 
)

◆ setRotation() [2/3]

void fb360_dep::Camera::setRotation ( const Vector3 forward,
const Vector3 up 
)

◆ setRotation() [3/3]

void fb360_dep::Camera::setRotation ( const Vector3 angleAxis)

◆ setScalarFocal()

void fb360_dep::Camera::setScalarFocal ( const Real scalar)

◆ undistort()

Real fb360_dep::Camera::undistort ( const Real  y) const
inline

◆ up()

Vector3 fb360_dep::Camera::up ( ) const
inline

Member Data Documentation

◆ cosFov

Real fb360_dep::Camera::cosFov

◆ focal

Vector2 fb360_dep::Camera::focal

◆ group

std::string fb360_dep::Camera::group

◆ id

std::string fb360_dep::Camera::id

◆ kNearInfinity

const Camera::Real fb360_dep::Camera::kNearInfinity = 1e4
static

◆ position

Vector3 fb360_dep::Camera::position

◆ principal

Vector2 fb360_dep::Camera::principal

◆ resolution

Vector2 fb360_dep::Camera::resolution

◆ rotation

Matrix3 fb360_dep::Camera::rotation

◆ type

enum fb360_dep::Camera::Type fb360_dep::Camera::type

The documentation for this struct was generated from the following files: