I am currently using tess-two library for OCR in Android, which gives us a result based on input image and training data. What I wish to do is build my own training data based on previous handwriting data. I looked through how to train data on a Linux system using tesseract:
http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3
Does tesseract have support for doing something like this on android?
Any other library which provides such functionality?
tesseract is primarily coded in C++. If you make use of the Native Development Kit (NDK) Google provides for Android, you can use all its classes.
Alternatively, you can try to code a similar learning system based on tesseract's in Java.
Related
I have some video stored on Google Cloud Storage in mp4, i need the extract a thumbnail from them.
I looked to a number of solutions, and looks like they don't work with App Engine.
for example: http://www.xuggle.com/xuggler/
Do you have library that i could use to do this on Google App Engine in Java?
I finally went with Google Compute Engine and ffmpeg, implementation is in progress...
This question looks related to Is there a Java API for mp4 files?
Xuggler says their project is a mix of java and native code. Native code will not run on java app engine.
Search for java mp4 video decoder and look for a decoders that only use java code. Perhaps this one will work: http://jcodec.org/guide/movstitch.html.
OK, after some searching, I've found following: Video website on google application engine
Sounds like similar problem to yours. The only difference is that the other thread checks for python solution. However answers seem to be quite programming language independent, so I think it will be worth a read.
For the documentation/inspirational purposes, it might be worth to describe your solution in this thread once you go for it.
I would like to render/open PDF file (stored in SDCard) in Android without using in-build application or viewer.
1) We have tried MuPDF open source library but rendering using this library is very slow.
2) Can we use iText library for rendering PDF files in Android (i.e. iText as a PDF Viewer).
Is there any other PDF library(open source) that can be used in Android Or suggest basic guideline for developing PDF viewer for Android.
1) MuPDF is good to render textbook pdf in android while it may be slow to render pdf with big images. A lot of customizations and improvements especially memory usage control need to do if you want the MuPDF to run fast and stable on android platform. You can check out two open source projects VuDroid and apv which are based on MuPDF.
2) It's up to your requirements. The iText may be enough to render simple text pdf, but I don't think it has better performance than MuPDF or other libraries that developed by using C/C++.
Another choice is to use Poppler. A successful story is the popular android app ezPDF Reader is based on Poppler, although it's violating GPL license. The out of box Poppler needs more work than MuPDF to do to run on android smoothly. You can refer to the open source project apdfviewer.
I've done some research in this field recently, I've tried more than 14 libraries on Android, I've done simple benchmarking on some high resolution print-ready PDF magazines and I'm currently considering to use MuPDF or Radaee in work as they went out as the best.
I've tried VuDroid and apv as well and they are very unstable, they are crashing very often on complex PDF documents and very slow in comparsion to MuPDF or Radaee.
Since MuPDF and Radaee (and some other libraries) are written in pure C and are used on Android through NDK, they are giving the best possible performance (and they both are paid for a commercial use).
Take a look at my PDF reader for Android here at anddev.
As I remember it uses modified PDFBox (without things related to editing), and features my own font converter (to feed fonts to Android and render them faster).
I don't develop PDF reader anymore and I can make all my changes opensource (though it will require some work, and time). You can try it out to find out how well it performs for you. Note: reader doesn't support encryption and copy-protection.
I am currently working on a small project, which shall load an image from an URL, resize and change it's colour depth to only 16 colours using a specified colour palette. The main problem for me is, that I want a program, which I can use on an Android device and on a desktop computer.
Do you know a good image processing library which works on both systems?
Thanks in advance.
There are several tools:
ImageJ, http://rsbweb.nih.gov/ij/
Fiji, http://fiji.sc/wiki/index.php/Fiji
IMMI, http://www.burgsys.com/image-processing-software-free.php
BoofCV: http://boofcv.org
The answers on this page are quite dated as of February 2014. I was searching to find a free Android image processing library and I came across the Stanford lecture notes here: http://www.stanford.edu/class/ee368/Android/index.html
Investigating a bit further, I found out that they are using OpenCV in their course material. It has a Java interface (along with many other languages), but the library is written natively in C++. They state that:
Along with well-established companies like Google, Yahoo, Microsoft,
Intel, IBM, Sony, Honda, Toyota that employ the library, there are
many startups such as Applied Minds, VideoSurf, and Zeitera, that make
extensive use of OpenCV.
I am excited(!) to have found this, looking forward to going home and giving it a go.
The Android NDK allows you to use an existing C/C++ library that does not require java.awt or any of the Android classes. For example, you could easily compile libpng as a shared library for Android and then write a JNI interface to pass images from the Java layer to the png library. Similarly, you will also be able to compile libpng as a shared library for your desktop computer and use it from there.
I recently wrote a tutorial on how to compile open-source libraries for Android. If you browse the Android source, you will find some classes that use the skia graphics library via jni. I have not used skia before, but since Android has skia in its base framework, it should not be too difficult to get it to work in your app/desktop program.
Writing cross-platform programs has been an area of active interest amongst the mobile developers community, and some engines such as libgdx have gotten really good at it. So what you are attempting is definitely possible.
Octoate,
I don't think there is a library that exists that does what you want, the reason for that is on non-mobile platform every graphical operation you are going to use in Java is going to use the Java2D rendering pipeline to some degree. On Android, this doesn't exist.
Android provides its own graphical pipeline for image manipulation and actually simplifies a lot of things that are more complicated in standard Java.
All that being said, it looks like you found a library (JJIL) that acts as an abstraction layer on top of these differences, in that case I would be a bit worried about performance and do some testing in your own code to see how it performs compared to the platform methods. For example, I saw this quote from JJIL:
allows images to be converted from Android bitmaps into JJIL RgbImages
When I look at the source for RgbImages, it looks like the image data gets converted and stored in an internal array; all of those layers of abstraction are going to cost you CPU time and memory, especially as images on mobile devices get bigger due to higher resolution cameras and high-bandwidth connections.
This may not be that big of an issue, but again, you'll probably want to do some profiling/testing/performance comparisons.
Any pure Java library should work on both platforms. A Google search of "Java image processing library" produced several results. Try to find the lightest weight lib that serves your purposes since memory and CPU are limited on mobile devices.
Barry
Does anybody now some tool that can help me to recognize numeric values from photos in Java-based Blackberry application?
Aspire is a java based OCR SDK. I am not sure how much it will useful for Blackberry. Try yourself.
Another one is JavaOCR. It is 100% java. Its author posts on his blog.
I am trying to write a Java application that will generate SVG image based on XML file. The application should also be able to show SVG file. My application should run on Android platform and desktop PCs. I read about Swing + Batik but afaik it will not work on Android. What is the best library to achieve this ?
This article in Code Project deals with the subject. Two approaches are presented:
android-libsvg library.
Anti Grain Geometry engine.
Both solutions have dependencies on native code library, so you would need JNI.
There is also svg4mobile project, which only uses Java.
per this thread: libsvg ported
libsvg has been ported to android..see thread for details. You need a crystax form of NDK, ie exceptions enabled..build/install doc here at:build-install-doc
Also try this open-source library, Apache 2.0 license:
SVG-Android
Performance is good as the actual drawing is handled natively by an android.graphics.Picture object.