PyQt5 wrapper for pypylon SDK for Basler camera manipulation, aimed for microfluidics and slow motion.
Project description
PylonGUY
Your best friend for high-performance camera control for Basler cameras with high-speed recording capabilities and simple GUI.
Features
- Real-time preview with adaptive grab strategy (lag-free at any FPS)
- Camera configuration with automatic adjustment to camera capabilities
- High-speed frame capture to raw frames with FFmpeg post-processing
- Configurable playback rate for slow-motion video
- Interactive ROI selection and offset controls
- Preset configurations (Default, HighSpeed, FullFrame, Microfluidics)
- Auto-apply presets on camera connection
- Waterfall mode for line-scan recording
Installation
From PyPI
pip install pylonguy
From source
git clone https://github.com/merv1n34k/pylonguy.git
cd pylonguy
pip install -e .
Requirements
- Python 3.12+
- ffmpeg in PATH (for video processing)
- Basler Pylon SDK (for camera communication)
Installing ffmpeg
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows
# Download from https://ffmpeg.org/download.html and add to PATH
Installing Pylon SDK
Download from Basler website. See pypylon known issues for platform-specific notes.
Usage
# Run the application
pylonguy
# Or with uv
uv run pylonguy
Presets
Camera presets are saved to presets.json in the current working directory. This allows you to maintain different presets for different projects by running the application from each project's folder.
How it works
The application separates capture from video encoding for maximum performance:
- Capture Phase: Frames stream from camera → memory buffer → raw files on disk
- Processing Phase: After recording stops, FFmpeg assembles raw frames into video
This allows you to specify any desired playback frame rate, e.g.:
- Camera captures at 1000 fps
- Video plays back at 24 fps
- Result: 1 second of capture = 41.7 seconds of slow-motion video
Waterfall Mode
Record single lines instead of full frames for:
- Maximum frame rates (minimal data transfer)
- Line-scan camera emulation
- Monitoring flow in microfluidic channels
Output format: .wtf (waterfall) files, convertible to PNG:
python -m pylonguy.wtf2png recording.wtf
License
Distributed under the MIT License. See LICENSE for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pylonguy-1.10.0.tar.gz.
File metadata
- Download URL: pylonguy-1.10.0.tar.gz
- Upload date:
- Size: 937.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33074c81cc612cdc8ad7e80f25675d851514e2da8e6520870e51f15c13daa975
|
|
| MD5 |
6165c4e4f8388111df5a05b4779093ff
|
|
| BLAKE2b-256 |
d77ba61ec2b6ccc71451dbe0d2b8190f4d914e8ec65788082e7eae8e280c1281
|
Provenance
The following attestation bundles were made for pylonguy-1.10.0.tar.gz:
Publisher:
publish.yml on merv1n34k/pylonguy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pylonguy-1.10.0.tar.gz -
Subject digest:
33074c81cc612cdc8ad7e80f25675d851514e2da8e6520870e51f15c13daa975 - Sigstore transparency entry: 1413085313
- Sigstore integration time:
-
Permalink:
merv1n34k/pylonguy@9314d6d973c1c39e0484eeaa08eb71f5e4fe99c8 -
Branch / Tag:
refs/tags/v1.10.0 - Owner: https://github.com/merv1n34k
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9314d6d973c1c39e0484eeaa08eb71f5e4fe99c8 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pylonguy-1.10.0-py3-none-any.whl.
File metadata
- Download URL: pylonguy-1.10.0-py3-none-any.whl
- Upload date:
- Size: 67.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5696e45e81c73f8253306a52ee8efa297d5a61c622d749a8900382e62c06de45
|
|
| MD5 |
b7d04cb3a9249bb27104f55ff23414dd
|
|
| BLAKE2b-256 |
21c4d5a645433ca694d50deea603de800fd1f405f5911fd76d0743c5af14e052
|
Provenance
The following attestation bundles were made for pylonguy-1.10.0-py3-none-any.whl:
Publisher:
publish.yml on merv1n34k/pylonguy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pylonguy-1.10.0-py3-none-any.whl -
Subject digest:
5696e45e81c73f8253306a52ee8efa297d5a61c622d749a8900382e62c06de45 - Sigstore transparency entry: 1413085415
- Sigstore integration time:
-
Permalink:
merv1n34k/pylonguy@9314d6d973c1c39e0484eeaa08eb71f5e4fe99c8 -
Branch / Tag:
refs/tags/v1.10.0 - Owner: https://github.com/merv1n34k
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9314d6d973c1c39e0484eeaa08eb71f5e4fe99c8 -
Trigger Event:
release
-
Statement type: