Since there is an algorithm to blur images, so that part of it cannot be recognised, can we reverse the algorithm and unblur part of than image?
Is there a program that already does that, is that even possible, even in a near future?
Software Engineering Stack Exchange is a question and answer site for professionals, academics, and students working within the systems development life cycle. It only takes a minute to sign up.Sign up to join this community
Deconvolution (also see here and here) can partially deblur a photo. There is plenty of software out there that implements it, and this was even a fairly basic excersise in an image processing class I took in College. It's not possible to completely reverse the blurring, since it is lossy, but a lot of information can be restored (also see here (PDF)).
A motion blurred photo will be easier to restore than something that's simply out of focus, though both can be restored to a degree.
Reversing image manipulation depends on how something has been manipulated.
Since the image is a representation of the object and we only have the visual data in that image, we can't "unblur" it, since we don't have the data.
Imagine a blurred image (like a pixelated faced) is similar to an email without all of the characters, we wouldn't be able to take the characters that we do have available to make up the exact words of the original email.
There may be ways to make a rough appropriation what the image may be, but they'll only ever be approximations, nothing like Action film "enhance!" representation of image manipulation.
Update: obligatory link to a page about the "swirled face" http://sciencenotes.wordpress.com/2007/10/20/what-computers-can-swirl-computers-can-unswirl/
In the article Why blurring sensitive information is a bad idea the authors describe an method of 'unblurring' numbers and text.
The process is similar to a dictionary attack: you make blurred images (of similar pattern) from characters/numbers and then match these with the blur.
No, you cannot reverse the algorithm. At some level, most blur filters work by summing and averaging over pixel values. If you add two pixel values and replace each number with the average of both, you can not later determine which values you had originally.
pixel1 = 3 pixel2 = 5 blurredPixel = (pixel1 + pixel2) / 2 = 4 newPixel1 = blurredPixel = 4 newPixel2 = blurredPixel = 4
If you only have newPixel 1 and 2, you cannot find out if the original pixels where 3 and 5, 1 and 7 or any other possible combination.