Using OCR, I want to extract text from product packages using Google Glass. However, because of the fixed focus of the camera the package pictures are blurred. Is there a way to sharpen the image? Currently I use unsharp masking to enlarge the gradients of the edges, which gives me OK results.

Is there a better way to do this? I thought about taking a picture of a point-spread-function and using this to deconvolve, but I doubt this gives me a good approximation of the distortion kernel.

Here is an example:

enter image description here

  • $\begingroup$ Consider edge detecting, some forms can be written as a convolution, and deconvolution is convolution :-) $\endgroup$
    – Mikhail
    Commented Mar 27, 2015 at 13:55

1 Answer 1


You're after an algorithm in the family of "DeConvolution".
Specifically in your case, is called Blind Deconvolution.

Yet if you have some assumption the Blur you can use Wiener Filter or Lucy Richardson.
Both of them are actually the MMSE Estimator just with different assumption of the noise.
Both of the methods are actually "Inverse Filter" on an Low Pass Filter, which means they are High Pass Filter, just like the Unsharp Filter you applied.
The difference is those methods are optimal per given "Blur Model".

Yet, if you go after the Blind Deconvolution, today the best estimators are based on some prior of the image.
Something like the distribution of the Gradient of the image and stuff like that.

Yet if you are only after the text in the image.
Something simple like Wiener Filter + Edge Detection should do the work to give you most data.

  • $\begingroup$ Thanks, Blind Deconvolution seems to be what I am looking for. But how would I combine the deconvolved image with the edge image? $\endgroup$ Commented Mar 29, 2015 at 8:59
  • $\begingroup$ What do you mean? Why won't you extract the edges from the "Deconvolved" image? $\endgroup$
    – Royi
    Commented Mar 29, 2015 at 11:36
  • $\begingroup$ An edge filter gives me the outlines for the characters, but the OCR only recognizeds filled out characters. $\endgroup$ Commented Mar 29, 2015 at 14:00
  • $\begingroup$ Again, Apply the deconvolution process -> Get a sharp image as result -> continue like you'd do with a perfect out of the camera image. $\endgroup$
    – Royi
    Commented Mar 29, 2015 at 14:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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