zlacker

[parent] [thread] 7 comments
1. siberi+(OP)[view] [source] 2020-05-31 16:31:47
That wasn't really a "blur", though. A swirl like that is just moving pixels around. If know how the algorithm works, you can reverse it. Probably, it was done with a common program like Adobe Photoshop or Gimp or something. One could write a program that would just "unswirl" with various parameters and generate a bunch of images, and a human could pick out the one that looks like an unswirled image. If you can pick out the right paramaters to the unswirl, then no image information is lost.

That can't be done with a blur. In a blur, pixels are merged or averaged together and information is lost. In some cases you could sharpen it a little, but it's still not going to be as good as the original image. In a really good blur, even the best sharpen algorithm isn't going to give you something that looks like an identifiable face.

replies(2): >>DanBC+y >>Mauran+ca
2. DanBC+y[view] [source] 2020-05-31 16:36:29
>>siberi+(OP)
The swirl was done with photoshop, and Interpol got Adobe to create an unswirl tool. Interpol was involved because a man had been sexually abusing children, and photographing the abuse, and he released those photographs.

https://en.wikipedia.org/wiki/Christopher_Paul_Neil

3. Mauran+ca[view] [source] 2020-05-31 17:55:43
>>siberi+(OP)
> That can't be done with a blur. In a blur, pixels are merged or averaged together and information is lost.

I'd be careful with that assumption. The only thing that really loses information is the discretization back into 0-255 range, and that naturally loses very little information.

If you consider the pixels as a large vector of values, you're effectively multiplying it by a matrix (plus discretization afterwards). If that matrix has (near) full rank, you can restore (close to) all the information.

Consider an grayscale image with two pixels a = 10, b = 20. I apply a blur that transfers 10% of each pixel to the other one. I end up with 11, 19. I'm left with the information 0.9 a + 0.1 b = 11, 0.1 a + 0.9 b = 19. Clearly this system can be solved uniquely. Or equivalently, the blur matrix (and I don't mean the kernel but the full blur operation matrix) is [[ 0.9 0.1 ] [ 0.1 0.9]], which has full rank and is thus invertible.

You'd be surprised at the amount of image detail that can be recovered by filtering when the original distortion function is known. See also https://en.wikipedia.org/wiki/Deconvolution and the lower half of that page's "See also" links section.

replies(3): >>dqv+ic >>kzrdud+RD >>wizzwi+RE
◧◩
4. dqv+ic[view] [source] [discussion] 2020-05-31 18:14:06
>>Mauran+ca
What about in the case of a mosaic blur?
replies(1): >>Mauran+hA1
◧◩
5. kzrdud+RD[view] [source] [discussion] 2020-05-31 21:49:24
>>Mauran+ca
So it would seem we should use a 0.5x + 0.5y blur to be sure to lose information - something that makes the matrix close to singular.

Also, how to handle the boundaries? We select a box in the image and blur that; we'd want to handle the boundaries in a way that also makes sure we lose information.

replies(1): >>Mauran+9A1
◧◩
6. wizzwi+RE[view] [source] [discussion] 2020-05-31 21:57:42
>>Mauran+ca
You actually do lose information around the edges (it's cropped). But not much; the images are pretty compressible, so you can just predict those pixels.
◧◩◪
7. Mauran+9A1[view] [source] [discussion] 2020-06-01 09:35:07
>>kzrdud+RD
Yes, you could set each pixel in the blurred region to the same color (i.e. each matrix entry is identical) - that could be black or the average of the blurred region. "Pixelation" does the same but in smaller boxes.
◧◩◪
8. Mauran+hA1[view] [source] [discussion] 2020-06-01 09:36:39
>>dqv+ic
The matrix is far from full rank in that case - its rank will be the number of mosaic pieces instead of the number of pixels. If you have 100 pixels per block, you actually lose 99% of the information with this blur.
[go to top]