NameDateSize

..16-Mar-201612 KiB

.gitignore29-Dec-20126.6 KiB

AUTHORS29-Dec-20122.1 KiB

autogen29-Dec-2012821

ChangeLog29-Dec-2012167

config/29-Dec-20124 KiB

config.options.columbia29-Dec-20121.3 KiB

config.options.example29-Dec-20122.8 KiB

config.options.irg29-Dec-20121.7 KiB

configure.ac29-Dec-201223.9 KiB

COPYING29-Dec-201214.8 KiB

docs/07-Feb-20124 KiB

INSTALLGUIDE29-Dec-201211.6 KiB

m4/29-Dec-20124 KiB

Makefile.am29-Dec-20127.2 KiB

NEWS29-Dec-201226 KiB

packaging/07-Feb-20124 KiB

papers/07-Feb-20124 KiB

README29-Dec-201214.3 KiB

README.md29-Dec-20121.2 KiB

scripts/29-Dec-20124 KiB

src/29-Dec-20124 KiB

thirdparty/29-Dec-20124 KiB

README

1************************************************************************
21. INTRODUCTION
3
4The NASA Vision Workbench is a modular, extensible, cross-platform
5computer vision software framework written in C++.  It was designed to
6support a variety of space exploration tasks, including automated
7science and engineering analysis, robot perception, and 2D/3D
8environment reconstruction, though it can also serve as a
9general-purpose image processing and machine vision framework in other
10contexts as well.
11
12This package is composed of several modules each of which provides a
13separate C++ library.  The core library provides the basic image and
14pixel data types as well as a range of fundamental image processing
15operations.  The other modules provided in this release are:
16
17 * Math: geometric, numeric, and other mathematical types and functions
18 * GPU: accelerated image processing using commodity graphics hardware
19 * HDR: creating, processing, and compressing high dynamic range images
20 * InterestPoint: Detecting, tracking, and matching interest points
21 * Mosaic: compositing, blending, and manipulating 2D image mosaics
22 * Camera: camera models and related types and functions
23 * Cartography: tools for manipulating geospatially-referenced images
24
25Each of these modules and their dependencies are discussed in greater
26detail in section 3, "LIBRARY STRUCTURE".
27
28************************************************************************
292. LICENSE (see COPYING for the full text)
30
31A. Copyright and License Summary
32
33Copyright (C) 2009 United States Government as represented by the
34Administrator of the National Aeronautics and Space Administration
35(NASA).  All Rights Reserved.
36
37This software is distributed under the NASA Open Source Agreement
38(NOSA), version 1.3.  The NOSA has been approved by the Open Source
39Initiative.  See the file "COPYING" at the top of the distribution
40directory tree for the complete NOSA document.
41
42THE SUBJECT SOFTWARE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY OF ANY
43KIND, EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT
44LIMITED TO, ANY WARRANTY THAT THE SUBJECT SOFTWARE WILL CONFORM TO
45SPECIFICATIONS, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR
46A PARTICULAR PURPOSE, OR FREEDOM FROM INFRINGEMENT, ANY WARRANTY THAT
47THE SUBJECT SOFTWARE WILL BE ERROR FREE, OR ANY WARRANTY THAT
48DOCUMENTATION, IF PROVIDED, WILL CONFORM TO THE SUBJECT SOFTWARE.
49
50B. Third-Party Libraries
51
52This distribution includes some bundled third-party software as a
53convenience to the user.  This software, located in the "thirdparty/"
54directory, is not covered by the above-mentioned distribution
55agreement or copyright.  See the included documentation for detailed
56copyright and license information for any third-party software.  In
57addition, various pieces of the Vision Workbench depend on additional
58third-party libraries that the user is expected to have installed.
59The specific dependencies of each component of the Vision Workbench
60are discussed section 3, "LIBRARY STRUCTURE", and information of where
61to obtain non-bundled third-party libraries is provided in section 4,
62"INSTALLATION".
63
64************************************************************************
653. LIBRARY STRUCTURE
66
67The Vision Workbench software is located in the directory "src/vw/"
68and consists of a core library and several optional libraries or
69"modules".  Each module is contained in a subdirectory with the name
70name as the module.
71
72A. The Main Vision Workbench Library
73
74At the center of the Vision Workbench are three modules that are
75in fact linked together to form a single fundamental library.
76
77i. The "Core/" module provides fundamental services that are not
78specific to image processing, such as C++ exception types and type
79computation classes.
80
81ii. The "Image/" module provides the pixel and image types and
82functions that form the heart of the Vision Workbench, including
83support for various color spaces, filtering operations, and other
84image processing primitives.
85
86iii. The "FileIO/" module contains routines to support reading and
87writing images from and to disk in a variety of file formats.
88
89The only required dependency of the Vision Workbench core is the Boost
90C++ libraries, which provide a variety of low-level C++ library
91servies.  (These are actually many libraries by different authors
92released under a common license, but they are generally distributed as
93a package and we will treat them that way for simplicity.)  The file
94I/O module has a number of optional dependencies, each providing
95support for one or more image file formats.  Specifically these are:
96libpng for PNG files, libjpeg for JPEG/JFIF files, libtiff for TIFF
97files, NetPBM for PBM/PGM/etc. files, and OpenEXR for EXR files.
98
99B. Math Module
100
101This module provides a variety of mathematical data types and
102algorithms.  It is centered around fundamental vector, matrix, and
103quaternion data types which support the usual range of mathematical
104operations.  On top of that foundation there are higher-level types
105and algorithms for geometric computation, linear algebra,
106optimization, and statistics, and so forth.
107
108The linear algebra numerical algorithms rely on the standard low-level
109routines provided by LAPACK (Linear Algebra Package) and BLAS (Basic
110Linear Algebra Subprograms).  Many computers (e.g. those running OS X)
111come with optimized implementations of LAPACK and BLAS, in which case
112you can (and probably should) just use those.  To support other
113platforms we provide public-domain implementations automatically
114translated from the original Fortran and taken from the online Netlib
115repository.
116
117C. GPU Module
118
119Most modern graphics hardware includes a general-purpose graphics
120processing unit (GPU), and this module provides an interface to take
121advantage of that high-performance hardware for a variety of basic
122image-processing operations.  Under Linux it requires that you have
123installed the OpenGL interface library GLEW.  It can optionally also
124take advantage of the NVIDIA CG library, which provides an alternative
125low-level framework which may be preferable on some graphics hardware.
126
127D. HDR Module
128
129While the core Vision Workbench library supports working with high
130dynamic range (HDR) image data directly, most input and output devices
131(e.g. digital cameras and displays) only support a limited dynamic range.
132This module provides tools for interfacing between the two worlds, by
133generating HDR images from collections of ordinary images as well as
134providing several methods to compress HDR images for display on ordinary
135output devices.
136
137E. InterestPoint Module
138
139Interest points are points in an image that can be reliably detected and
140tracked, such as corners or peaks.  This module provides tools for
141locating interest points in images in a variety of ways.  It can also
142generate local descriptors for those points using several methods which
143can then be used to locate corresponding points in sets of images.
144
145F. Mosaic Module
146
147The Mosaic module provides tools for working with large images
148assembled from many smaller images, such as panoramas or aerial maps.
149It includes support for assembling source images into a mosaic,
150blending the images in the mosaic to create a single large image, and
151dicing the extremely large images that result into better formats for
152visualization.
153
154G. Camera Module
155
156The Camera module provides a variety of data types and tools for
157working with camera models and camera data.  Most notably it includes
158support for a variety of standard camera geometries, the ability to
159transform images between camera models, and the ability to interpret
160camera data stored in the EXIF headers of image files generated by
161digital cameras.
162
163H. Cartography Module
164
165The Cartography module provides a variety of 2D and 3D mapping
166capabilities.  It allows you to georeference an image, specifying its
167projection, position within the projected space, and altitude
168reference (or "datum"), and it supports reprojecting images into the
169desired projection.  It requires the PROJ.4 cartographic projection
170library, and also optionally depends on the GDAL library which
171provides support for a variety of GIS file formats.
172
173I. Testing Frameworks
174
175Each module includes a collection of tests located in that module's
176"tests/" subdirectory.  You can use these tests to confirm that the
177library is installed and working properly on your system.  To do this,
178simply run "make check" after building the library.  Please report any
179errors you encounter, using the contact information at the bottom of
180this file.  Note that while the tests do currently exercise a
181significant portion of the library, they are not yet fully exhaustive.
182
183************************************************************************
1844. INSTALLATION AND USE
185
186A. Obtaining the Software
187
188If you are reading this text then presumably you have a copy of
189the software.  However, you can obtain the most recent version from
190
191  http://ti.arc.nasa.gov/visionworkbench
192
193Before attempting to configure, build or install the Vision Workbench
194you should obtain and install any prerequisite libraries that you
195need.  The only absolute requirement is the Boost.  The others are
196either required to build a specific module, or will enable a
197particular feature if available.  A complete list of dependencies
198is shown in the table below, where each library is noted as being
199either a required or optional dependency of one or modules.  All of
200these libraries are distributed under some variation on the themes
201of the MIT and BSD licenses.  See each individual library's
202documentation for details.
203
204+---------+--------------------+------------------------------------+
205| Library | Relevant Modules   | Source Website                     |
206+---------+--------------------+------------------------------------+
207| Boost   | Core, etc. (req.)  | http://www.boost.org/              |
208| PROJ.4  | Cartography (req.) | http://www.remotesensing.org/proj/ |
209| GDAL    | Cartography (opt.) | http://www.remotesensing.org/gdal/ |
210| GLEW    | GPU (req.)         | http://glew.sourceforge.net/       |
211| CG      | GPU (opt.)         | http://developer.nvidia.com/       |
212| PNG     | FileIO (opt.)      | http://www.libpng.org/             |
213| JPEG    | FileIO (opt.)      | http://www.ijg.org/                |
214| TIFF    | FileIO (opt.)      | http://www.libtiff.org/            |
215| OpenEXR | FileIO (opt.)      | http://www.openexr.com/            |
216+---------+--------------------+------------------------------------+
217
218In addition, the some Vision Workbench modules require other, lower
219level modules to be built.  The internal Vision Workbench dependency
220table appears below.
221
222+------+--------+-------------+
223| HDR  | Mosaic | Cartography |   Application-specific Toolkits
224+------+--------+-------------+
225+---------------+-------------+
226|    FileIO     |    Camera   |   High-level Primatives
227+---------------+-------------+
228+---------------+-------------+
229|    Image      |    Math     |   Low-level image processing/Linear Algrebra
230+---------------+-------------+
231+-----------------------------+
232|             Core            |   Basic Programming Infrastructure
233+-----------------------------+
234
235
236B. Building and Installing
237
238Once you have obtained and installed all of the prerequisite software
239the process of building the Vision Workbench itself is generally
240straightforward.  There are four steps:
241
242i. Configure the library.  This is usually as simple as running the
243"./configure" script from within the root Vision Workbench package
244directory.
245
246ii. Build the library by running "make".
247
248iii. Run the tests by running "make check".
249
250iv. Install the library by running "make install".
251
252While this simple sequence will suffice for most users, the configure
253script has many options that you can use to adjust various properties,
254such as compiler optimization flags or the search paths used to find
255required libraries.  See the "INSTALL" file in this directory for more
256detailed information.
257
258C. Using the Library
259
260When you install the library it will place files into three
261subdirectories in the installation location.  The header files which
262you will need to develop software using the library are located in the
263"include/" subdirectory.  The compiled libraries, which you will need
264to link your software against, are located in the "lib/" subdirectory.
265You will need to configure your software development environment as
266appropriate to locate these files.  Finally, a number of simple
267command-line tools are provided in the "bin/" directory.  These are
268intended primarily as demo applications, but many of them are in fact
269useful in their own right.  See the documentation for a complete list
270of the tools.
271
272************************************************************************
2735. DOCUMENTATION
274
275The primary source of documentation is the Vision Workbook, which is
276provided in source form along with this distribution.  It includes a
277gentle introduction to using the core image processing routines, as
278well as documentation for each of the high level Vision Workbench
279modules.  A copy of this document in PDF format should be available
280from wherever you obtained this package.  The original source for this
281document can be found in "docs/workbook" and it can be built by
282running "make workbook".  This operation requires the latex typesetting
283package.
284
285************************************************************************
2866. CONTACTS & CREDITS
287
288A. Mailing List
289
290All bugs, feature requests, and general discussion should be sent to
291the Vision Workbench user mailing list:
292
293  vision-workbench@lists.nasa.gov
294
295To subscribe to this list, send an empty email message with the subject
296'subscribe' (without the quotes) to
297
298  vision-workbench-request@lists.nasa.gov
299
300To contact the lead developers and project manager directly, send mail
301to:
302
303  vision-workbench-owner@lists.nasa.gov
304
305Please do NOT use this second list for technical inquiries, which
306should all be sent to the main vision-workbench list above.
307
308B. Credits
309
310The Vision Workbench was developed within the Autonomous Systems and
311Robotics area of the Inteligent Systems Division at NASA's Ames
312Research Center.  It leverages the Intelligent Robotics Group's (IRG)
313extensive experience developing surface reconstruction and tools for
314planetary exploration---e.g. the Mars Pathfinder and Mars Exploration
315Rover missions---and rover autonomy.  It has also been developed in
316collaboration with the Adaptive Control and Evolvable Systems (ACES)
317group, and draws on their experience developing computer vision
318techniques for autonomous vehicle control systems.
319
320See the AUTHORS file for a complete list of developers.
321

README.md

1# Contributing to Vision Workbench
2
3## Links
4- [Project Homepage][home]
5- [Code Repository][repo]
6- [Bug Tracker][bugs]
7
8## How to submit patches
9One or more of:
10
11- [Fork the code](http://help.github.com/forking/) on GitHub and send a [pull request](http://github.com/guides/pull-requests).
12- File them on the [bug tracker][bugs]
13- Send them to the [mailing list][list]
14
15If your contribution is significant, you may be asked to sign a contributor agreement, either as an [individual][clai] or as a [corporation][clac].
16
17## Mailing List
18- Subscription required; Send an empty email message with the subject 'subscribe' (without the quotes) to [vision-workbench-request@lists.nasa.gov][listr].
19- Send your messages to [vision-workbench@lists.nasa.gov][list].
20
21[home]: http://ti.arc.nasa.gov/projects/visionworkbench
22[repo]: http://github.com/visionworkbench/visionworkbench
23[bugs]: http://github.com/visionworkbench/visionworkbench/issues
24[list]: mailto:vision-workbench@lists.nasa.gov
25[listr]: mailto:vision-workbench-request@lists.nasa.gov
26[clac]: http://ti.arc.nasa.gov/m/project/nasa-vision-workbench/VW-CLA-Corp.pdf
27[clai]: http://ti.arc.nasa.gov/m/project/nasa-vision-workbench/VW-CLA-Individual.pdf
28