Science

NASA Vision Workbench – computer vision framework

NASA Vision Workbench is a C++ image processing and machine vision library.

The Vision Workbench has been used within NASA for a wide range of image processing tasks, including alignment and stitching of panoramic images, high-dynamic-range imaging, texture analysis and recognition, lunar and planetary map generation, and the production of 3D models from stereo image pairs.

NASA Vision Workbench was designed to support a variety of space exploration tasks, including automated science and engineering analysis, robot perception, and 2D/3D environment reconstruction, though it can also serve as a general-purpose image processing and machine vision framework in other contexts as well.

This package is composed of several modules each of which provides a separate C++ library. The core library provides the basic image and pixel data types as well as a range of fundamental image processing operations.

It is specifically designed for image processing in the context of machine vision.

Key Features

  • Solid efficient foundation.
  • ‘Lazy’ computation model.
  • Scalable support for block-level operations on images.
  • Easy to understand end-user syntax.
  • Modules:
    • Camera.
      • pinhole and linescan camera models.
      • EXIF metadata parsing.
      • bayer filter decoding.
    • Cartography:
      • transformation between map projections.
      • geo-referenced file IO (GeoTIFF, etc).
    • Core:
      • exception handling.
      • debugging support.
      • type system support.
      • cache support.
    • FileIO:
      • reading and writing JPEG, PNG, TIFF, PDS, OpenEXR files (requires 3rd party libraries).
      • image paging support for large files.
    • HDR:
      • high dynamic range image creation from bracketed low dynamic range exposures.
      • camera response curve estimation.
      • global and local tone mapping operators.
    • Image:
      • convolution — convolve images with linear filters.
      • algebra — image addition, subtraction, and multiplication by a scalar.
      • math — perform per pixel math operations on images (e.g., abs, hypot, sqrt, pow, exp, log, sin, cos, asin, acos, atan2, etc).
      • transformations — translation, rotation, scale, resampling, arbitrary warps.
      • image statistics.
    • Math:
      • vector, matrix, quaternion and linear algebra (interface to LAPACK).
      • optimization — levenberg-Marquardt, conjugate gradient.
      • homographies — estimation of relations between geometric entities.
      • bounding boxes — Determination of geometric extent.
    • Mosaic:
      • assembling large image composites from many source images.
      • multi-band blending.
      • generating on-disk quad-tree representations of extremely large images.
    • Stereo:
      • correlating stereo pairs of images.
      • stereo camera models for 3D reconstruction.
      • outlier rejection.

Website: software.nasa.gov/software/ARC-15761-1A
Support: Documentation, GitHub Code Repository
Developer: NASA Ames Research Center
License: Apache License, Version 2.0

Nasa Vision Workbench

Nasa Vision Workbench is written in C++. Learn C++ with our recommended free books and free tutorials.


Related Software

Robotics Software
NASA Vision WorkbenchImage processing in the context of machine vision
DARTDynamic Animation and Robotics Toolkit
Gazebo SimRobot simulation made easy
AprilTagVisual fiducial system popular for robotics research
WebotsMulti-platform desktop application used to simulate robots
ROSSoftware framework for building robot applications
ARGoSPhysics-based simulator designed to simulate robot swarms
MoveItRobotic manipulation platform for ROS 2
OpenRTM-aistComponent-oriented development of robot systems
The Player ProjectCross-platform robot device interface & server
UrbiUniversal Robot Body Interface

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments