A powerful WPF application for document transcription and image processing, specifically designed for historical document analysis and digitization.
- Advanced Binarization: GPP (Global Parametric Preprocessing) algorithm for optimal image preprocessing
- Intelligent Segmentation: XYCut algorithm for automatic text region and line detection
- Multiple Analysis Methods: ARLSA and morphology-based segmentation for detailed document analysis
- Interactive Editing: Manual correction tools with resize/rotate adorners for precise region adjustment
- PAGE XML Export: Multiple schema versions supported (2009, 2013, 2018)
- Image Formats: Wide range of input formats via OpenCV integration
- Collection Management: Organize and process document collections efficiently
- Modern Design: Material Design themes with MahApps.Metro styling
- Intuitive Workflow: Streamlined document processing pipeline
- Visual Feedback: Real-time preview of segmentation and processing results
- Docking Interface: Flexible workspace with AvalonDock panels
- .NET Framework 4.7.2 - Core application framework
- WPF - Windows Presentation Foundation for UI
- Emgu.CV 4.4 - OpenCV wrapper for computer vision operations
- MahApps.Metro 2.3 - Modern UI framework
- Material Design Themes - Contemporary visual styling
- Newtonsoft.Json - JSON serialization
- Windows 10/11
- .NET Framework 4.7.2 or higher
- Visual Studio 2019+ (for development)
-
Clone the repository:
git clone [repository-url] cd transpro -
Restore NuGet packages:
nuget restore Transpro.sln
-
Build the solution:
msbuild Transpro.sln -p:Configuration=Debug
Note: For deployment builds, see DEPLOYMENT.md for certificate and configuration setup requirements.
The application supports ClickOnce deployment for easy installation and updates. Pre-built releases include all necessary dependencies.
- Load Document: Import your document images
- Configure Settings: Adjust binarization and segmentation parameters
- Process Document: Run automatic segmentation algorithms
- Review Results: Manually correct regions if needed
- Export: Save results in PAGE XML format
Transpro provides an interactive and user-friendly interface for document transcription. The workflow is designed to guide the user through the process of segmentation and transcription, from loading an image to exporting the final results.
Initial View:
The application's main window, where users can load their document images.

Final Transcription:
A successfully transcribed document, with bounding boxes around each word, associating the image with the transcribed text.

The core of Transpro is the Staged XY-Cut algorithm, an innovative approach to document segmentation. This multi-stage process (Region, Line, and Word detection) leverages the provided transcription text to improve the accuracy of the automated segmentation, while allowing for manual correction at each step. The final output is a detailed PAGE.xml file, ready for further processing.
transpro/
├── Adorners/ # WPF UI interaction components
├── Binarization/ # Image preprocessing algorithms
├── Models/ # Data structures and models
├── PAGE/ # PAGE XML format handlers
├── Segmentation/ # Document analysis algorithms
├── ViewModels/ # MVVM view models
├── Resources/ # UI resources and themes
└── Properties/ # Application properties
Recursive segmentation algorithm that identifies text regions by analyzing horizontal and vertical projection profiles.
Global Parametric Preprocessing for converting grayscale images to binary format with optimal threshold detection.
Text line detection and word segmentation based on run-length analysis.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Emgu.CV for computer vision capabilities
- UI powered by MahApps.Metro and Material Design
- Developed for historical document digitization workflows
For questions, issues, or contributions, please open an issue on GitHub or contact the development team.