Ronald B. Cemer Konstantin Pribluda

Java OCR is a suite of pure java libraries for image processing and character recognition. Small memory footprint and lack of external dependencies makes it suitable for android development. Provides modular structure for easier deployment.

actual and olny release exists as bundle of jars in maven central repository, and you can just reference it in your project. We are working to provide downloadable bundle

How it works

JavaOCR is pure java suite of libraries for image processing and recognition. It uses (for now) invariant moments and cluster analysis for character recognition and pattern matching. Deatiled explanations of this techinque are provided here [image recognition using moments]

Project structure

JavaOCR is split into smaller components files so you can pick up what you really need

  • core - contains basic image definitions, core filters (like sauvola binarisation) , traversal classes and slicing code, integral image creation. suppors ineteger byte and float images
  • plugins - contains various plugin functionality
    • awt - integration with awt
    • cluster - cluster analysis classes, including euclidian and mahalanobis metrics
    • fir - finite impuls response filters like median filter ( obsolete, better implemented via integral images )
    • moment - filters to compute invariant moments over images including Hu-Moments. Hu-Moments are well described but not very useful for character recognition as thez provide rotational invariance and will likely mix up 2 and 5. You will have to choose your own moment set
    • morphology - mophology operations (erosion / dilation / opening / closing)


To compile project from source, get sources and issue mvn clean install frmo top level directory. This will install all project jars into local maven repository. Released version is also available from sonatype nexus repository and shal be synched to maven central.

Using JavaOCR in your projects

JavaOCR is pure java library and can be used everywhere java is running. demos/ folder contains android showcase apps. Read more about compiling and running them: [android demos]

Project admins

Project Admins:


Wiki: image recognition using moments


  • Jeru Liu
    Jeru Liu

    I'm not able to open the android demos links, error shown as "Create access required"

  • baiguanchao

    I have the same question,please?

  • coder80

    can i have access for android demo?

    Last edit: coder80 2013-02-05
  • Graydyn Young
    Graydyn Young

    Looks like you don't need to follow the link above to get the Android demos. I just downloaded the source and the Android demo is included in /demos directory.
    For those concerned about AWT, just don't include the scanner package. You won't need it for Android anyways.

  • Mea culpa - I did notwrote this document yet.

  • Elena


    When I extract the downloaded source I don't have /demos directory... There are only jar files. What am I doing wrong?

    Any help appreciated

  • Elena

    Ok... I think I could use maven for getting demos. It seems to be struggle with it. Good luck for all trying to use maven...

  • Serge

    I do not understand - the only file i downloaded is javaocr-20100605.zip
    And it contains NetBeans project with ant build file - build.xml.

    NO DEMOS folder to get android application.
    NO MAVEN pom.xml - to build using maven.
    What are You talking about???

  • Shahar Dekel
    Shahar Dekel

    Hi, I'm trying to download the [android demos] by clicking on the red link, but I get an "Error 403" message. Can you please fix it?

    • Viviana

      Please I would like to see demos too. Can you fix it?

  • Seamus Bradley
    Seamus Bradley

    Found this all a bit confusing too - but if you go to the git tab above and download the source from there, you can follow the above instructions ok

  • Samuel Suther
    Samuel Suther

    Can somebody create a little Screencast to show how this Application work, or how to install it Step by Step?

  • This is a question for the current maintainers of this project.

    What do you all think of moving the project to GitHub? SourceForge's 10-character password requirement has become too burdensome for me. I want to move on.

    I've also heard a lot of complaints about adware and other issues with SourceForge.


  • Rodry

    HI, when I run "mvn clean packge" with waven 3.3.9 I'm getting:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/aether/spi/connector/Transfer$State
            at org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.java:608)
            at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
            at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.ClassNotFoundException: org.eclipse.aether.spi.connector.Transfer$State
            at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)           
            at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)             
            at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
            at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
            ... 5 more