Skip to Content

← All project packs

Visual inspection of components with OpenCV

In-line silkscreen verification with rotational template matching — no proprietary vision PLC required.

Runs on: Raspberry Pi + USB camera — Python 3 scripts (Linux PLC).

The application

A manufacturer of electrical components wanted to verify that every part leaves the line with the correct silkscreen, without investing in a proprietary vision system. A Raspberry Pi with a USB camera runs an OpenCV pipeline (background segmentation, CLAHE, adaptive thresholding) and compares against references using template matching across ±15° rotations; a score ≥ 0.85 means the part is correct. The operator manages references and parameters from a touch GUI with 4 tabs.

Architecture

  • 1080p USB camera with manual focus locked by software
  • Pipeline: background → morphology → cropping → CLAHE → adaptive thresholding
  • Template matching with -15°/+15° rotational search
  • PySide6 GUI with camera thread (live only on the active tab)
  • Persisted references and parameters (processed PNGs + config.json)

Bill of materials

  • Raspberry Pi + USB camera — Industrial Shields controller
  • 1080p USB camera with manual focus — image capture
  • Touch screen — in-line operation
  • Diffuse LED lighting — image repeatability

What is in the pack

  • gui-pyside6-camera-thread.py
  • json-config-references.py
  • opencv-silkscreen-pipeline.py
  • rotational-template-matching.py
  • Bill of materials + README

Get the pack by email — free

Fill in the form and we will send the complete pack to your inbox within minutes.

We send the pack to this address.
Optional.
I agree that Industrial Shields will process my data to send me the requested files, as described in the privacy policy.
I would also like to receive occasional technical content and product news from Industrial Shields (optional — unsubscribe anytime).