Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to make an app that will capture the video from the mobile's camera and detect in real time all the text that will be captured. I would like to make it in C# (for e.g. Windows Mobile) but I can also try to do it in Java (for e.g. Android). Can anyone help me how can I start with it?

share|improve this question
This is a very involved topic! People are still doing research to make that kind of a thing a complete, flawless reality! I suggest you read up more on computer vision, AI, image processing etc. – yati sagade Nov 15 '11 at 19:12
Ok, so for the start I have found the OpenCV library and it's wrapper EmguCV for C# - I will give it a shot now and if I don't get any replies I will post something on my own (for future questions like this :) ). – Patryk Nov 15 '11 at 19:45
Sure :) Actually even I am interested in vision/image processing. – yati sagade Nov 15 '11 at 19:47
I've retagged the question as computer-vision as it seems to be the formal name of what you're trying to do. Good luck on an extremely complex project. – Yannis Nov 15 '11 at 20:32
@Yannis Rizos Thanks for editing. Why would you describe this as an extremely complex ? Do you think it will be difficult to complete ? – Patryk Nov 15 '11 at 23:56
up vote 2 down vote accepted

Start by breaking the problem down into smaller, more manageable parts:

  1. Choose a platform. You mention using both C# for Windows Mobile and Java for Android. It's great to be open-minded, but pick one or the other for now. You'll have a hard time making much progress until you do.

  2. Procure a development environment and test device suitable for developing on your chosen platform. Learn to use it. You don't want to be trying to learn the ins and outs of mobile development while also implementing your first computer vision project.

  3. Build an app that can capture and process images from the camera. Don't worry about looking for words yet -- just get individual frames and do something very simple with them. You could display the average red, green, and blue values for the image, for example, or replace all the green pixels with pixels from a chosen image.

  4. Learn something about computer vision and optical character recognition. I'm not up on how OCR is done these days, but I'd expect that some steps in the process might involve filtering the image to simplify it, doing some edge detection, and trying to match features of the resulting shapes to the set of known shapes that are the characters you're trying to detect.

  5. Write some software that uses the knowledge you gained in step 4 to detect characters in sample images. Ideally, it should work for samples where the characters are distorted and the images include the kind of noise you'd get from a camera on a mobile device. You don't necessarily have to make this software a mobile application -- at this point you're just learning the techniques you'll need for your mobile app.

  6. Incorporate the image processing software from step 5 into the app from step 3.

Note that steps 4 and 5 can (probably should) take place before steps 1-3, depending on your priorities.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.