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.
Features include:
- 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.
- Camera.
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 is written in C++. Learn C++ with our recommended free books and free tutorials.
Popular series | |
---|---|
The largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you to make informed decisions. | |
Hundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information. | |
The Big List of Active Linux Distros is a large compilation of actively developed Linux distributions. | |
Replace proprietary software with open source alternatives: Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle, Atlassian, Corel, Cisco, Intuit, and SAS. | |
Awesome Free Linux Games Tools showcases a series of tools that making gaming on Linux a more pleasurable experience. This is a new series. | |
Machine Learning explores practical applications of machine learning and deep learning from a Linux perspective. We've written reviews of more than 40 self-hosted apps. All are free and open source. | |
New to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux. | |
Alternatives to popular CLI tools showcases essential tools that are modern replacements for core Linux utilities. | |
Essential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users. | |
Linux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine. | |
Surveys popular streaming services from a Linux perspective: Amazon Music Unlimited, Myuzi, Spotify, Deezer, Tidal. | |
Saving Money with Linux looks at how you can reduce your energy bills running Linux. | |
Home computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum. | |
Now and Then examines how promising open source software fared over the years. It can be a bumpy ride. | |
Linux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged. | |
Linux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery. | |
Getting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers. | |
Best Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series. | |
These best free books accelerate your learning of every programming language. Learn a new language today! | |
These free tutorials offer the perfect tonic to our free programming books series. | |
Linux Around The World showcases usergroups that are relevant to Linux enthusiasts. Great ways to meet up with fellow enthusiasts. | |
Stars and Stripes is an occasional series looking at the impact of Linux in the USA. |