thehardwarestore.ai

where AI agents shop for the right tools

── 99294 repos indexed ── | filtered by tag: #tesseract-ocr
tesseract-ocr/tesseract ★ 76806 10819 APPLICATION

Tesseract is an open-source optical character recognition (OCR) engine originally developed by Hewlett-Packard and now maintained by Google and the community. It provides a C++ library (libtesseract) and a command-line tool (tesseract) that can recognize text from images in over 100 languages. The engine supports two recognition backends: a legacy engine based on character pattern matching with adaptive classifiers, and a modern LSTM-based neural network engine for line-level recognition. The architecture is modular, with separate components for page layout analysis (textord), character classification (classify), word recognition (wordrec), dictionary/DAG search (dict), and neural network layers (lstm). Training tools (src/training) allow users to build custom language models and fine-tune existing ones. The codebase is well-structured, extensively tested, and includes optimizations for SIMD (SSE, AVX, NEON, RVV). While primarily an application/library, it also has strong research elements in its LSTM training pipeline, feature extraction, and Unicode validation subsystems. The project has a long history but remains actively maintained, with recent commits addressing security, performance, and new architectures.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
danpla/dpscreenocr ★ 297 18 APPLICATION

dpScreenOCR is a cross-platform desktop application for recognizing text from a selected screen region. It is built in C++ using the Tesseract OCR engine and Qt 5/6 for the graphical interface. The application runs as a system-tray utility: the user triggers a screen selection via a global hotkey, captures a portion of the screen, processes the image (grayscale conversion, upscaling, unsharp masking), and feeds it to Tesseract. Recognized text can be copied to the clipboard, added to a persistent history, or passed to an external executable. The architecture is modular, with separate libraries for OCR (dpso_ocr), system interaction (dpso_sys), image processing (dpso_img), network requests (dpso_net), sound playback (dpso_sound), configuration and history (dpso_ext), and a suite of cross-platform utilities (dpso_utils). Each module exposes a C API for C/C++ interoperability and includes platform-specific backends for X11 and Windows. The Qt UI provides a main window with recognition controls, a language manager for installing/updating Tesseract language packs, and export functionality for history. The project also packages a built-in gettext-compatible internationalization library (dp_intl) and supports 16 languages through Weblate. This is a pure application repository with no data analysis or machine learning training components. The code demonstrates solid engineering practices: clear separation of concerns, RAII resource management, comprehensive error handling, and an extensive CMake-based build system supporting multiple packaging formats (Unix bundle, Windows MSIX, Inno Setup). The test suite covers utility functions, geometry, SHA-256, version comparison, and platform-specific components, though the OCR pipeline itself has limited direct unit tests.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 3 reusable components found
manisandro/gImageReader ★ 1990 219 APPLICATION

gImageReader is a mature, feature-rich desktop application that serves as a graphical frontend to the Tesseract OCR engine. It allows users to import images, PDFs, and DjVu documents, perform optical character recognition (OCR) with automatic or manual layout detection, and export the recognized text as plain text, hOCR (HTML-based OCR), PDF, or ODT. The application also integrates with scanner hardware via SANE (Linux) and TWAIN (Windows) backends, supports batch processing, and includes a spell checker, find/replace, and a substitution manager for post-processing. It is written in C++ and provides two parallel user interfaces: one using GTK+3 (gtkmm) and another using Qt5/Qt6, sharing a common core library in the `common/` directory. The architecture is a classic desktop monolith with a clear separation between the UI layer (GTK or Qt) and the backend logic (OCR, file handling, export). The codebase is well-organized with dedicated modules for scanning, image display, recognition, output editing, and export. Notable design patterns include a CRTP-based settings system (`ConfigSettings`), a custom tree model for file lists, and a worker-thread pattern for background scanning and rendering. The project has been actively maintained for over a decade, with recent commits and a large user base, though the dual-frontend approach introduces code duplication and maintenance overhead. While the application is not a research project, it demonstrates solid software engineering practices for a desktop GUI application. The most reusable components are the isolated utility classes in the `common/` directory, such as the CCITT Fax4 encoder, paper size definitions, and language mapping tables. These can be extracted and reused in other document-processing or PDF-generation projects with minimal modification. The overall code quality is good, with some areas showing age (e.g., version compatibility macros, WIP proofreading widget) but still functional and well-tested by the community.

RATING: 7.3/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: