Skip to main content

OCRed

ocred

CI Documentation Status pre-commit.ci status codecov discussion

Python Versions Package Version PyPI Downloads License black

All Contributors

OCRed (pronounced as OCR'd) provides clever, simple, and intuitive wrapper functionalities for OCRing specific text material. You don't want to learn OCR or the libraries that will help you perform OCR, but you need to OCR something? This friendly neighborhood library hides all of that stuff under simple functions like ocr_meaningful_text().

In other words, instead of manual preprocessing, looking for an OCR library, learning the library, then finally getting what you were looking for, use OCRed instead.

On the other hand, if you want to learn OCR and use the famous OCR libraries by yourself, then this library is not for you. But, it still can be a good start for your journey!

Structure

OCR is performed using the OCR class and preprocessing of an image is performed using the Preprocessor class. All the details are available in the documentation.

Installation

  1. Install Tesseract for your OS and add it to PATH

The installation guide is available here

  1. Use pip magic

OCRed uses modern Python packaging and can be installed using pip -

python -m pip install ocred

Usage example

# OCRing a book
import ocred

ocr = ocred.OCR(
    False,  # is_scanned -> to preprocess the image
    "path/to/an/image",  # path
)
ocr.ocr_meaningful_text(save_output=True)
# OCRing a signboard
import ocred

ocr = ocred.OCR(
    True,  # is_scanned -> sign boards don't need to be preprocessed
    "path/to/an/image",  # path
)
extracted_text = ocr.ocr_sparse_text()
print(extracted_text)
# OCRing an invoice
import ocred

ocr = ocred.OCR(
    True,  # is_scanned -> invoices don't need to be preprocessed
    "path/to/an/image",  # path
)
extracted_text = ocr.ocr_sparse_text()
print(extracted_text)

extraxted_info = ocr.process_extracted_text_from_invoice()
print(extraxted_info)
# manually preprocessing an image
import cv2
from scipy import ndimage
from ocred import Preprocessor

preprocessed = Preprocessor("path/to/img.jpg")

# scan the image and copy the scanned image
preprocessed.scan()
orig = preprocessed.img.copy()

# remove noise
preprocessed.remove_noise()

# thicken the ink to draw Hough lines better
preprocessed.thicken_font()

# calculate the median angle of all the Hough lines
_, median_angle = preprocessed.rotate()

# rotate the original scanned image
rotated = ndimage.rotate(orig, median_angle)

# remove noise again
preprocessed = Preprocessor(rotated)
preprocessed.remove_noise()

cv2.imwrite("preprocessed.png", preprocessed.img)

Testing

The tests are present in the tests directory. New tests must be added with any additional features.

To run the tests -

pytest

Some examples

roof-500x500 OCR

जयपुर JAIPUR 321 आगरा AGRA 554 श्री गगांनगर 242 SRIGANGANAGAR JODHPUR 261 जोधपुर

Page OCR

Preface  This book deals with computer architecture as well as computer organization and design. Computer architecture is concerned with the structure and behavior of the various functional modules of the computer and how they interact to provide the processing needs of the user. Computer organization is concerned with the way the hardware components are connected together to form a computer system. Computer design is concerned with the development of the hardware for the computer taking into consideration a given set of specifications. The book provides the basic knowledge necessary to understand the hardware operation of digital computers and covers the three subjects associated with computer hardware. Chapters 1 through 4 present the various digital components used in the organization and design of digital computers. Chapters 5 through 7 show the detailed steps that a designer must go through in order  to design an elementary basic computer. Chapters 8 through 10 deal with the organization and architecture of the central processing unit. Chapters 11 and 12 present the organization and architecture of input-output and memory. Chapter 13 introduces the concept of multiprocessing. The plan of the book is to present the simpler material first and introduce the more advanced subjects later, Thus, the first seven chapters cover material needed for the basic understanding of computer organization, design, and programming of a simple digital computer. The last six chapters present the organization and architecture of the separate functional units of the digital computer with an emphasis ‘on more advanced topics.  ‘The material in the third edition is organized  in the same manner as in the second edition and many of the features remain the same. The third edition, however, offers several improvements over the second edition. All chapters  ‘two (6 and 10) have been completely revised to bring the material up to date and to clarify the presentation. Two new chapters were added: chapter 9 on pipeline and vector processing, and chapter 13 on multiprocessors. Two sections deal with the reduced instruction set computer (RISC). Chapter 5 has been revised completely to simplify and clarify the design of the basic computer. New problems have been formulated for eleven of the thirteen chapters.  ‘The physical organization of a particular computer including its registers

CosmosOne preprocessed OCR

organisms of our globe, including hydrogen, sodiurn, magnesiuia, and iron. May it not be thai, at least, the brighter stars are like our Sun, the upholding and energizing centres of systems of worlds, adapted to be the abode of living beings?  — William Hugeins, 1865  All my life I have wondered about the possibility of life elsewhere. What would it be like? Of what would it be made? All living things on our planet are constructed of organic molecules ~ complex microscopic architectures in which the carbon atom plays a central role. There was once a time before life, when the Earth was barren and utterly desolate. Our world is now overflowing with life. How did it come about? How, in the absence of life, were carbon-based organic molecules made? How did the first living things arise? How did life evolve to produce beings as elaborate and complex as we, able to explore the mystery of Our Own origins? And on ihe countless other planets that many circle other suns, is there life also? Is extraterrestrial life, if it exists, based on the same organic molecules as life on Earth? Do the beings of other worlds look much like life on Earth? Or are they stunningly different — other adaptations to other environments? What else is possible? The nature of life on Earth and the search for life elsewhere are two sides of the sarne question — the search for who we are.  In the great dark between the stars there are clouds of gas and dust and organic matter. Dozens of different kinds of organic molecules have been found there by radio telescopes. The abundance of these molecules suggests that the stuff of life is everywhere. Perhaps the origin and evolution of life is, given enough time, a cosmic inevitability. On some of the billions of planets in the Milky Way Galaxy, life may never arise. On others, it May arise and die out, or never evolve beyond its simplest forms. And on some small fraction of worlds there may 35

Contributing

If you want to contribute to OCRed (thanks!), please have a look at our Contributing Guide.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Saransh

💻 🐛 🖋 📖 🎨 💡 🤔 🚇 🚧 📦 👀 ⚠️ ✅ 🧑‍🏫

Priyanshi Goel

🐛

This project follows the all-contributors specification. Contributions of any kind welcome!

Metadata

Release files for ocred 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ocred 0.4.0
File Size Uploaded Provenance
ocred-0.4.0.tar.gz 4.6 MB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ocred 0.4.0
File Interpreter ABI Platform
ocred-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 4.6 MB

Release files / ocred-0.4.0.tar.gz

Download URL ocred-0.4.0.tar.gz
Size 4.6 MB
Tags Source
SHA-256 checksum
How to use checksums
48cd3f2bc260d74937842b848f9e70c2c2b01d740f866c36251bcf7fb7d46546
BLAKE2b-256 checksum
How to use checksums
8cd6db8db2bf80750fbda6469615d401105bd637e219323b6ca02bd3e04e621c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.5

Release files / ocred-0.4.0-py3-none-any.whl

Download URL ocred-0.4.0-py3-none-any.whl
Size 13.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4b700c31ae084460eedcd72765c12e4ffabd3ccd319e73bf9c9db6e38b619588
BLAKE2b-256 checksum
How to use checksums
5721bec74ffd255f4ad07d2704082b5fb2f6043ea613f57b1bc592719dcb0e73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.5

Security for ocred 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page