numpyHDR/readme.md

62 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# numpyHDR
* Micro Library for HDR image creation using the Mertens Fusion Alghoritm
* Optional Raspicam integration with picamera2 lib
* CLI Application "makehdr.py"
* Processing time on raspi zero ca 15 min with full res 12MP files.
## Intention
- numpy and PIL, picamera2 for Raspicam funtionality.
- Whenever dependencies of other bigger image librarys aren´t satisfyable.
- 32-bit armv6 or oudated Kernels etc.
## Function
*Use makehdr.py CLI app for testing before implementation*
- Captures an exposure bracket stack from the raspicam as fast as possible
- Alternatively from image sequences form file
- Either direct processing or save files in between
- Uses a conversion of the Mertens Fusion alghoritm
- Stretches Information to the full spectrum like Contrast or compression
- Lifts the shadows softly with an envelope.
- Clips to Image range and saves via PIL
## Setup
- Download and install dependencies from requirements.txt into env
- `pip install -r requirements.txt`
- Install picamera2 and libcamera
- `pip install picamera2`
- `pip install libcamera`
## Usage
- Start makehdr.py
- `python3 makehdr.py`
- Follow commandline instructions
- Be patient on Raspi zero
- Example on how to use the library can be found in makehdr.py
## Using the library
*Import numpyHDR modules*
- `import file_utility as file`
- `import numpyHDR as hdr`
- `import picamburst as pcb`
*Get image arrays from raspicam*
- `stack = pcb.get_exposure_stack()`
*OR*
*Get image arrays from files*
- `stack = file.openImageList(path_list, True)`
*Process HDR with mertens fusion and post effects*
- `result = hdr.process(stack, 1, 1, 1, True)`
*Save Result to File*
- The filename gets extended by ".jpg" and "_hdr" automatically
- `file = file.saveResultToFile(result, 'hdr/result', 75)`