User Ratings

★★★★★
★★★★
★★★
★★
11
3
0
0
7
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 2 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 2 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 2 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 1 / 5

Rate This Project
Login To Rate This Project

User Reviews

  • Good
  • Unusable, documentation is pretty much non-existent
  • This project reads text from image and again converts it to image. Can anyone help me to convert to text instead of individual image?
  • Well done code. Application works very well on Linux Mint 18.1, but I have a problem with using only performOCRMCE method, because the only thing I need is to get the string. Anyway, place on your blog more specific information about the code. Goog greetings, Obsidiam
  • Does it support Arabic ?
  • Not really able to rate right now... Want to save you a couple of hours : I downloaded the archive and here is what I needed to do : - to compile the test project you will need ant : from the root of your uncompressed folder type "ant run" to run the GUI allowing you to test the library (I guess you can also open the project in netbeans and run it from there) - what will interest you in the first place is the Mean Square OCR Recognizer tab of the Gui. It takes a training image along with its char range and the image you want to compute - the training image is an image with characters organized in the same order as the ASCII table, the start char is the first character of the ascii table in the training image and the End char is the last character of the ascii table in the training image - you will find training images and target images under ocrTests. Start with digits : training image Digits and target digits or shuffledDigits. It works. - ascii and hplj examples does not work. Using the character extractor tab(which seems to be meant to help you creating training images) I found out that the character " is recognised as two characters ' so the range ! to ~ becomes to short and an error occures when trying to use the training image (You can sometimes have more information about errors by looking in the console where you launched the ant command)
  • Very bad documentation.
    1 user found this review helpful.
  • 1. I tried with already available code on sourceforge but had problem with TrainingImage objects. Later i downloaded the source code and compiled them to run example OCRScannerDemo to get the follwing error: java.io.IOException: Expected to decode 94 characters but actually decoded 95 characters in training: ./ascii.png at net.sourceforge.javaocr.ocrPlugins.mseOCR.TrainingImageLoader.load(TrainingImageLoader.java:91) at net.sourceforge.javaocr.ocrPlugins.mseOCR.TrainingImageLoader.load(TrainingImageLoader.java:72) at net.sourceforge.javaocr.ocrPlugins.OCRDemo.OCRScannerDemo.loadTrainingImages(OCRScannerDemo.java:63) at net.sourceforge.javaocr.ocrPlugins.OCRDemo.OCRScannerDemo.main(OCRScannerDemo.java:163) After this i lost hope on this package. Any help would be appriciated. 2. Can we really use this library for android development as it uses AWT and ImageIO?
  • no one seems to care about this project. no doc, no examples
    1 user found this review helpful.
  • Hi, I am facing issues while trying to run the JavaOCR demos. I have downloaded the source code( wasn't able to download from git, hence downloaded the SNAPSHOT version) and have maven built the source along with the demos. I can see .apk files been generated under the target directory for both javaocr-sampler and javaocr-recognizer. When I install them on my emulator, I can see the JavaOCR icons (JavaOCR Demo and JavaOCR sampler) on my emulator. But when I try to run them, I get an exception stating "Unfortunately, net.sf.javaocr.demos.android.sampler has stopped." I am not sure what is the correct order in which I need to run the demos. Please can anybody help me see what I am doing incorrectly or may be point me in the right direction. Note: I am using android-maven-plugin, version 3.6.0 and android sdk platform 19. I had to change them in order to compile the project successfully.
  • How to run this project where is the source files . All I see is Jar files
  • HI team, I am facing problem that after scanning it shows only empty blank that of how many char in a row or line. I am unable to get the chars which in images. Pleas help me.
  • The documentation is non-existent, there are compilation errors using the library, and one of the most required methods for adding training images (getTrainingImageHashMap()) is set to private. The example code posted by Rob Cranfill two years ago is the only example set I could find, and even it doesn't work. Don't waste your time like I did with this.
    3 users found this review helpful.
  • Hi guys, dont know where to post this so ill try here: For training, i use the provided example: <code> loader.load( this, trainingImageDir + "ascii.png", new CharacterRange('!', '~'), images); if (debug) System.err.println("hpljPica.jpg"); loader.load( this, trainingImageDir + "hpljPica.jpg", new CharacterRange('!', '~'), images); if (debug) System.err.println("digits.jpg"); loader.load( this, trainingImageDir + "digits.jpg", new CharacterRange('0', '9'), images); </code> i get the following error: java.io.IOException: Expected to decode 94 characters but actually decoded 95 characters in training: C:/Users/max/workspace/JavaOCR/ocrTests/trainingImages/ascii.png now, the weird part is, that when i comment out the loading of ascii.png & hpljPica.png, the loading of digits.jpg succeeds! And even works when i try to get the text from digits.jpg! now the error is created by the TrainingImageLoader.java class, method load contains: <code> (int)charValue = charRange.min; this.dest = dest; documentScanner.scan(pixelImage, this, 0, 0, 0, 0); if (charValue != (charRange.max + 1)) { throw new IOException( "Expected to decode " + ((charRange.max + 1) - charRange.min) + " characters but actually decoded " + (charValue - charRange.min) + " characters in training: " + imageFilename); } </code> so when minvalue is not equal to maxvalue+1, its gives the error. But when i print out minvalue and maxvalue of new CharacterRange('0', '9'), the only one that DOES work, i get: minvalue = 48 and maxvalue = 57 so it should give me the error to, because 48 is not equal to 57+1. But it doesnt( i'm glad to, because now i can get the text from a image containing numbers). Can someone explain to me why? And why the example code provided doesnt work? Thanks in advance!
  • alguien podria decirme como puedo implementarla, la verdad soy nueva en java y no se como hacerlo, gracias por su coolaboracion
  • Excellent work.
  • Fantastic library, works perfectly when I compile from the source myself. However I'm scratching my head here when trying to use the latest JAR (javaocr-20100605.zip). The TrainingImageLoader class expects a Component as the first parameter of load(). What for? I can't seem to find any JavaDocs to tell me, the latest TrainingImageLoader source (from SVN) doesn't expect this parameter.
  • First, if you are lost I'll recommend you take a look at the performMSEOCR method in the guiController class. It's the method that does the "processing" per-se. kudos to Rob Cranfill for the code, a little bi of searching and found the method. Second, i really like this library. Although I wish i knew how to make it a bit more accurate/use more than 1 font at once. Other than that, it's great. The only working java OCR I've been able to find that doesn't have any external dependencies. If i could make a recommendation it would be the ability to use more than one font. Wonderful library, I'm using it in my sudoku solver. 4/5.
  • For those complaining about documentation, first you should realize that this project is a Java LIBRARY which is intended to be used by competent SOFTWARE DEVELOPERS who are familiar with Java, and specifically the JavaDoc documentation standard and the Maven build tool. To the best of my knowledge -- and I am the original designer and author of JavaOCR -- the JavaDoc documentation is quite extensive and complete. Assuming you understand the concepts behind image-matching OCR algorithms, it should be a breeze for you to pick up the code and run with it. A good place to start is the OCRScannerDemo.java source file. This shows in detail how to train and use the JavaOCR library. This project is NOT an OCR application, but an OCR library which is both experimental and targeted toward the Java developer who is interested in the specific type of OCR which this library performs: image-matching OCR, which requires that you have exemplary images of all characters from the fonts you wish to recognize, and don't mind taking some time to write custom Java code to achieve your goals. That said, when trained for the specific printed font you wish to recognize, JavaOCR generally gives excellent recognition results, and typically outperforms more generic OCR algorithms which are targeted toward a wider variety of fonts.
    1 user found this review helpful.
  • I had no trouble using the GUI to train and analyze a simple photo of some text. I also quickly created my own code that did the same, with no UI (just a console app). Fast and easy! However, my goal is to run this on Android [as is mentioned elsewhere here - right?] but I think there's a show-stopper: JavaOCR uses AWT and ImageIO (javax.imageio, that is), neither of which are supported under Android. That said, this seems to be a quite worthwhile effort, for what it is. /rob PS - Here's a quick example of how to use this code. I created 4 training files containing images of "123456789", "ABCDE", "A" and "4", because with just the first two files, the OCR confused "A" and "4" sometimes (not surprising). The test files had "45A3" and "46B3" in them, and the code got it correct! <code> package net.robcranfill.javaocr.test; import java.awt.image.BufferedImage; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.imageio.ImageIO; import net.sourceforge.javaocr.gui.GUIController; import net.sourceforge.javaocr.gui.meanSquareOCR.TrainingImageSpec; import net.sourceforge.javaocr.ocrPlugins.mseOCR.CharacterRange; import net.sourceforge.javaocr.ocrPlugins.mseOCR.OCRScanner; import net.sourceforge.javaocr.ocrPlugins.mseOCR.TrainingImage; public class Test1 { /** * @param args - unused. */ public static void main(String[] args) { new Test1().test1(); } private void test1() { // All files are here: String imageLoc = "D:/proj/_misc/JavaOCR/test1/"; // Load 4 training files List<TrainingImageSpec> images = new ArrayList<TrainingImageSpec>(0); TrainingImageSpec tis = null; tis = new TrainingImageSpec(); tis.setFileLocation(imageLoc + "1-9-Arial.png"); tis.setCharRange(new CharacterRange('1', '9')); images.add(tis); tis = new TrainingImageSpec(); tis.setFileLocation(imageLoc + "A-E-Arial.png"); tis.setCharRange(new CharacterRange('A', 'E')); images.add(tis); tis = new TrainingImageSpec(); tis.setFileLocation(imageLoc + "A-actual-small.png"); tis.setCharRange(new CharacterRange('A', 'A')); images.add(tis); tis = new TrainingImageSpec(); tis.setFileLocation(imageLoc + "4-actual-small.png"); tis.setCharRange(new CharacterRange('4', '4')); images.add(tis); // Run the OCR on our 'test' files OCRScanner ocrScanner = new OCRScanner(); try { Map<Character, List<TrainingImage>> trainingImages = GUIController.getTrainingImageHashMap(images); ocrScanner.addTrainingImages(trainingImages); // test image 1 String targImageLoc = imageLoc + "45A3-crop-rot-inv.png"; BufferedImage targetImage = ImageIO.read(new File(targImageLoc)); String text = ocrScanner.scan(targetImage, 0, 0, 0, 0, null); System.out.printf("OCR %s: '%s'\n", targImageLoc, text); // test image 2 targImageLoc = imageLoc + "46B3-crop-rot-inv.png"; targetImage = ImageIO.read(new File(targImageLoc)); text = ocrScanner.scan(targetImage, 0, 0, 0, 0, null); System.out.printf("OCR %s: '%s'\n", targImageLoc, text); } catch (Exception e) { e.printStackTrace(); } } } </code>
  • Very poor documentation, and apparently the "support" is nonexistent.