Skip to content

LemonStudioZeus/pfstools

 
 

Repository files navigation

pfstools 2.0.4

This is a minor release, which fixes several issues in Octave scripts and functions. 

pfstools 2.0.4 <15.07.2015>
	* fixed: added installation of octave-based scripts: pfsoctavelum pfsoctavergb pfsstat
	* fixed: libraries installed in lib64 if needed (thanks to Orion for the patch)
	* fixed: added "so" version to the pfs.so library (thanks to Orion for the patch)
	* fixed: Replaced depreciated OctaveMap for compatibility with octave 4.0.0

pfstools 2.0.0 - Release Notes

This version contains two major changes as compared with 1.9.x: 1) pfstools now include all "tools" from pfstmo and pfscalibration in one package so there is no need to install and compile them separately, which should save time; and 2) the build system has been changed from automake to cmake. This should make it easier to compile pfstools on different platforms. 

This version adds also a new tone-mapping operator (mai11) and a number of bug fixes and minor improvements. Refer to the change log below. 

pfstools 2.0.0 <06.12.2014>
	* added: Starting from pfstools 2.0.0, pfstmo and pfscalibration are included in the pfstools source package
	* changed: support for automake dropped in favour of cmake
	* fixed: pfsinpfm and pfsoutpfm now handle both big and little endian files correctly
	* fixed: pfsinpfm and pfsoutpfm do not flip images (top-bottom)
	* added: new tone-mapping operator: pfstmo_mai11
	* changed: Thoroughly updated README files
	* fixed: several issues with octave scripts (compatibility with newer Octave releases), in particular pfs_write_rgb


pfstools - README 
-------------------------------------------------------------------     

For issues related to Mac OSX installation - see README.OSX

For issues related to Windows installation - see README.Cygwin

For specific notes on Matlab installation - see README.matlab

For compilation with Visual Studio (experimental) - see README.VisualStudio

pfstools is a set of command line (and two GUI) programs for reading,
writing, manipulating and viewing high-dynamic range (HDR) images and
video frames. All programs in the package exchange data using unix
pipes and a simple generic HDR image format (pfs). The concept of the
pfstools is similar to netpbm package for low-dynamic range images.

pfstools offers also a good integration with GNU Octave and
matlab. pfstools can serve as a matlab or Octave toolbox for reading
and writing HDR images.

pfs in not just another format for storing HDR images. It is more an attempt to 
integrate the existing HDR image formats by providing a simple data format that can 
be used to exchange data between applications. 

If you use the software for your research work, please consider citing
the paper:

Rafal Mantiuk, Grzegorz Krawczyk, Radoslaw Mantiuk and Hans-Peter Seidel.
High Dynamic Range Imaging Pipeline: Perception-motivated Representation
of Visual Content.
In: Proc. of Human Vision and Electronic Imaging XII. 649212.

@inproceedings{mantiuk:2007:hvei,
 author = {Mantiuk, Rafa{\l} and Krawczyk, Grzegorz and Mantiuk, Rados{\l}aw and Seidel, Hans-Peter},
 editor = {Rogowitz, Bernice E. and Pappas, Thrasyvoulos N. and Daly, Scott J.},
 title = {High Dynamic Range Imaging Pipeline: Perception-motivated Representation of Visual Content},
 booktitle = {Human Vision and Electronic Imaging XII},
 publisher = {SPIE},
 year = {2007},
 volume = {6492},
 number = {649212},
 series = {Proceedings of SPIE},
 address = {San Jose, USA},
 month = {February},
}

The paper is an introduction to both pfstools and HDR imaging in
general. It can be downloaded from:

http://pfstools.sourceforge.net/papers/mantiuk07hdr_pipeline.pdf
        
1. Compilation
-------------------------------------------------------------------
Is is strongly recommended to compile into an out-of-source directory:

cd <pfstools_dir>
mkdir build
cd build
cmake ../
make 

If the compilation fails because of a missing library, you can disable the offending component by setting WITH_<component_name> to false. For example:

cmake -DWITH_MATLAB=false ../

to disable matlab support. 

If you encounter any problems during compilation, run the make again with the option:

make VERBOSE=1

or, if you use nmake on Windows:

nmake /S

and report the problem with the complete error message to the google discussion group:

https://groups.google.com/forum/#!forum/pfstools

2. Directory Layout
-------------------------------------------------------------------

