- 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
123 lines
3.9 KiB
Markdown
123 lines
3.9 KiB
Markdown
# gst-plugins-vision
|
|
|
|
GStreamer plugins for IDS uEye cameras with frame analysis capabilities.
|
|
|
|
## Supported Elements
|
|
|
|
### Image Acquisition
|
|
- **idsueyesrc**: Video source for [IDS uEye cameras][1] (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
|
|
```bash
|
|
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:
|
|
```bash
|
|
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:
|
|
```bash
|
|
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):
|
|
```bash
|
|
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:
|
|
```bash
|
|
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:
|
|
|
|
```powershell
|
|
# 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:
|
|
```powershell
|
|
Get-Help .\build.ps1 -Detailed
|
|
```
|
|
|
|
### Manual Build Process
|
|
|
|
If you prefer to build manually:
|
|
|
|
1. Install [CMake](https://cmake.org/)
|
|
2. Install [GStreamer distribution](https://gstreamer.freedesktop.org/download/) (default path: `C:\bin\gstreamer\1.0\msvc_x86_64`)
|
|
3. Install [IDS uEye SDK](https://www.ids-imaging.com) (default path: `C:\Program Files\IDS\uEye\Develop`)
|
|
4. Run:
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
gst-inspect-1.0 idsueyesrc
|
|
gst-inspect-1.0 rollingsum
|
|
```
|
|
|
|
## Documentation
|
|
|
|
- [IDS uEye Build Instructions](BUILD_IDSUEYE.md)
|
|
- [Rolling Sum Filter Design](DESIGN_ROLLINGSUM.md)
|
|
|
|
## See Also
|
|
|
|
- [Aravis](https://github.com/AravisProject/aravis) - Linux open source GStreamer plugin for GigE Vision and USB3 Vision cameras
|
|
|
|
[1]: http://www.ids-imaging.com
|