Custom machine vision software

We build the software that makes cameras see, and factories remember.

Encoresys designs and ships custom vision applications in Python, OpenCV and C/C++, integrates Baumer and other GigE Vision / GenICam cameras at the SDK level, and logs every inspection to SQL Server or SQLite so nothing your line does goes unrecorded.

C/C++, PythonCore languages
Baumer, GenICamCamera SDKs
SQL Server, SQLiteData logging
CAM_01 · BAUMER VCXG-32 · GigE LIVE
0FPS
0Parts inspected
0NG detected
--Avg. confidence
What we build

Four pieces, one pipeline

Most vision projects need all four. We can slot into a line you've already built, or take a part from camera selection through to the dashboard your shift supervisor checks every morning.

Software

Custom vision applications

Detection, measurement, defect classification and OCR built around your actual part geometry and tolerances — not a generic template.

PythonOpenCVC/C++
Hardware

Camera & sensor integration

SDK-level integration for Baumer and other GigE Vision / GenICam cameras — triggering, exposure control, multi-camera sync.

Baumer NEOAPIGenICamGigE Vision
Data

Logging & traceability

Every frame, measurement and pass/fail result written to a database you can query, audit and build reports on.

MS SQL ServerSQLiteREST/OPC-UA
Control

Line integration

Vision results tied into PLC/SCADA logic in real time, so a detection actually stops, sorts or flags a part on the line.

PLC I/OSCADADigital I/O triggers
Camera integration

Baumer, at the SDK level

We work directly with the Baumer NEOAPI / GenICam interface — not a screen-scraped or third-party wrapper — so you get full control over acquisition, triggering and pixel format, and a codebase you actually own.

  • Hardware and software triggering, configurable exposure and gain per inspection station
  • Multi-camera synchronization for multi-angle or multi-station lines
  • Frame acquisition piped straight into an OpenCV / NumPy processing pipeline
  • Every result — pass, fail, measurement, image reference — written to SQL on the same frame cycle
baumer_inspect.py
from neoapi import neoapi
import cv2, pyodbc

camera = neoapi.Cam()
camera.Connect("BAUMER_VCXG_32")
camera.f.ExposureTime.Set(4000)  # microseconds
camera.f.TriggerMode.SetString("On")

def inspect_frame(frame):
    gray = cv2.cvtColor(frame, cv2.COLOR_BAYER_RG2GRAY)
    edges = cv2.Canny(gray, 50, 150)
    contours, _ = cv2.findContours(
        edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    ok = len(contours) == EXPECTED_FEATURES
    return "OK" if ok else "NG", len(contours)

while True:
    img = camera.GetImage()
    frame = img.GetNPArray()
    result, feature_count = inspect_frame(frame)

    # log every cycle to SQL Server
    cursor.execute(
        "INSERT INTO inspections (ts, result, features) "
        "VALUES (?, ?, ?)",
        datetime.now(), result, feature_count)
    conn.commit()
How a project runs

Capture to alert, in five stages

This is the actual order data moves through on a running line — each stage is a real handoff, not a marketing step.

01 / Capture

Camera & trigger setup

Baumer/GigE camera selected and configured for the part, line speed and lighting.

02 / Process

Image pipeline

OpenCV / C++ pipeline built around your part's real defects and tolerances.

03 / Inspect

Decision logic

Pass/fail, measurement or classification decided against your spec, in real time.

04 / Log

Data logging

Every result written to SQL Server or SQLite — queryable, auditable, exportable.

05 / Alert

Line action

Result fed back to the PLC to sort, stop or flag the part — and to a dashboard for your team.

Case study

Sample project write-up

Structure for a real case study — replace the details below with numbers from an actual Encoresys project.

Industrial vision camera lens used for label inspection
◎ Baumer VCXG · Python · OpenCV · SQL Server

High-speed label verification for a packaging line

Problem: A client's packaging line ran too fast for manual label checks, and mis-applied labels were only caught downstream — after cases were already sealed.

Approach: Encoresys integrated a Baumer GigE camera above the line, built a Python/OpenCV pipeline to verify label position, print quality and barcode readability at line speed, and logged every result to SQL Server with a timestamp and image reference.

Inspection cycle time< 45 ms
Detection accuracy99.6%
Manual checks eliminated100%
Traceable records / day40,000+
Replace with real figures from your project — specific numbers are what make a case study convincing.
Get started

Have a part, a line, or a camera you're not sure how to integrate?

Tell us what you're inspecting and how fast it moves. We'll tell you what's realistic.