skillfed

harvesters

Image Acquisition Library for GenICam-based Machine Vision System

harvesters v1.4.3 97.3K downloads/30d#13,157 on PyPI610
Permissive license Apache Software License V2.0 Active released

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 harvesters

uv

uv add harvesters

poetry

poetry add harvesters

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIX

Tags

genicam image acquisitiongentl producer pythonmachine vision camera controlgeneric image capture libraryindustrial camera interface
computer-visionhardware-interfaceimage-acquisition

More Scientific/Engineering packages