|
Packit |
1f396d |
WHAT IS IT
|
|
Packit |
1f396d |
----------
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
The goal of the Lensfun library is to provide a open source database
|
|
Packit |
1f396d |
of photographic lenses and their characteristics. In the past there
|
|
Packit |
1f396d |
was a effort in this direction (see http://www.epaperpress.com/ptlens/),
|
|
Packit |
1f396d |
but then author decided to take the commercial route and the database
|
|
Packit |
1f396d |
froze at the last public stage. This database was used as the basement
|
|
Packit |
1f396d |
on which Lensfun database grew, thanks to PTLens author which gave his
|
|
Packit |
1f396d |
permission for this, while the code was totally rewritten from scratch
|
|
Packit |
1f396d |
(and the database was converted to a totally new, XML-based format).
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
The Lensfun library not only provides a way to read the database
|
|
Packit |
1f396d |
and search for specific things in it, but also provides a set of
|
|
Packit |
1f396d |
algorithms for correcting images based on detailed knowledge of
|
|
Packit |
1f396d |
lens properties. Right now Lensfun is designed to correct
|
|
Packit |
1f396d |
distortion, transversal (also known as lateral) chromatic aberrations,
|
|
Packit |
1f396d |
and vignetting.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
The interface is defined both using C++ style and plain C.
|
|
Packit |
1f396d |
The C interface is a wrapper around the C++ classes.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
Website: http://lensfun.sourceforge.net/
|
|
Packit |
1f396d |
Sourceforge: http://sourceforge.net/projects/lensfun/
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
LICENSE
|
|
Packit |
1f396d |
-------
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
The libraries which are part of this package are licensed under the terms
|
|
Packit |
1f396d |
of the GNU Lesser General Public License, version 3. Libraries are located
|
|
Packit |
1f396d |
under the subdirectory libs/ of the source package. A copy of the license
|
|
Packit |
1f396d |
is available in the file lgpl-3.0.txt which can be found in the source
|
|
Packit |
1f396d |
archive. You can read it here: http://www.gnu.org/licenses/lgpl-3.0.html
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
The documentation files, including those autogenerated with Doxygen,
|
|
Packit |
1f396d |
are covered as well by GNU Lesser General Public License, version 3.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
Applications which are part of this package are licensed under the terms
|
|
Packit |
1f396d |
of the GNU General Public License, version 3. Applications are located
|
|
Packit |
1f396d |
under the apps/ subdirectory of the source package. A copy of the license
|
|
Packit |
1f396d |
can be found in the file gpl-3.0.txt which can be found in the source
|
|
Packit |
1f396d |
archive. You can read it here: http://www.gnu.org/licenses/gpl-3.0.html
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
Also the build system (the contents of the build/ subdirectory plus the
|
|
Packit |
1f396d |
ac.py file) is licensed under GPL v3.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
Test programs and tools are put into public domain, unless explicitly
|
|
Packit |
1f396d |
specified otherwise in the header of the source files. Test programs
|
|
Packit |
1f396d |
are located under the tests/ subdirectory, and tools are located in tools/.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
The lens database is licensed under the Creative Commons Attribution-Share
|
|
Packit |
1f396d |
Alike 3.0 license. The database is located under the data/ subdirectory
|
|
Packit |
1f396d |
of the source package. You can read it here:
|
|
Packit |
1f396d |
http://creativecommons.org/licenses/by-sa/
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
BUILD INSTRUCTIONS
|
|
Packit |
1f396d |
------------------
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
The build system is based on CMake (http://www.cmake.org/). In order to
|
|
Packit |
1f396d |
successfully configure and build the project the following tools are more
|
|
Packit |
1f396d |
or less required:
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
- CMake
|
|
Packit |
1f396d |
- GNU Make
|
|
Packit |
1f396d |
- Doxygen in order to generate the library documentation.
|
|
Packit |
1f396d |
- GLib 2.0 and later which is used for low-level I/O and XML parsing.
|
|
Packit |
1f396d |
- libpng is required to build and run test programs.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
First enter the Lensfun root folder and create a build directory.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
cd lensfun
|
|
Packit |
1f396d |
mkdir cmake_build
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
Enter the build directory and run CMake to configure your sources and create
|
|
Packit |
1f396d |
the build files
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
cd cmake_build
|
|
Packit |
1f396d |
cmake ../
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
Run make/make install as usual
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
make
|
|
Packit |
1f396d |
make install
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
The following CMake options can be set (defaults are upper case):
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
-DCMAKE_BUILD_TYPE=DEBUG|Release select debug or release build mode
|
|
Packit |
1f396d |
-DINSTALL_HELPER_SCRIPTS=off|ON install various helper scripts
|
|
Packit |
1f396d |
-DCMAKE_INSTALL_PREFIX=/USR/LOCAL install prefix
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
-DBUILD_STATIC=OFF|on build static or shared lib
|
|
Packit |
1f396d |
-DBUILD_TESTS=OFF|on build also the test programs
|
|
Packit |
1f396d |
-DBUILD_LENSTOOL=OFF|on build Lensfun reference implementation
|
|
Packit |
1f396d |
-DBUILD_FOR_SSE=off|ON build with SSE optimisation
|
|
Packit |
1f396d |
-DBUILD_FOR_SSE2=off|ON build with SSE2 optimisaiton
|
|
Packit |
1f396d |
-DBUILD_DOC=OFF|on build documentation
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
If you want to have more detailed output when running 'make' you can simply add
|
|
Packit |
1f396d |
'VERBOSE=1' to the make command line.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
You can also build packages with cmake:
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
Add -DCPACK_BINARY_DEB:BOOL=ON or -DCPACK_BINARY_RPM:BOOL=ON to the
|
|
Packit |
1f396d |
command line and then "make package". (But this is not extensively tested.)
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
Please note that running cmake again does NOT reset all options to default or
|
|
Packit |
1f396d |
reconfigure all variables. To restart with a clean configuration delete all files
|
|
Packit |
1f396d |
in your cmake_build folder.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
If you prefer setting the configuration with a GUI or want to get an extensive
|
|
Packit |
1f396d |
overview of all available settings and cache values run cmake-gui.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
DOCUMENTATION
|
|
Packit |
1f396d |
-------------
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
The end-user documentation for the library can be built by issuing the
|
|
Packit |
1f396d |
command:
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
make docs
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
Also you can read it online at any time by pointing your browser to:
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
http://lensfun.sourceforge.net/manual/
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
The documentation on the site is updated every night from Git, so it always
|
|
Packit |
1f396d |
contains the latest info on the library.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
CREDITS
|
|
Packit |
1f396d |
-------
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
Here goes a full list of people who have contributed to this library:
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
CODE:
|
|
Packit |
1f396d |
> Andrew Zabolotny <zap@homelink.ru>
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
LENS DATA:
|
|
Packit |
1f396d |
> Tom Niemann: original open-source ptlens database.
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
THANKS:
|
|
Packit |
1f396d |
> Pablo d'Angelo for the idea of a open-source lens database.
|
|
Packit |
1f396d |
>
|
|
Packit |
1f396d |
> The whole PanoTools team, for all math and knowledge I have borrowed from PanoTools:
|
|
Packit |
1f396d |
>
|
|
Packit |
1f396d |
> Helmut Dersch - The father of most (all?) open-source panorama creation tools.
|
|
Packit |
1f396d |
> Daniel M. German
|
|
Packit |
1f396d |
> Kevin Kratzke
|
|
Packit |
1f396d |
> Rik Littlefield
|
|
Packit |
1f396d |
> Fulvio Senore
|
|
Packit |
1f396d |
> Jim Watters
|
|
Packit |
1f396d |
> Thomas Rauscher
|
|
Packit |
1f396d |
> Pablo d'Angelo (thanks once more :)
|
|
Packit |
1f396d |
> Bret McKee
|
|
Packit |
1f396d |
> Robert Platt
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
Also I would like to thank the people that made valuable contributions to Lensfun:
|
|
Packit |
1f396d |
> Niels Kristian Bech Jensen
|
|
Packit |
1f396d |
> Pascal de Bruijn
|
|
Packit |
1f396d |
> Thomas Modes
|
|
Packit |
1f396d |
> Torsten Bronger
|
|
Packit |
1f396d |
|
|
Packit |
1f396d |
And of course great thanks to all the people sending profiles for the database.
|