(*by Nasser M. Abbasi, updated 9/22/14*)
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 ti display*)
img = ExampleData[{"TestImage", "Lena"}];
)
]