GithubHelp home page GithubHelp logo

vietocr3's Introduction

VietOCR

A Java GUI frontend for Tesseract OCR engine. Supports optical character recognition for Vietnamese and other languages supported by Tesseract.

VietOCR is released and distributed under the Apache License, v2.0.

Features

  • Multi-platform
  • PDF, TIFF, JPEG, GIF, PNG, BMP image formats
  • Multi-page TIFF images
  • Screenshots
  • Selection box
  • File drag-and-drop
  • Paste image from clipboard
  • Text search and replace
  • Postprocessing for Vietnamese to boost accuracy rate
  • Vietnamese input methods
  • Localized user interface for many languages (Localization project)
  • Integrated scanning support
  • Watch folder monitor for support of batch processing
  • Custom text replacement in postprocessing
  • Spellcheck with Hunspell
  • Support for downloading and installing language data packs and appropriate spell dictionaries

Instructions

To launch the program from the command line:

java -jar VietOCR.jar

or for CLI option:

java -jar VietOCR.jar imagefile outputfile [-l lang] [--psm pagesegmode] [text|hocr|pdf|pdf_textonly|unlv|box|alto|tsv|lstmbox|wordstrbox] [postprocessing] [correctlettercases] [deskew] [removelines] [removelinebreaks]

Dependencies

vietocr3's People

Contributors

nguyenq avatar rimas-kudelis avatar shreeshrii avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

vietocr3's Issues

How can I install VietOCR3?

You do releases, but I can't find any package on Github, nor do you link to a website where I can download the binary. Could you please add this so I know how to install? Thanks!

How to open several images

Hi,

I know that in Bulk OCR, you can process many images at the same time, but I'd like to be able to have more than one image opened on the screen to perform certain operations before the OCR. If I open one image and then another one, the first one is closed, so I can only have one at the same time. Is there a way to do this?

Thanks!

java.lang.OutOfMemoryError: Java heap space - on Mac

Trying to use ocr script on mac and It continues to give heap space issue.

=========

12:39:02.968 [AWT-EventQueue-0] ERROR net.sourceforge.vietocr.Gui - java.lang.OutOfMemoryError: Java heap space
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at java.desktop/javax.swing.SwingWorker.get(SwingWorker.java:613)
at net.sourceforge.vietocr.Gui$93.done(Unknown Source)
at java.desktop/javax.swing.SwingWorker$5.run(SwingWorker.java:750)
at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(SwingWorker.java:847)
at java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
at java.desktop/javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(SwingWorker.java:857)
at java.desktop/javax.swing.Timer.fireActionPerformed(Timer.java:317)
at java.desktop/javax.swing.Timer$DoPostEvent.run(Timer.java:249)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.desktop/java.awt.image.DataBufferByte.(DataBufferByte.java:92)
at java.desktop/java.awt.image.ComponentSampleModel.createDataBuffer(ComponentSampleModel.java:439)
at java.desktop/java.awt.image.Raster.createWritableRaster(Raster.java:1005)
at java.desktop/javax.imageio.ImageTypeSpecifier.createBufferedImage(ImageTypeSpecifier.java:1074)
at java.desktop/javax.imageio.ImageReader.getDestination(ImageReader.java:2877)
at com.github.jaiimageio.impl.plugins.tiff.TIFFImageReader.read(TIFFImageReader.java:1161)
at java.desktop/javax.imageio.ImageReader.readAll(ImageReader.java:1065)
at net.sourceforge.tess4j.util.ImageIOHelper.getIIOImageList(ImageIOHelper.java:406)
at net.sourceforge.vietocr.Gui$93.doInBackground(Unknown Source)
at net.sourceforge.vietocr.Gui$93.doInBackground(Unknown Source)
at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:304)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:343)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:830)

Could not find library [libjsane.so]

