Some simple programs for capturing images from Alkeria Necta line scan camera.
- Alkeria Necta USB3 camera with proprietary binary drivers version 1.11. If you are using Arch Linux, you can install them using the PKGBUILD in the
arch-linuxdirectory. If on Ubuntu, just install using the deb file that you download from the Alkeria Download Area. - imgui 1.91.9 and above
- SDL2
The raw speed-constraint editor displays consecutive Bayer-binned capture chunks and autosaves circle, equal-width, and sequence-cut annotations beside the raw data:
uv run python python/speed_constraints.py /path/to/captureIt opens 16 chunks at a time by default. A bounded-memory navigator is built
at the bottom by sampling each raw chunk one at a time; click it to center the
detailed sliding window. The navigator wraps into multiple rows as needed, and
its divider can be dragged vertically. Use Left/Right to slide by one chunk,
Ctrl+mouse-wheel to zoom, F to enable persistent fitting, F8 to hide the
navigator, and F9 to hide the annotation panel. Fit mode is enabled initially
and refits whenever the window is resized; manual zoom or 100% mode disables
it. The Rotate 180° checkbox rotates both detailed and
navigator views without changing saved coordinates; it starts checked for
pre-2026 captures and unchecked for 2026-and-later captures so both camera
mounting eras appear upright. The default output is speed_constraints.json
in the capture directory; an existing file is loaded when the tool starts.
preview.py loads that file automatically. Circle and equal-width annotations
refine the correlation-derived speed spline without changing its direction,
and sequence positions replace motion-region detection and define one output
DNG/JPEG per adjacent pair. The first and last positions also bound speed
fitting: only complete correlation windows inside those bounds are eligible.
Featureless background windows are rejected as undefined unless they contain
both real horizontal structure and an absolute, distinct correlation peak, so
padded background cannot pull the manual fit. Pass --no-speed-constraints
to render with the legacy automatic behavior for comparison. Pass
--equal-length-chunks to use only the first
and last annotated positions and split that corrected output range into nearly
equal chunks smaller than OUTPUT_CHUNK_TARGET, ignoring intermediate cut
positions.
Output orientation follows the camera mounting date: captures before 2026 are
not rotated, while captures from 2026 onward are rotated 180 degrees. Override
the automatic choice with --flip-output-180 or --no-flip-output-180.