Low-Level Graphics
Open Source

OpenCV & WinAPI Computer Vision Toolkit

C++OpenCVWindows APICMakeHaar Cascades

A low-level C++ pipeline integrating OpenCV and native Windows GDI for real-time device context manipulation, screen-space spatial tracking, and automated ML dataset sanitization.

Tech Stack

C++OpenCVWindows APICMakeHaar Cascades

System Metrics

Eliminated standard screen-capture latency by directly mapping Windows HDC memory spaces into OpenCV multi-dimensional arrays
Optimized batch MP4 processing throughput via programmatic frame-skipping and strict grayscale pre-processing prior to cascade evaluation

Why Did I Build This?

"Extracting and sanitizing facial datasets for Machine Learning authentication models is a massive bottleneck. I engineered this standalone C++ toolkit to automate the extraction of normalized, validated facial matrices from raw MP4s and live OS-level video streams. It operates purely at the memory level, bypassing the overhead of bloated GUI screen-capture software."

Architecture & Decisions

The architecture deeply integrates OpenCV with the Windows OS. Desktop capture is achieved by hooking directly into the Windows GDI via `BitBlt` and `GetBitmapBits`, mapping the raw Device Context (HDC) memory directly into OpenCV `cv::Mat` buffers. Feature detection utilizes tuned Haar Cascade Classifiers executing on grayscale-converted matrices to minimize CPU cycles. For automated dataset generation, the engine implements heuristic validations (e.g., measuring mean pixel intensity in eye ROIs to discard blinking frames) and mutates memory buffers in-place for real-time spatial filtering.

Key Features

  • 01.Zero-latency OS-level screen buffer capturing utilizing native Windows GDI API hooks
  • 02.Automated ML dataset generation with heuristic validation (e.g., eye-state pixel intensity thresholding)
  • 03.Real-time template matching (`TM_CCOEFF_NORMED`) and spatial bounding overlays on live memory buffers
  • 04.Hardware-efficient, in-place matrix mutations for real-time privacy blurring and Gaussian filtering