JarLib.load
Error = java.lang.UnsatisfiedLinkError: uk.co.mmscomputing.util.JarLib.loadX: Could not find library [libjsane.so]
JarLib.load
Error = java.lang.UnsatisfiedLinkError: uk.co.mmscomputing.util.JarLib.loadX: Could not find library [libjsane.so]
java.lang.UnsatisfiedLinkError: uk.co.mmscomputing.util.JarLib.loadX: Could not find library [libjsane.so]
at uk.co.mmscomputing.util.JarLib.loadX(JarLib.java:40)
at uk.co.mmscomputing.util.JarLib.load(JarLib.java:10)
at uk.co.mmscomputing.device.sane.jsane.(jsane.java:140)
at uk.co.mmscomputing.device.sane.SaneScanner.isAPIInstalled(SaneScanner.java:17)
at uk.co.mmscomputing.device.scanner.Scanner.getDevice(Scanner.java:86)
at net.sourceforge.vietocr.GuiWithScan$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:700)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
JarLib.load
Error = java.lang.UnsatisfiedLinkError: no jsane in java.library.path
JarLib.load
Error = java.lang.UnsatisfiedLinkError: no jsane in java.library.path
java.lang.UnsatisfiedLinkError: no jsane in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at uk.co.mmscomputing.util.JarLib.load(JarLib.java:22)
at uk.co.mmscomputing.device.sane.jsane.(jsane.java:140)
at uk.co.mmscomputing.device.sane.SaneScanner.isAPIInstalled(SaneScanner.java:17)
at uk.co.mmscomputing.device.scanner.Scanner.getDevice(Scanner.java:86)
at net.sourceforge.vietocr.GuiWithScan$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:700)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
00:13:02.931 [AWT-EventQueue-1] ERROR net.sourceforge.vietocr.GuiWithScan - null
java.lang.NullPointerException: null
at net.sourceforge.vietocr.GuiWithScan$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:700)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

x.DangAmbigs.txt not taken into account with bulk OCR

Custom text replacement scheme via a UTF-8-encoded tab-delimited text file named x.DangAmbigs.txt doesn't seem to be triggered in bulk OCR operation even if Post Processing is checked in Options > Bulk/Batch Options

Convert to Maven or gradle structure for larger audience, idea?

First of all, just to say hi and big thanks for your effort making this amazing software available for others to use.

I'm going to spend sometime converting this project to be more modern for larger audience. In fact i'm developing a smart vietnamese ocr product to run in pc and cloud. My fork will be in my account's github.

My ideas:

  • making this package downloadable and rerun able in any cloud environment.
  • use java-fx instead of swing
  • extendable with plugin architecture.

Any insight about that idea?

By the way, i'm Vietnamese too, if you think it's appropriate you can drop me a line via [email protected] or skype: atomixnmc

String improvement suggestion

I have had this feedback item on Transifex from one of the localizers since quite a while ago. Proxying it over here. It's about the following string in the README:

On Linux, scanning requires installation of SANE packages:</p>

The feedback is:

Better English suggestion "In order to use the scan functionality the following SANE packages are required for Linux based operating systems:"

Kannada (kan) output is not readable

Hi,

It would be great if we have a work around to read the OCRéd unicode text for Kannada and other languages on the right handside panel. Please do let me know how it can be fixed.

Screenshot 2019-09-28 at 10 11 01

Screenshot 2019-09-28 at 10 11 09

Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed

Any quick resolution to the following case? Attaching the sample PDF used for this test.
VietOCR version 5.5.1

ಉಕ್ರೇನಿನ_ಜಾನಪದ_ಕಥೆಗಳು (dragged) 12.pdf

08:12:44.400 [SwingWorker-pool-1-thread-2] ERROR org.apache.pdfbox.contentstream.PDFStreamEngine - Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed
08:12:44.401 [SwingWorker-pool-1-thread-2] ERROR org.apache.pdfbox.contentstream.PDFStreamEngine - Cannot read JPEG2000 image: Java Advanced Imaging (JAI) Image I/O Tools are not installed
08:12:47.981 [Finalizer] DEBUG org.apache.pdfbox.io.ScratchFileBuffer - ScratchFileBuffer not closed!
08:12:47.981 [Finalizer] DEBUG org.apache.pdfbox.io.ScratchFileBuffer - ScratchFileBuffer not closed!
08:12:47.981 [Finalizer] DEBUG org.apache.pdfbox.io.ScratchFileBuffer - ScratchFileBuffer not closed!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.