Skip to content

ProjectStructure

PimenovAlexander edited this page Oct 16, 2019 · 4 revisions

Project Structure

Project is subdivided in the set of subfolders, each contains

Core

Main part of the library, it contains primitives that are related to computer vision, computer graphics a bit on computational math. For more details have a look at core sub directories.

Requirements: None. This is a major design point. Core has no mandatory dependence, except for C++ stdlib. Optional Requirements:

  1. TBB (libtbb-dev)
  2. OpenBLAS/LAPAKE (libopenblas-dev, liblapake-dev)

Test-Core

Unit tests for core that are managed by googletest library.

Requirements:

  1. googletest (Check Build page to get installation options)
  2. Core Optional Requirements: None

Test-Core-Perf

Preformance tests for core that are managed by googletest library.

Requirements:

  1. googletest (Check Build page to get installation options)
  2. Core Optional Requirements: None

Wrappers

This directory contains functions that are only relevant with corresponding libraries and provide converters and portability layers.

OpenCV

This sub-project contains code to interface with classical OpenCV library. You can switch OpenCV requirement off by unsetting with_opencv from config.pri

Requirements:

  1. Core
  2. OpenCV (instruction how to build one - OpenCV ) Optional Requirements: None

LibJpeg

Loosely coupled subproject that implements BufferLoader wrapper over LibJpeg library. Image loaders and savers are more like static plugins for corecvs applications. For usage refer to fileloader test.

Requirements:

  1. Core
  2. Libjpeg (libjpeg-dev) Optional Requirements: None

LibPNG

Loosely coupled subproject that implements BufferLoader wrapper over LibPng library. Image loaders and savers are more like static plugins for corecvs applications. For usage refer to fileloader test.

Requirements:

  1. Core
  2. Libpng (libpng-dev) Optional Requirements: None

Utils

Clone this wiki locally