This uses Radon/InverseRadon transforms adding to Mathematica in version 8.
The core of the logic is in this line:
ImageAdjust@InverseRadon[Radon[img, {n, n}, Method -> method],
"Filter" -> inverseMethod, "CutoffFrequency" -> cutOffFrequency]
By controlling the cutoff frequency, methods used, and applying your own custom backprojection method, you can achieve many different foggy effects.

code:
Manipulate[
ImageAdjust@InverseRadon[Radon[img, {n, n}, Method -> method],
"Filter" -> inverseMethod, "CutoffFrequency" -> cutOffFrequency]
,
Grid[{
{Control[{{cutOffFrequency, 1, Text@Row[{Subscript[Style["f", Italic, 11],
Style["c", Italic, 11]]}]}, .01, 1, 0.01,
ImageSize -> Small, Appearance -> "Labeled"}]
},
{Control[{{method, "Radon", "Radon method"}, {"Radon", "Hough"},
ControlType -> PopupMenu, ImageSize -> All}]},
{
Control[{
{inverseMethod, # Cos[# Pi] &, "Inverse Radon method"},
{(1 + Cos[# Pi])/2 & -> "Hann",
1 & -> "Rectangular",
# & -> "Ramp-Lak",
# Sin[# 2 Pi] & -> "Sin Ramp",
# Cos[# Pi] & -> "Cosine Ramp",
((1 - 0.16)/2 - (1/2) Cos[# Pi] + 0.08 Cos[# 2 Pi]) & -> "Blackman",
(0.355768 - 0.487396 Cos[# Pi] + 0.144232 Cos[# 2 Pi]) -
0.012604 Cos[# 3 Pi] & -> "Nuttal window",
Sinc[#] & -> "Shepp-Logan",
(.54 + .46 Cos[# Pi]) & -> "Hamming",
Sqrt[1/(1 + #^(2))] & -> "Butterworth order 1",
Sqrt[1/(1 + #^(4))] & -> "Butterworth order 2",
Sqrt[1/(1 + #^(6))] & -> "Butterworth order 3",
None -> "No filter"},
ControlType -> PopupMenu, ImageSize -> All}]
}}],
ContinuousAction -> False,
Initialization :>
(
n = 200;(*image size to display, smaller is faster*)
img = ExampleData[{"TestImage", "Lena"}];
)
]
ImageAdjust[Blend[{image, Blur[image, 50]}, 0.8], -0.4]
$\endgroup$ – user484 Sep 22 '14 at 20:22SetAlphaChannel
. You can get a more 3D effect by usingRaster3D
, but that would probably be overkill. $\endgroup$ – Jens Sep 22 '14 at 22:49