yair 32a0674b6c Unify build process with PowerShell script and update documentation
- Created build.ps1 to merge batch files with auto-copy to GST_PLUGIN_PATH
- Updated README.md to focus on IDS uEye and rollingsum plugins only
- Removed outdated batch files (build_idsueye_only.bat, build_idsueye_and_rollingsum.bat)
- Removed unused build files (set_paths_and_run_cmake.bat, CMakeLists_idsueye_only.txt)
- Updated .gitignore for build artifacts and plugin directory
2025-11-14 11:30:10 +02:00

3.9 KiB

gst-plugins-vision

GStreamer plugins for IDS uEye cameras with frame analysis capabilities.

Supported Elements

Image Acquisition

  • idsueyesrc: Video source for IDS uEye cameras (GigE Vision, USB 2/3, USB3 Vision)

Video Analysis

  • rollingsum: Drops frames based on rolling mean analysis of a single column. Analyzes pixel column deviation from rolling baseline to detect anomalies or changes in the scene.

Usage Examples

Basic capture from IDS uEye camera

gst-launch-1.0 idsueyesrc config-file=whole-presacler64_autoexp-binningx2.ini ! queue ! autovideosink

Frame filtering based on column analysis

Drop frames when column mean deviates from rolling baseline by more than 0.5:

gst-launch-1.0 idsueyesrc config-file=whole-presacler64_autoexp-binningx2.ini ! videoconvert ! video/x-raw,format=GRAY8 ! rollingsum window-size=1000 column-index=1 threshold=0.5 ! queue ! autovideosink

Note: The rollingsum element analyzes a single column of pixels and drops frames when the column mean deviates from the rolling mean baseline by more than the threshold. Use videoconvert to ensure proper format negotiation.

Additional rollingsum examples

Analyze column 320 with larger window:

gst-launch-1.0 idsueyesrc config-file=whole-presacler64_autoexp-binningx2.ini ! videoconvert ! video/x-raw,format=GRAY8 ! rollingsum window-size=5000 column-index=320 threshold=0.3 ! queue ! autovideosink

Use stride for faster processing (sample every 2 rows):

gst-launch-1.0 idsueyesrc config-file=whole-presacler64_autoexp-binningx2.ini ! videoconvert ! video/x-raw,format=GRAY8 ! rollingsum window-size=1000 column-index=1 stride=2 threshold=0.5 ! queue ! autovideosink

Lower threshold for more sensitive detection:

gst-launch-1.0 idsueyesrc config-file=whole-presacler64_autoexp-binningx2.ini ! videoconvert ! video/x-raw,format=GRAY8 ! rollingsum threshold=0.2 ! queue ! autovideosink

Dependencies

  • GStreamer 1.2.x or newer
  • IDS uEye SDK (for camera support)

Building on Windows

Quick Start with PowerShell Script

The easiest way to build is using the provided PowerShell script:

# Set the plugin installation path
$env:GST_PLUGIN_PATH = "C:\path\to\your\plugins"

# Build all plugins (IDS uEye + rollingsum) and auto-copy to GST_PLUGIN_PATH
.\build.ps1

# Or build only IDS uEye plugin
.\build.ps1 -BuildType IDSuEyeOnly

# Debug build without auto-copy
.\build.ps1 -Config Debug -NoCopy

# Custom GStreamer path
.\build.ps1 -GStreamerRoot "C:\custom\gstreamer\path"

For more options, see:

Get-Help .\build.ps1 -Detailed

Manual Build Process

If you prefer to build manually:

  1. Install CMake
  2. Install GStreamer distribution (default path: C:\bin\gstreamer\1.0\msvc_x86_64)
  3. Install IDS uEye SDK (default path: C:\Program Files\IDS\uEye\Develop)
  4. Run:
git clone https://github.com/joshdoe/gst-plugins-vision.git
cd gst-plugins-vision
mkdir build
cd build
cmake .. -G "Visual Studio 16 2019" -A x64 -DGSTREAMER_ROOT="C:\bin\gstreamer\1.0\msvc_x86_64"
cmake --build . --config Release

Installation

The build.ps1 script automatically copies plugins to $env:GST_PLUGIN_PATH if set. Alternatively:

  1. Set GST_PLUGIN_PATH environment variable to point to your plugin directory
  2. Copy the built DLLs manually:
    • build\sys\idsueye\Release\libgstidsueye.dll
    • build\gst\rollingsum\Release\libgstrollingsum.dll

Verify Installation

gst-inspect-1.0 idsueyesrc
gst-inspect-1.0 rollingsum

Documentation

See Also

  • Aravis - Linux open source GStreamer plugin for GigE Vision and USB3 Vision cameras