doc - documentation
src - all sources go there
  pfs          - pfs library (used by all tools)
  fileformat   - readers and writters for various file formats
  filter       - a range of "filters" from resize to changing color space
  octave       - GNU Octave scripts and libraries
  matlab       - matlab mex sources and functions
  pfsview      - qt application for viewing hdr images and other data
                 that can be stored in the pfs stream
  pfsglview    - similar as pfsview, but uses OpenGL & GLUT instead of Qt
  tmo          - contains tone-mapping operators (formerly pfstmo package)
  camera       - contains HDR merging and camera calibration tools
                 (formerly pfscalibration)
  hdrhtml      - makes HTML5 web-pages with viewable HDR images
  getopt       - used on Windows to compile using Visual Studio
  debian       - scripts to create Debian distro package. The scripts has not been updated and currently is not 
                 working.


3. Dependencies
-------------------------------------------------------------------

pfstools relies on a large number of libraries and other dependencies. However, the build script was designed to succeed even if some dependencies are missing. In that case, the tools that rely on those dependencies will not be compiled. If building with a certain dependency causes problems, it is possible to manually switch off that component by passing -DWITH_??=false to cmake.

Note that the development packages must be installed for all dependencies. They usually have '-dev' suffix. 

Below is the list of all dependencies requires for pfstools. They are more or less given on an order of importance.

OpenEXR 
	CMake switch: WITH_OpenEXR
	Tools: pfsinexr, pfsoutexr	
	
ImageMagick
	CMake switch: WITH_ImageMagick
	Tools: pfsinimgmagick, pfsoutimgmagick
	Used to read/write most LDR files. Required for 16-bit file support. "pfsin"/"pfsout" will use NetPBM if ImageMagick is not available
	
NetPBM
	CMake switch: WITH_NetPBM
	Tools: pfsinppm, pfsoutppm, (pfsindcraw)
	Alternative method of reading/writing LDR images. Note that this package is also required for pfsindcraw as ImageMagick cannot handle files read from unix pipes.

TIFF	
	CMake switch: WITH_TIFF
	Tools: pfsintiff, pfsouttiff
	TIFF images can also be read with pfsinimgmagick. This is a custom reader/writer, which supports LogLuv TIFF HDR image format.

QT 4
	CMake switch: WITH_QT
	Tools: pfsview
	"pfsview" is a primary HDR image viewer.
	If Qt library is not found, you need to specify the path to qmake exacutable

		cmake -D "QT_QMAKE_EXECUTABLE=/usr/bin/qmake" ../	

OpenGL, GLUT (or FreeGLUT)
	CMake switch: WITH_pfsglview
	Tools: pfsglview
	pfsglview is a "backup" or alternative viewer. It is missing some features of pfsview, but offers faster zooming.

Matlab (mex)
	CMake switch: WITH_MATLAB
	Tools: all matlab scripts in src/matlab
	Note that you need to set matlab path to <install_dir>/share/pfstools/matlab

Octave	
	CMake switch: WITH_Octave
	Tools: All Octave scripts in src/octave
	There are still some unresolved issues running Octave scripts under cygwin. 
	
FFTW
	CMake switch: WITH_FFTW
	Tools: acceleration in pfstmo_durand02 (the TMO will be *very* slow otherwise)

GSL
	CMake switch: WITH_GSL
	Tools: pfstmo_mantiuk08
	The GSL math library is required for this TMO.

OpenCV	
	CMake switch: WITH_OpenCV
	Tools: pfsalign	
	Note that pfsalign requires SURF features, which are available on "nonfree" part of the library. Since part of the library is currently not included in most Linux distributions, so you will need to compile OpenCV from sources.

dcraw
	CMake switch: none
	Tools: pfsindcraw
	Download code from: http://www.cybercom.net/~dcoffin/dcraw/

3. Documentation
-------------------------------------------------------------------

First check the list of frequently asked questions in
./doc/faq.txt. Then browse relevant manual pages, which accompany each
program. The documentation for the pfs library API can be generated
with DoxyGen or found in the header files. If you want to include
reading or writing of pfs streams in your applications, refer to
./doc/pfs_format_spec.pdf.

About

pfstools for HDR images

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 77.1%
  • Roff 9.3%
  • C 4.8%
  • CMake 3.4%
  • MATLAB 2.3%
  • HTML 1.7%
  • Other 1.4%