facebook360_dep
Facebook360 Depth Estimation Pipeline
Classes | Typedefs | Functions
fb360_dep::calibration Namespace Reference

Classes

struct  BestMatch
 
struct  Keypoint
 
struct  Match
 
struct  Overlap
 
struct  ReprojectionFunctor
 
struct  SphericalReprojectionFunctor
 
struct  TriangulationFunctor
 

Typedefs

using Observations = std::vector< std::pair< const Camera &, Camera::Vector2 > >
 

Functions

bool isUniqueCorner (const std::vector< Keypoint > &corners, const int previousCornerCount, const Camera::Vector2 &corner)
 
std::vector< Camera::Vector2findScaledCorners (const double scale, const cv::Mat_< uint8_t > &imageFull, const cv::Mat_< uint8_t > &maskFull, const std::string &cameraId)
 
cv::Mat_< uint8_t > generateImageCircleMask (const Camera &camera)
 
std::vector< KeypointfindCorners (const Camera &camera, const Image &image, const bool useNearest)
 
std::map< ImageId, std::vector< Keypoint > > findAllCorners (const Camera::Rig &rig, const std::vector< Image > &images, const bool useNearest)
 
std::vector< KeypointfindCorners (const Camera &camera, const cv::Mat_< uint8_t > &image, const bool useNearest)
 
std::map< std::string, std::vector< Keypoint > > findAllCorners (const Camera::Rig &rig, const std::vector< cv::Mat_< uint8_t >> &images, const bool useNearest)
 
double computeZncc (const Keypoint &corner0, const Keypoint &corner1)
 
cv::Rect2f computeBox (const Camera &camera1, const Camera &camera0, const Camera::Vector2 &pixel0, const double depth)
 
bool tooMuchOverlap (const cv::Rect2f &box, const cv::Rect2f &lastBox)
 
bool projectCorner (Image &projection1, const Camera &camera1, const Image &img0, const Camera &camera0, const Keypoint &corner0, const double depth0)
 
bool hasCornerNearCenter (const Image &image)
 
bool getNextDepthSample (int &currentDepthSample, double &currentDisparity, cv::Rect2f &currentBox, const Camera &camera0, const Camera::Vector2 &corner0Coords, const Camera &camera1)
 
Overlap findMatches (const Image &img0, const std::vector< Keypoint > &corners0, const Camera &camera0, const Image &img1, const std::vector< Keypoint > &corners1, const Camera &camera1)
 
std::vector< OverlapfindAllMatches (const Camera::Rig &rig, const std::vector< Image > &images, const std::map< ImageId, std::vector< Keypoint >> &allCorners)
 
Overlap findMatches (const cv::Mat_< uint8_t > &img0, const std::vector< Keypoint > &corners0, const Camera &camera0, const cv::Mat_< uint8_t > &img1, const std::vector< Keypoint > &corners1, const Camera &camera1)
 
std::vector< OverlapfindAllMatches (const Camera::Rig &rig, const std::vector< cv::Mat_< uint8_t >> &images, const std::map< std::string, std::vector< Keypoint >> &allCorners)
 
Camera makeCamera (const Camera &camera, const Camera::Vector3 &position, const Camera::Vector3 &rotation, const Camera::Vector2 &principal, const Camera::Real &focal, const Camera::Distortion &distortion)
 
void cartesianToSpherical (Camera::Real &radius, Camera::Real &theta, Camera::Real &phi, const Camera::Vector3 &cartesianCoords)
 
Camera::Vector3 sphericalToCartesian (const Camera::Real radius, const Camera::Real theta, const Camera::Real phi)
 
Camera::Vector3 averageAtDistance (const Observations &observations, const Camera::Real distance)
 
Camera::Vector3 triangulateNonlinear (const Observations &observations, const bool forceInFront)
 
double calcPercentile (std::vector< double > values, double percentile=0.5)
 
