Skip to content
Estel Space

CVRSSP

Industrial Vision System

A ten-camera vision system that finds a steel plate, measures it in millimetres and draws its contour.

  • C++
  • OpenCV
  • MFC
  • Image Processing
The CVRSSP interface showing ten camera views and a measurement result
Year
2026
Role
Design, implementation and testing
Context
Programming Practice, Wuhan University
Platform
Windows · C++ · MFC · OpenCV 4.10

Background

Plate dimensions matter at every stage of steel production — rolling, cutting, storage and inspection. Measuring by hand means stopping the line or touching the plate. Machine vision can measure without contact, but only if it copes with real images. CVRSSP simulates that online measurement: given images from ten cameras along a production line, it finds the plate, measures it in millimetres, draws its contour and keeps a record.

Challenge

Real images are messy. A method that works on one sample breaks on the next.

Uneven light

Every camera sees different brightness and contrast, so no fixed threshold fits them all.

Occlusion

Equipment cuts vertical black gaps through the plate and splits it into separate regions.

Partial views

Some cameras see no plate at all; the plate’s ends may cover only a few pixels.

Pixels are not millimetres

Ten views must be tied to one physical coordinate system before any length means anything.

Solution

One consistent pipeline, from raw images to millimetres — where every module agrees on which cameras can be trusted.

  1. 01

    Adaptive segmentation

    Gaussian smoothing and Otsu thresholding let each image choose its own threshold; small morphological opening and closing clean the mask without filling real gaps.

  2. 02

    Reliable views

    Each camera’s candidate region is scored on contrast, valid columns, thickness and centre stability. Only reliable views are stitched, measured and drawn.

  3. 03

    Occlusion repair

    Vertical gaps inside the plate are found column by column and repaired by interpolating its top and bottom edges — only when every condition holds, so real plate ends are never ‘repaired’.

  4. 04

    Completeness

    The head is checked only in the first reliable camera, the tail only in the last. The system reports whether a whole plate is in view without blocking any other measurement.

  5. 05

    From pixels to millimetres

    Each camera’s 3×3 homography maps pixels into one world frame. Length is the global span of the plate’s centre line; width is a median across rows, with a backup from the other cameras and a cross-check between them.

  6. 06

    Contours and records

    Top and bottom edges are aligned across cameras, gaps filled and spikes smoothed, then drawn as curves. Results are saved as UTF-8 CSV.

Ten camera views of a steel plate, Cam00 to Cam09
Ten views, Cam00–Cam09. Cam00 looks across the plate for width; the others follow its length.
Edge detection and joint recognition of a plate split by an occlusion
When an occlusion splits the plate in two, both regions are recognized as one target.
Reliable camera views stitched into one plate image
Reliable views stitched in order, after a vertical gap has been repaired.
Top and bottom edge contour curves of the plate
Top and bottom contours, aligned across cameras.
A complete plate measured in one pass, with the result dialog
A complete plate: completeness, length, width and curvature in one pass.

Technology

C++

The core application — about 6,700 lines in the main dialog alone.

MFC

A dialog-based interface: three image panels, controls and message handlers.

OpenCV 4.10

Thresholding, morphology, contours and stitching.

Homography calibration

Ten calibration files map every camera into one world coordinate system.

My contribution

  • Requirements analysis and the overall architecture
  • The full image processing and measurement pipeline
  • The MFC interface and its message handlers
  • Calibration loading and exception handling
  • Twelve functional tests — normal, occluded, partial and background-only cases
  • Four iterations, from pixel measurement to calibrated millimetres

Reflection

My first version used a fixed threshold and the largest contour. It worked on a few images and failed on the rest. Industrial vision, I learned, is not about tuning one sample — it is adaptive methods, robust statistics and conditions that hold together. It also taught me what I cannot claim yet: without plates of known size, the pipeline can be verified, but its accuracy cannot. That is the next step.