harvesters
Image Acquisition Library for GenICam-based Machine Vision System
What it is and what it does
Harvester is a Python image acquisition library designed to work with GenICam-compliant cameras and GenTL Producers—standardized interfaces that abstract away transport-layer details (USB, GigE, etc.). It lets you load multiple GenTL Producers in a single script, discover available devices, and manipulate camera settings through GenICam feature nodes without worrying about the underlying protocol. The library delivers acquired images as buffers containing numpy-compatible data, making it straightforward to feed images into downstream processing pipelines.
The core workflow involves instantiating a Harvester object, loading one or more GenTL Producer libraries (.cti files), discovering connected devices, creating an ImageAcquirer for a specific device, configuring camera parameters (resolution, pixel format, etc.) through the remote device's node map, and then fetching image buffers in a loop. Buffers expose image components as numpy arrays, so you can immediately reshape and analyze them without additional conversion steps.
Use it for:
- Integrate multiple industrial cameras over different transports (USB, GigE, CoaXPress) into a single Python application without transport-specific code.
- Build machine vision inspection systems that configure camera parameters dynamically and stream images to OpenCV or scikit-image for real-time processing.
- Prototype computer vision workflows in Jupyter notebooks where you can acquire images, visualize them with Matplotlib, and iterate on processing logic.
- Develop headless image acquisition daemons that capture frames from GenICam devices and write them to disk or a message queue for downstream analysis.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Harvester simplifies image acquisition from GenICam-compliant cameras by wrapping GenTL Producers and GenICam feature nodes, letting you load multiple transport layers and configure devices in a single Python script.
Yes. Harvester is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive license. Install it if you need to acquire images from GenICam-compliant cameras—it abstracts away transport-layer complexity and integrates naturally with numpy and standard Python image processing tools. Skip it only if your cameras use proprietary (non-GenICam) APIs or if you need a GUI (use Harvester GUI for that instead).
Install
harvesters on PyPI
pip
pip install harvestersuv
uv add harvesterspoetry
poetry add harvestersInstalling harvesters
Before you install
Low install friction with only two runtime dependencies (genicam and numpy). The package is actively maintained with a recent commit in 2026 and has been in production use since 2018.
License in practice
Licensed under Apache License 2.0 (permissive), allowing free use, modification, and distribution for personal, internal, or commercial purposes without restriction.
Quickstart
from harvesters.core import Harvester
import numpy as np
h = Harvester()
h.add_file('/path/to/GenTL/Producer.cti')
h.update()
ia = h.create(0)
ia.start()
with ia.fetch() as buffer:
data = buffer.payload.components[0].data
ia.stop()
Requires a GenTL Producer (.cti file) for your camera hardware; without it, the library cannot communicate with devices.
Verify before relying
- Whether the package supports Python versions beyond what the fact sheet specifies (requires_python is unspecified).
- Performance characteristics when managing many GenTL Producers or high-frequency image streams.
- Compatibility with specific camera vendors or transport layer types beyond the GenICam standard.
Package facts
| License | Apache Software License V2.0 (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — genicam, numpy |
| Maintenance | actively maintained — 820 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 97,323/month — #13,157 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: harvesters-1.4.3-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
genicamProvides Python bindings to GenICam, enabling…
unclear · top 15,000 on PyPI
pypylonpypylon is the official Python binding for…
unclear · top 15,000 on PyPI
pygrabberCapture photos and video from Windows cameras…
permissive · top 15,000 on PyPI
AcquisitionAcquisition implements a mechanism for Python…
unclear · top 15,000 on PyPI
deepsearch-glmExtracts entities, relations, and linguistic…
permissive · top 15,000 on PyPI
pytapoPyTapo is a Python library that communicates…
permissive · top 15,000 on PyPI
acquireAcquire gathers forensic artifacts from disk…
agpl · top 15,000 on PyPI
gravityGravity manages multiple Galaxy server…
permissive · top 15,000 on PyPI
easyocrEasyOCR performs optical character recognition…
permissive · top 5,000 on PyPI
vit-pytorchProvides PyTorch implementations of Vision…
permissive · top 15,000 on PyPI