content top

Android and OCR

Android and OCR
I’m still remembering it well, the first piece of software I wrote when I came to the US was a de-skewing algorithm. Deskewing an image helps a lot, if you want to do OCR, OMR, barcode detect, or just improve the readability of scanned images.
At the time, I was working for a small software company, developing TeleForm, an application that reads data from paper forms and stores that data in previously created databases. The Cardiff TeleForm product was later re-branded Verity-TeleForm for a brief period in 2004 and 2005 when Verity Inc. acquired Cardiff Software. In 2005, when Autonomy acquired Verity, the Cardiff brand was reintroduced as Autonomy Cardiff (http://www.cardiff.com); more recently, Autonomy was acquired by HP.

Optical character recognition, usually abbreviated to OCR, is the mechanical or electronic translation of scanned images of handwritten, typewritten, or printed text into machine-encoded text.

Image Deskew is the process of removing skew from images (especially bitmaps created using a scanner). Skew is an artifact that can occur in scanned images because of the camera being misaligned, imperfections in the scanning or surface, or simply because the paper was not placed completely flat when scanned.

Now most of the data entry or origination happens on the Web, where most of the forms processing has been moved to as well, i.e. OCR hasn’t been in vogue for quite a while. However, the popularity of smartphones, combined with built-in high-quality cameras has created a new category of mobile applications, benefiting greatly from OCR. Take Word-Lens (http://questvisual.com) as an example: an augmented reality translation application that tries to find out what the letters are in an image and then looks in a dictionary, to eventually draws the words back on the screen in translation.

On Device or In The Cloud ?

Before deciding on an OCR library, one needs to decide, where the OCR process should take place: on the Smartphone or in the Cloud. Each approach has its advantages.
On device OCR can be performed without requiring an Internet connection and instead of sending a photo, which can potentially be huge (many phones have 8 or 12 Mega-Pixel cameras now), the text is recognized by an on-board OCR-engine.

Read More

Android ICS Source Code for your IDE

Android ICS Source Code for your IDE

“Your father’s light saber. This is the weapon of a Jedi Knight. Not as clumsy or random as a blaster; an elegant weapon for a more civilized age. For over a thousand generations, the Jedi Knights were the guardians of peace and justice in the Old Republic. Before the dark times… before the Empire.”

While the Android 4.0 SDK comes with a complete set of javadocs, the source code of the SDK is missing in the SDK distribution. This is very unfortunate, since you cannot easily debug into SDK methods (at least not without running into de-compiled code) nor can you see how things actually work.

Eclipse - Source Not Found

However, there is a quick fix to that problem. I downloaded the complete Android source including the Linux, drivers, libs, etc., like explained here: http://source.android.com/source/download.html and ran small Java program on the source tree. I used to this with a simple bash script but over the last couple of Android Releases, the java source locations got a little more diverse and I started missing a couple files. So instead, this Java program walks the source tree and looks for java source files. All those will then be copied into a new location, considering their package name. Finally, the jar tool gets called to put all the source into a single bundle for easier handling.

Read More

Tiffany meets Android

Tiffany meets Android

Ever since I started working on the Android platform and Android phone and tablet applications, I found it challenging to show my ideas, designs, and prototypes to a group of people, no matter how small that group was. Naturally, I wanted to not just explain concepts and behaviors but to show a live demo on a phone. However, the screen-size of a phone can be a serious obstacle when presenting to a small group. Moreover, the phone often gets covered by my hand when interacting with a mobile application.
I have tried to capture the phone’s screen with a video-camera and showing the live-view on a bigger monitor but reflections, glare, and insufficient lighting resulted almost always in an even worse experience and only in an controlled environment (light-box etc.), filming worked well and I was able to capture footage with a reasonable quality.

For the last couple of weeks now, we have started experimenting with USB-tethered Android screen capturing in combination with TiffanyScreens.

Read More

16 thousand Color Changes Later

16 thousand Color Changes Later

Occasionally, I speak at developer conferences, and recently have talked about how to add printing as feature into Android applications. As an example, I take a pretty simple application with only a few Android Activities and then show how a print intent can be integrated for mime types like image/* or application/pdf. After such a talk I have always a couple people come up that seem to be more interested in my demo app than the concept of adding printing to their own apps and they ask me where they can download the app.

Well, about three weeks ago, I decided to make my little demo app available in the Android Market. It’s a well known simple finger painting application, the display is the canvas and your finger becomes a paint brush.

Simply use your finger to create beautiful paintings. Use the Menu to change color or brush styles and also to print or share your artwork via Email etc. Become an Artist on Android and print some of your best creations. Using HP Advanced Photo Paper has produced stunning results, worth framing.

 

https://market.android.com/details?id=com.techcasita.android.creative

 

Read More

Android SDK Source Code for your IDE

Android SDK Source Code for your IDE

“There was nothing you could have done, Luke, had you been there. You’d have been killed too, and the droids would now be in the hands of the Empire.”

While the Android SDK comes with a complete set of javadocs, the source code of the SDK is missing in the SDK distribution. This is very unfortunate, since you cannot easily debug into SDK methods (at least not without running into de-compiled code) nor can you see how things actually work.

Eclipse - Source Not Found

However, there is a quick fix to that problem. I downloaded the complete Android source including the Linux, drivers, libs, etc., like explained here: http://source.android.com/source/download.html and ran small Java program on the source tree. I used to this with a simple bash script but over the last couple of Android Releases, the java source locations got a little more diverse and I started missing a couple files. So instead, this Java program walks the source tree and looks for java source files. All those will then be copied into a new location, considering their package name. Finally, the jar tool gets called to put all the source into a single bundle for easier handling.

Read More

Android – UI, for phones and tablets

Android – UI, for phones and tablets

Sometimes front-loading still makes sense, but be aware of agile doctrinaires. With not even 1 percent of Android devices running Android 3.x i.e. qualifying as Android Tablets, you may have a hard time explaining why you would want to put in the extra work and make you Android app look great and feel right on a cool Android Tablet like the Motorola Xoom or the Samsung Tab 10.1. However, I still think it’s well worse the effort. There are less apps optimized for the tablets and users will appreciate your work even more, praising your app loudly, so loud that even Android phone users will eventually hear it.

Following Jeff Peacock’s Android 101 talk, I recently had the opportunity to talk about Android UI for Tablets. Talking for more than two hours straight in a cramped room, sometimes kneeling on the floor entering code, might not look enjoyable to you, but if you have ever attended a CodeCamp you know that this is how these events sometimes work. Moreover, it’s always extra exciting, presenting all new content, and I had worked on code and slides for the “Android UI for Phones and Tablets” until the early morning hours. So it was a great to see so many developers exited about Android and Android Tablets for that matter.

Read More
content top