- Notifications
You must be signed in to change notification settings - Fork0
Implementation of a CVPR2020 paper using Plenpy for the 15-663 Computational Photography course at Carnegie Mellon University
License
themathgeek13/plenpy
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This final project was done as part of the 15-663 Fall 2020 course on Computational Photography taught by Prof. Ioannis Gkioulekas at Carnegie Mellon University. This project implements the paperThe ”Vertigo Effect” on Your Smartphone: Dolly zoom via single shot view synthesis. It also extends this by using light field cameras, with the help of the plenpy library. The results and implementation details are provided in the PDF.
The rest of this README is retained as is from plenpy.
This is a Python package to calibrate, process and analyse(hyperspectral) light field images as well as (hyper)spectral imagesfrom either real cameras (e.g. Lytro) or synthetic/rendered images.
Note: The package is still undergoing API altering changes with each minor release.
This software is licensed under the GNU GPLv3 license (see below).
If you use this software in your scientific research, please citeour paper:
@Article{Schambach2020, author = {Schambach, Maximilian and Puente León, Fernando}, title = {Microlens array grid estimation, light field decoding, and calibration}, journal = {IEEE Transactions on Computational Imaging}, volume = {6}, pages = {591--603}, year = {2020}, doi = {10.1109/TCI.2020.2964257},}
Have a look at ourUser Documentationfor notes on usage and some examples to get you started.
For a quick tryout of plenpy, you can use our latestDocker Image.
You can installplenpy
directly from PyPi viapip
:
$ pip install plenpy
That's it!
Plenpy requirespython >= 3.6
as it relies on Python syntax that hasbeen introduced in Python 3.6 such as f-strings or type hinting.Plenpy is currently tested on Python 3.6, 3.7, and 3.8.
The package dependencies are resolved automatically upon installation usingpip
.For development and testing dependencies, see therequirements.txt
file.The package dependencies are stated insetup.py
.
If you want to install from source, the installation usingmake
is straightforward and installsplenpy
and its runtime dependencies automatically.Ifmake
is not available, or if you are running Windows, see below.
Caution: A system wide installation usingsudo
is easy and possible butdiscouraged. Installing in a environment is recommended.
To installplenpy
, first clone the project's git repository toa location of your desire and change directory to the project:
$ cd <path-to-plenpy>/$ git clone git@gitlab.com:iiit-public/plenpy.git$ cd plenpy
Then, install the library via:
$ make
Or, to have an editable install of plenpy, using
$ make editable
If no errors occur, you can check if the installation was successfulby running the unit tests:
$ make test
That's it! The package should now be available.
Ifmake
is not available on your system, the installation viapip
is also straightforward. Instead of invokingmake
,install by calling (e.g. from the Anaconda prompt)
$ pip install -r requirements.txt .
Please note the.
at the end, referring to the current folder<path-to-plenpy>/plenpy
.
You can manually run the tests usingpytest
:
$ pytest <path-to-plenpy>/test/
Uninstallplenpy
using
$ pip uninstall plenpy
The documentation can be foundhere.
You can also build the documentation yourself:
The documentation is build usingSphinx.To install all necessary dependencies for the documentation, run
$ cd <path-to-plenpyr>$ make$ pip install -r docs/requirements.txt$ cd docs$ sphinx-apidoc -f -o ./ ../plenpy/$ make html
This will create the fullplenpy
documentation in thedocs/_build/html
folder.
If you are interested in contributing toplenpy
, feel free to create an issue orfork the project and submit a merge request. As this project is still undergoingrestructuring and extension, help is always welcome!
Please stick to thePEP 8 Python coding styleguide.
The docstring coding style of the reStructuredText follows thegoogledoc style.
Copyright (C) 2018-2020 The Plenpy Authors
This program is free software: you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation, either version 3 of the License, or(at your option) any later version.
This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU General Public License for more details.
You should have received a copy of the GNU General Public Licensealong with this program. If not, seehttps://www.gnu.org/licenses/.