How alexalkhatib/granulometry-java-app works
Granulométrie Studio is a JavaFX desktop application for measuring particle sizes in scientific images. The main workflow imports an image and analysis settings, runs segmentation and particle measurements in a background task, then presents distributions and statistics for inspection and export. Operators can also save sessions to a local H2 history and reopen or delete them. The graph covers the documented product capabilities; several UI and persistence links rely on README statements or SOURCE INDEX references, since those implementations were not fully sampled.
Main entry points: ResultView.java Results and charts · AnalyzeView.java Image and settings · ImageAnalyzer.java Image analyzer · HistoryView.java Session history
Components 20
Analysis workflow
- Image and settings
src/main/java/fr/granulometrie/ui/AnalyzeView.java - Analysis parameters
src/main/java/fr/granulometrie/core/AnalysisParameters.java - Image analyzer
src/main/java/fr/granulometrie/core/ImageAnalyzer.java - Segmentation
src/main/java/fr/granulometrie/core/Segmentation.java - Particle measurements
src/main/java/fr/granulometrie/core/Particle.java - Analysis result
src/main/java/fr/granulometrie/core/AnalysisResult.java
Results and export
- Size statistics
src/main/java/fr/granulometrie/core/SizeStatistics.java - Statistics utilities
src/main/java/fr/granulometrie/core/StatisticsUtils.java - Size classification
src/main/java/fr/granulometrie/core/SizeClassifier.java - Results and charts
src/main/java/fr/granulometrie/ui/ResultView.java - Detection overlay
src/main/java/fr/granulometrie/io/OverlayRenderer.java - CSV exporter
src/main/java/fr/granulometrie/io/CsvExporter.java
Local history
- Session history
src/main/java/fr/granulometrie/ui/HistoryView.java - Analysis repository
src/main/java/fr/granulometrie/repo/AnalysisRepository.java - Stored session
src/main/java/fr/granulometrie/repo/StoredSession.java - Local H2 database
Application interface
- JavaFX application
src/main/java/fr/granulometrie/GranulometryApp.java - Window navigation
src/main/java/fr/granulometrie/ui/MainWindow.java - Shared UI components
src/main/java/fr/granulometrie/ui/UiFactory.java
Other components
- Operator
Connections 27
- Operator → Image and settings: imports image
README.md - Operator → Image and settings: sets options
README.md - JavaFX application → Window navigation: creates window
src/main/java/fr/granulometrie/GranulometryApp.java - Window navigation → Image and settings: shows view
src/main/java/fr/granulometrie/ui/MainWindow.java - Image and settings → Analysis parameters: updates settings
src/main/java/fr/granulometrie/ui/AnalyzeView.java - Image and settings → Image analyzer: runs analysis
src/main/java/fr/granulometrie/ui/AnalyzeView.java - Image analyzer → Analysis parameters: reads settings
src/main/java/fr/granulometrie/core/ImageAnalyzer.java - Image analyzer → Segmentation: segments image
src/main/java/fr/granulometrie/core/ImageAnalyzer.java - Segmentation → Particle measurements: builds measurements
src/main/java/fr/granulometrie/core/Segmentation.java - Image analyzer → Analysis result: returns result
src/main/java/fr/granulometrie/core/ImageAnalyzer.java - Analysis result → Size statistics: computes summary
src/main/java/fr/granulometrie/core/AnalysisResult.java - Size statistics → Statistics utilities: uses calculations
src/main/java/fr/granulometrie/core/SizeStatistics.java - Window navigation → Results and charts: shows results
src/main/java/fr/granulometrie/ui/MainWindow.java - Results and charts → Size classification: builds size classes
src/main/java/fr/granulometrie/ui/ResultView.java - Results and charts → Analysis result: displays measurements
src/main/java/fr/granulometrie/ui/ResultView.java - Image and settings → Detection overlay: renders overlay
src/main/java/fr/granulometrie/ui/AnalyzeView.java - Results and charts → CSV exporter: exports CSV
src/main/java/fr/granulometrie/ui/ResultView.java - Results and charts → Operator: exports chart PNG
README.md - Results and charts → Analysis repository: saves session
src/main/java/fr/granulometrie/ui/ResultView.java - Window navigation → Session history: shows history
src/main/java/fr/granulometrie/ui/MainWindow.java - Session history → Analysis repository: loads and deletes
src/main/java/fr/granulometrie/ui/HistoryView.java - Analysis repository → Local H2 database: reads and writes
src/main/java/fr/granulometrie/repo/AnalysisRepository.java - Analysis repository → Stored session: creates sessions
src/main/java/fr/granulometrie/repo/AnalysisRepository.java - Session history → Results and charts: opens saved result
src/main/java/fr/granulometrie/ui/MainWindow.java - Image and settings → Shared UI components: uses controls
src/main/java/fr/granulometrie/ui/AnalyzeView.java - Results and charts → Shared UI components: uses components
src/main/java/fr/granulometrie/ui/ResultView.java - Session history → Shared UI components: uses components
src/main/java/fr/granulometrie/ui/HistoryView.java