A modern WPF-based desktop application for analyzing radiochromic film data in radiation dosimetry. This tool is designed for medical physics professionals and researchers working with film-based dose measurement systems.
Filmauswertung Modern UI provides a comprehensive suite of tools for:
- Film Calibration: Create dose-response curves using polynomial or hyperbola fitting models
- Dose Extraction: Convert film images to calibrated dose maps
- Data Analysis: Statistical analysis and visualization of dose distributions
- Export/Import: Support for multiple file formats including JSON and OPG
- Import irradiated film images for calibration
- Support for multiple fitting models:
- 3rd Degree Polynomial Fit (ESTRO expert recommendation):
dose = a0 + a1*OD + a2*OD² + a3*OD³ - Hyperbola Fit (vendor recommended):
dose = a2 + a1/(OD - a0)
- 3rd Degree Polynomial Fit (ESTRO expert recommendation):
- Automatic optical density (OD) calculation
- Interactive calibration plots using OxyPlot
- Time interval tracking between irradiation and scan
- JSON export of calibration data
- Load and process film images
- Apply dose conversion using calibration curves
- Smoothing filters (adjustable levels) for noise reduction
- Statistical analysis with histogram and peak detection
- Heatmap visualization of dose distributions
- Export results in multiple formats
- Flexible Import Options:
- Single file import
- Multiple files import
- Batch folder processing
- Export Options:
- Single file export with file dialogs
- Batch folder export with automatic organization
- Support for various image formats
- Parse OPG (OptiGray) format files
- Extract metadata (energy, data unit, data factor)
- Load and validate 2D pixel matrices with coordinate data
- FFF (Flattening Filter Free) detection
- Language: C# (.NET Framework)
- UI Framework: WPF (Windows Presentation Foundation)
- Architecture: MVVM (Model-View-ViewModel)
- Visualization: OxyPlot for data plotting and analysis
- Data Format: JSON for calibration data persistence
Filmauswertung_ModernUI/
├── MVVM/
│ ├── Model/ # Data models (CutModel, Segment, Marker, etc.)
│ ├── View/ # XAML UI views
│ └── ViewModel/ # View logic and commands
├── Services/
│ ├── Exporter.cs # Export functionality (single file, folder)
│ ├── Importer.cs # Import functionality and dialog service
│ └── OpgLoader.cs # OPG file parsing
├── Core/ # Core interfaces and extensions
├── Converters/ # XAML value converters
├── Behaviors/ # XAML attached behaviors
├── Properties/ # Application resources
└── Fonts/ # Custom fonts (Poppins)
- .NET Framework 4.7.2 or higher
- Windows 7 or later
- Visual Studio 2019 or later (for development)
-
Clone the repository:
git clone https://github.com/MaxKelm/Filmauswertung_ModernUI.git cd Filmauswertung_ModernUI -
Open the solution in Visual Studio:
start Filmauswertung_ModernUI.sln
-
Build the project:
Build > Build Solution (Ctrl+Shift+B) -
Run the application:
Debug > Start Debugging (F5)
-
Load Film Images:
- Click the import button in the Calibration tab
- Select irradiated film images (JPG, PNG, etc.)
- Include a background/unirradiated scan
-
Enter Dose Values:
- Input calibration dose values separated by semicolons (e.g.,
0; 0.5; 1.0; 2.0; 5.0) - Use either ',' or '.' as decimal separator
- Ensure one value is zero (background scan)
- Input calibration dose values separated by semicolons (e.g.,
-
Select Fitting Model:
- Choose between polynomial (4 parameters) or hyperbola fit (3 parameters)
- Specify time interval between irradiation and measurement
-
Process:
- Click "Process" to generate the calibration curve
- Review the resulting plot
-
Export:
- Export calibration data as JSON for later use
-
Load Calibration:
- Import a previously saved calibration JSON file
-
Load Film Images:
- Import the film images to be analyzed
-
Apply Dose Conversion:
- Click "Calculate Dose" to convert images to dose using the calibration
- Adjust smoothing level if needed (1 = no smoothing, 5 = maximum)
-
Analyze Results:
- View dose statistics (peaks, median, mean, range)
- Examine the heatmap visualization
-
Export Results:
- Export dose maps and analysis results
{
"CalibrationDose": [0, 0.5, 1.0, 2.0],
"CalibrationOD": [0, 0.1, 0.2, 0.35],
"FitFunction": "Polynomial",
"FitCoefficients": [0.1, 0.5, -0.02, 0.001],
"Formula": "dose=a0+a1*OD+a2*OD^2+a3*OD^3",
"TimeInterval": 24,
"TimeUnit": "hours"
}- Unit selection for dose conversion (marked as TODO in code)
- OPG file format support is limited to specific metadata tags
- Currently Windows-only (WPF limitation)
- Cross-platform support (WPF to MAUI migration)
- Additional fitting models
- Batch processing improvements
- Advanced image analysis filters
- Database support for calibration history
This project uses:
- Poppins font licensed under SIL Open Font License (OFL)
- Windows API Code Pack for common file dialogs
Contributions are welcome! Please feel free to:
- Report bugs and issues
- Suggest new features
- Submit pull requests
MaxKelm
For questions or support, please open an issue on the GitHub repository.
Last Updated: April 29, 2026