PhoToRectify
Notice: Only tested for Hasselblad L1D-20c and Pentax K-1 with HD Pentax-D FA 28-105mm f/3.5-5.6 ED DC WR.
Undistort images with the Lensfun library and OpenCV. Multiprocessing is supported to speed up the rectification.
- Allowed input file formats: BMP, JPEG, JPEG 2000, PNG, PIF, SUN RASTERS, TIFF
- Output file formats: JPEG, TIFF
- Currently supported and used compressions:
- JPEG with Quality 97
- TIFF with JPEG-Compression
- Custom meta data (optional arguments, use quotes if they contain spaces)
Installation
Installation into a virtual environment is recommended, because PhoToRectify depends on some other packages.
Install with: pip install photorectify
Update with: pip install --upgrade photorectify
Requirements
-
Python 3.7+
-
exiftool 10.38+ (older versions not tested; install it with your distribution’s package manager)
-
PyExifTool has been modified and is shipped with photorectify’s source code (removed
-noptional argument for proper lens detection with Lensfun + added methodcopy_tags()) -
For development: poetry (do not skip the installation of the development dependencies!)
Alternative remapping method for undistort()
Instead of using Pillow, you can also use OpenCV for remapping.
self.img_bgr_undist = lensfunpy.util.remap(
self.img_blob_bgr,
undistorted_coords)
Examples
Rectify one photo in a directory (rectifed photo are stored in the same directory as the input file):
photorectify Sampledata/DJI_0051.JPG
Rectify all photos in a directory:
photorectify Sampledata/
Rectify into a custom output directory:
photorectify Sampledata/ -o Sampledata/Rectified
Append custom suffix to rectified photos (automatically adds an underscore):
photorectify Sampledata/ -s rect
Specify meta data if photo hasn’t any EXIF tags:
photorectify Sampledata/DJI_0051.JPG \
--model L1D-20c \
--make Hasselblad \
--FLength 10.26 \
--FNumber 4.5
Get version:
photorectify --version
Development
More cameras and lenses can be supported by
adding them to lensfun-db.xml.
See the Lensfun database.
Running tests:
poetry run pytest -q tests/test_rectification.py
Contribution
To help improving this python package, open an issue or create a merge request.
Metadata
Release files for photorectify 1.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| PhoToRectify-1.1.2.tar.gz | 13.9 kB | Without provenance | Details for PhoToRectify-1.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| PhoToRectify-1.1.2-py3-none-any.whl | Python 3 | none | any | Details for PhoToRectify-1.1.2-py3-none-any.whl |
Total release size: 27.5 kB
Release files / PhoToRectify-1.1.2.tar.gz
| Download URL | PhoToRectify-1.1.2.tar.gz |
|---|---|
| Size | 13.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
34a46751faee6ce032ca993a0025e6c17d3a84aed664fe2b17783e80bcd3f410
|
|
BLAKE2b-256 checksum How to use checksums |
592bbf7fcf1eaa5bd202242bde9b6f34213dc6e6cfbecff5f5c4a95c3a4bddbe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.6 CPython/3.8.9 Windows/10
|
Release files / PhoToRectify-1.1.2-py3-none-any.whl
| Download URL | PhoToRectify-1.1.2-py3-none-any.whl |
|---|---|
| Size | 13.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d080635428aad21104eb1abc10d4133cabc42f80b7bb652d5bf158c0eec0e594
|
|
BLAKE2b-256 checksum How to use checksums |
89d7f38d262ad159a8856f6dd1b6ba79710647d4cc45f35d6f621ad5c93a0919
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.6 CPython/3.8.9 Windows/10
|
Security for photorectify 1.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.