SergioRAgostinho / cvl

(yet another) Computer Vision Library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

(yet another) Computer Vision Library (CVL) documentation

Build Status License

Introduction

This library was designed to be cross-platform on all three major desktop operative systems, although it was mainly developed on two machines running Mac OS X and Ubuntu. This makes it likely that additional changes are required in order to have it running on Windows.

The code is licensed under the Apache License 2.0.

Currently there's not much you can do with cvl other than running the vgm_grabber example. That example in particular loads a model from the dataset and renders its wireframe on top of the groundtruth footage provided. On its own it might look practically useless, but in order to achieve it a number of useful baseline code was implemented, which will definitely be worth something to any user wanting to make use of that dataset from C++. Then again this is version 0.1 of the library. Please refer to the Wiki page of the example for further information.

Requirements

Compiler support

cvl is targeting C++14 feature set (which should become the default supported mode , therefore you'll need a compiler which supports it. Out of the top of my head here's some of the things which the library currently makes use:

  • Aliases
  • auto runtime type deduction
  • for-range loops
  • std::unique_ptr and std::shared_ptr
  • emplace_back ()
  • Universal references and std::forward for perfect forwarding functionalities
  • std::forward_list
  • std::thread, std::async and std::future
  • constexpr
  • noexcept
  • (and the list goes on...)

Dependencies

Below is the current list of dependencies. M stands for mandatory and R is recommended.

Library/Tool/App Type Version Comments
CMake M 3.7 The core build system.
pkg-config It aids a lot the search for dependencies.
Eigen M 3 The foundation for cvl's linear algebra functionalities.
OpenCV M 3 core, videoio, highgui and imgproc modules.
nanoflann R HEAD A stripped down version of FLANN, used in the search modele. I submitted the formula recently to homebrew-science
TinyXML2 Used to parse XML for the VgmGrabber in io.
MATLAB cvl makes use of the mat and mxlibraries to read out the data from the VGM Dataset models with it.
GoogleTest Enables building the unit tests. Coverage is less than minimal at this point.
Doxygen 1.8.0 Used to generate the documentation.

Frequently Asked Questions (F.A.Q.)

  1. Q: Why is was the namespace ht used instead of cvl for instance?

    A: ht is an abbreviation for HipsterTech, the name of an organization I'm a co-founder of, and which one day might do something noteworthy and (not necessarily) useful.

  2. Q: Why does the overall API an module structure look awfully close to Pointcloud Library (PCL)?

    A: I'm one of its maintainers, so it's only natural that I take advantage of some of the successful design patterns it uses.

  3. Q: Why did you set the target versions of C++ and CMake to such high values?

    A: This is a new library and I don't like having backwards compatibility preventing me from using recent features. Ultimately no one likes to reinvent the wheel.

About

(yet another) Computer Vision Library

License:Apache License 2.0


Languages

Language:C++ 82.1%Language:CMake 13.3%Language:Shell 2.6%Language:C 2.0%