Camera::Vector2 reprojectionError (const ceres::Problem &problem, ceres::ResidualBlockId id)
 
std::vector< double > getReprojectionErrorNorms (const ceres::Problem &problem, const double *parameter=nullptr)
 
std::string getImageFilename (const std::string &image, const std::string &frame, const std::string &imageExt)
 
Image extractSingleChannelImage (const cv::Mat_< cv::Vec3b > &image)
 
std::vector< ImageloadSingleChannelImages (const filesystem::path &dir, const Camera::Rig &rig)
 
std::vector< ImageloadChannels (const Camera::Rig &rig)
 
void processScale (const float scale, const Camera::Rig &rigFull, const std::vector< Image > &images, std::map< ImageId, std::vector< Keypoint >> &allCorners, std::vector< Overlap > &overlaps)
 
void processOctaves (const Camera::Rig &rigFull, const std::vector< Image > &images, std::map< ImageId, std::vector< Keypoint >> &allCorners, std::vector< Overlap > &overlaps)
 

Typedef Documentation

◆ Observations

using fb360_dep::calibration::Observations = typedef std::vector<std::pair<const Camera&, Camera::Vector2> >

Function Documentation

◆ averageAtDistance()

Camera::Vector3 fb360_dep::calibration::averageAtDistance ( const Observations observations,
const Camera::Real  distance 
)

◆ calcPercentile()

double fb360_dep::calibration::calcPercentile ( std::vector< double >  values,
double  percentile = 0.5 
)

◆ cartesianToSpherical()

void fb360_dep::calibration::cartesianToSpherical ( Camera::Real radius,
Camera::Real theta,
Camera::Real phi,
const Camera::Vector3 cartesianCoords 
)

◆ computeBox()

cv::Rect2f fb360_dep::calibration::computeBox ( const Camera camera1,
const Camera camera0,
const Camera::Vector2 pixel0,
const double  depth 
)

◆ computeZncc()

double fb360_dep::calibration::computeZncc ( const Keypoint corner0,
const Keypoint corner1 
)

◆ extractSingleChannelImage()

cv::Mat_< uint8_t > fb360_dep::calibration::extractSingleChannelImage ( const cv::Mat_< cv::Vec3b > &  image)

◆ findAllCorners() [1/2]

std::map<std::string, std::vector<Keypoint> > fb360_dep::calibration::findAllCorners ( const Camera::Rig rig,
const std::vector< cv::Mat_< uint8_t >> &  images,
const bool  useNearest 
)

◆ findAllCorners() [2/2]

std::map<ImageId, std::vector<Keypoint> > fb360_dep::calibration::findAllCorners ( const Camera::Rig rig,
const std::vector< Image > &  images,
const bool  useNearest 
)

◆ findAllMatches() [1/2]

std::vector<Overlap> fb360_dep::calibration::findAllMatches ( const Camera::Rig rig,
const std::vector< cv::Mat_< uint8_t >> &  images,
const std::map< std::string, std::vector< Keypoint >> &  allCorners 
)

◆ findAllMatches() [2/2]

std::vector<Overlap> fb360_dep::calibration::findAllMatches ( const Camera::Rig rig,
const std::vector< Image > &  images,
const std::map< ImageId, std::vector< Keypoint >> &  allCorners 
)

◆ findCorners() [1/2]

std::vector<Keypoint> fb360_dep::calibration::findCorners ( const Camera camera,
const cv::Mat_< uint8_t > &  image,
const bool  useNearest 
)

◆ findCorners() [2/2]

std::vector<Keypoint> fb360_dep::calibration::findCorners ( const Camera camera,
const Image image,
const bool  useNearest 
)

◆ findMatches() [1/2]

Overlap fb360_dep::calibration::findMatches ( const cv::Mat_< uint8_t > &  img0,
const std::vector< Keypoint > &  corners0,
const Camera camera0,
const cv::Mat_< uint8_t > &  img1,
const std::vector< Keypoint > &  corners1,
const Camera camera1 
)

◆ findMatches() [2/2]

Overlap fb360_dep::calibration::findMatches ( const Image img0,
const std::vector< Keypoint > &  corners0,
const Camera camera0,
const Image img1,
const std::vector< Keypoint > &  corners1,
const Camera camera1 
)

◆ findScaledCorners()

std::vector< Camera::Vector2 > fb360_dep::calibration::findScaledCorners ( const double  scale,
const cv::Mat_< uint8_t > &  imageFull,
const cv::Mat_< uint8_t > &  maskFull,
const std::string &  cameraId 
)

◆ generateImageCircleMask()

cv::Mat_<uint8_t> fb360_dep::calibration::generateImageCircleMask ( const Camera camera)

◆ getImageFilename()

std::string fb360_dep::calibration::getImageFilename ( const std::string &  image,
const std::string &  frame,
const std::string &  imageExt 
)
inline

◆ getNextDepthSample()

bool fb360_dep::calibration::getNextDepthSample ( int &  currentDepthSample,
double &  currentDisparity,
cv::Rect2f &  currentBox,
const Camera camera0,
const Camera::Vector2 corner0Coords,
const Camera camera1 
)

◆ getReprojectionErrorNorms()

std::vector<double> fb360_dep::calibration::getReprojectionErrorNorms ( const ceres::Problem &  problem,
const double *  parameter = nullptr 
)

◆ hasCornerNearCenter()

bool fb360_dep::calibration::hasCornerNearCenter ( const Image image)

◆ isUniqueCorner()

bool fb360_dep::calibration::isUniqueCorner ( const std::vector< Keypoint > &  corners,
const int  previousCornerCount,
const Camera::Vector2 corner 
)

◆ loadChannels()

std::vector< cv::Mat_< uint8_t > > fb360_dep::calibration::loadChannels ( const Camera::Rig rig)

◆ loadSingleChannelImages()

std::vector<Image> fb360_dep::calibration::loadSingleChannelImages ( const filesystem::path &  dir,
const Camera::Rig rig 
)

◆ makeCamera()

Camera fb360_dep::calibration::makeCamera ( const Camera camera,
const Camera::Vector3 position,
const Camera::Vector3 rotation,
const Camera::Vector2 principal,
const Camera::Real focal,
const Camera::Distortion distortion 
)

◆ processOctaves()

void fb360_dep::calibration::processOctaves ( const Camera::Rig rigFull,
const std::vector< Image > &  images,
std::map< ImageId, std::vector< Keypoint >> &  allCorners,
std::vector< Overlap > &  overlaps 
)

◆ processScale()

void fb360_dep::calibration::processScale ( const float  scale,
const Camera::Rig rigFull,
const std::vector< Image > &  images,
std::map< ImageId, std::vector< Keypoint >> &  allCorners,
std::vector< Overlap > &  overlaps 
)

◆ projectCorner()

bool fb360_dep::calibration::projectCorner ( Image projection1,
const Camera camera1,
const Image img0,
const Camera camera0,
const Keypoint corner0,
const double  depth0 
)

◆ reprojectionError()

Camera::Vector2 fb360_dep::calibration::reprojectionError ( const ceres::Problem &  problem,
ceres::ResidualBlockId  id 
)

◆ sphericalToCartesian()

Camera::Vector3 fb360_dep::calibration::sphericalToCartesian ( const Camera::Real  radius,
const Camera::Real  theta,
const Camera::Real  phi 
)

◆ tooMuchOverlap()

bool fb360_dep::calibration::tooMuchOverlap ( const cv::Rect2f &  box,
const cv::Rect2f &  lastBox 
)

◆ triangulateNonlinear()

Camera::Vector3 fb360_dep::calibration::triangulateNonlinear ( const Observations observations,
const bool  forceInFront 
)