bowling-analysis-system
Version:
A comprehensive system for analyzing bowling techniques using video processing and metrics calculation
85 lines (58 loc) • 3.04 kB
Markdown
# Core Utilities
This directory contains core utility functions and configuration for the video processing system.
## Pattern Detection Configuration
The pattern detection system uses a centralized configuration approach to ensure consistency across different types of analysis.
### PatternDetectionConfig
The `PatternDetectionConfig` module provides standardized configuration options for different types of pattern detection:
- `DEFAULT_CONFIG`: Base configuration for pattern detection
- `FOOT_LANDING_CONFIG`: Specialized configuration for foot landing detection
- `RELEASE_POINT_CONFIG`: Specialized configuration for release point detection
- `CORRELATION_CONFIG`: Specialized configuration for correlation analysis
- `BIAS_ANALYSIS_CONFIG`: Specialized configuration for bias analysis
- `VELOCITY_ANALYSIS_CONFIG`: Specialized configuration for velocity analysis
To get a configuration for a specific type of detection:
```javascript
const { getConfig } = require('./PatternDetectionConfig');
// Get default configuration
const defaultConfig = getConfig();
// Get foot landing configuration
const footLandingConfig = getConfig('footLanding');
// Get configuration with overrides
const customConfig = getConfig('releasePoint', { windowSize: 7, smoothingFactor: 0.4 });
```
### BiasConfig
The `BiasConfig` module provides standardized configuration options for bias analysis:
- `DEFAULT_BIAS_CONFIG`: Base configuration for bias analysis
- `FOOT_LANDING_BIAS_CONFIG`: Specialized configuration for foot landing bias analysis
- `RELEASE_POINT_BIAS_CONFIG`: Specialized configuration for release point bias analysis
To get a configuration for a specific type of bias analysis:
```javascript
const { getBiasConfig, getBiasPatternConfig } = require('./BiasConfig');
// Get default bias configuration
const defaultBiasConfig = getBiasConfig();
// Get foot landing bias configuration
const footLandingBiasConfig = getBiasConfig('footLanding');
// Get bias configuration with overrides
const customBiasConfig = getBiasConfig('releasePoint', { significanceThreshold: 0.25 });
// Get pattern detection configuration for bias analysis
const biasPatternConfig = getBiasPatternConfig('default');
```
## Usage in Pattern Detection
To use the configuration system with the pattern detection utilities:
```javascript
const coreUtils = require('../../core/utils');
// Find patterns using default configuration
const patterns = coreUtils.findPatterns(data);
// Find patterns using specific configuration type
const footLandingPatterns = coreUtils.findPatterns(data, { type: 'footLanding' });
// Find patterns using configuration with overrides
const customPatterns = coreUtils.findPatterns(data, {
type: 'releasePoint',
windowSize: 7,
minPeakProminence: 0.3
});
// Find patterns using bias configuration
const biasPatterns = coreUtils.findPatterns(data,
coreUtils.getBiasPatternConfig('default', { adaptiveWindow: true })
);
```