/normcap

OCR powered screen-capture tool to capture information instead of images

Primary LanguagePythonOtherNOASSERTION

NormCap

OCR powered screen-capture tool to capture information instead of images. For Linux, macOS and Windows.

Test Coverage Status CodeQL

GitHub PyPi Flathub AUR

Buy Me A Coffee

Links: Source Code | Documentation | FAQs | Releases | Changelog

Screencast

Quickstart

Choose one of the options for a prebuilt release. If you encounter an issue please take a look at the FAQs or report it.

Windows

Linux

macOS

Note: You have to allow the unsigned application on first start: "System Preferences" → "Security & Privacy" → "General" → "Open anyway". You also have to allow NormCap to take screenshots. (#135)

Install Python package

As an alternative to a prebuilt package from above you can install the NormCap Python package for Python >=3.9, but it is a bit more complicated:

On Linux

# Install dependencies (Ubuntu/Debian)
sudo apt install build-essential tesseract-ocr tesseract-ocr-eng libtesseract-dev libleptonica-dev wl-clipboard

## Install dependencies (Arch)
sudo pacman -S tesseract tesseract-data-eng wl-clipboard

## Install dependencies (Fedora)
sudo dnf install tesseract wl-clipboard

## Install dependencies (openSUSE)
sudo zypper install python3-devel tesseract-ocr tesseract-ocr-devel wl-clipboard

# Install normcap
pip install normcap

# Run
./normcap

On macOS

# Install dependencies
brew install tesseract tesseract-lang

# Install normcap
pip install normcap

# Run
./normcap

On Windows

1. Install Tesseract 5 by using the installer provided by UB Mannheim.

2. Identify the path to Tesseract base folder. It should contain a /tessdata subfolder and the tesseract.exe binary. Depending on if you installed Tesseract system-wide or in userspace, the base folder should be:

C:\Program Files\Tesseract-OCR

or

C:\Users\<USERNAME>\AppData\Local\Programs\Tesseract-OCR

3. Adjust environment variables:

  • Create an environment variable TESSDATA_PREFIX and set it to your Tesseract base folder, e.g.: "System Properties" → Tab "Advanced" → "Environment Variables..." → "New..." → Variable: TESSDATA_PREFIX, Value: "C:\Program Files\Tesseract-OCR"

  • Append Tesseract's base folder to the environment variable PATH, e.g.: "System Properties" → Tab "Advanced" → "Environment Variables..." → Section "User variables" → Select PATH → "Edit..." → Add a new entry "C:\Program Files\Tesseract-OCR"

  • To test your setup, open a new cmd-terminal and run:

    tesseract --list-langs

4. Install and run NormCap:

# Install normcap
pip install normcap

# Run
normcap

Why "NormCap"?

See XKCD:

Comic

Development

Prerequisites for setting up a development environment are: Python >=3.9, uv and Tesseract >=5.0 (incl. language data).

# Clone repository
git clone https://github.com/dynobo/normcap.git

# Change into project directory
cd normcap

# Create virtual env and install dependencies
uv venv
uv sync

# Register pre-commit hook
uv run pre-commit install

# Run NormCap in virtual env
uv run python -m normcap

Credits

This project uses the following non-standard libraries:

  • pyside6 - bindings for Qt UI Framework

And it depends on external software:

Packaging is done with:

  • briefcase - converting Python projects into standalone apps

Thanks to the maintainers of those nice tools!

Similar open source tools

If NormCap doesn't fit your needs, try those alternatives (no particular order):

Certification

WOMM

Contributors

Made with contrib.rocks