diff --git a/doc/src/index.md b/doc/src/index.md index bdb0f75..9ac39d0 100644 --- a/doc/src/index.md +++ b/doc/src/index.md @@ -154,9 +154,9 @@ plot!(t, polished, label="Recovered with Wiener") # ...original and recovered si plot!(t, signal, label="Lomb–Scargle model") #...and best fitting Lomb–Scargle model ``` -![image](wiener-time-series-observed.png) +![image](wiener/time-series-observed.png) -![image](wiener-time-series-recovered.png) +![image](wiener/time-series-recovered.png) Note that the signal recovered with the Wiener deconvolution is generally a good improvement with respect to the best-fitting @@ -209,7 +209,13 @@ view(polished) # ...the polished image view(polished2) # ...the second polished image ``` -![image](wiener-cameraman.jpg) +| Original image | Blurred image | +| :------------------------------------------------- | :--------------------------------------------------------- | +| ![](wiener/original.jpg) | ![](wiener/blurred.jpg) | + +| Image restored with exact power spectrum and noise | Image restored with imperfect reference noise and spectrum | +| :------------------------------------------------- | :--------------------------------------------------------- | +| ![](wiener/polished.jpg) | ![](wiener/polished2.jpg) | ### Richardson-Lucy deconvolution @@ -240,7 +246,14 @@ aberration. imshow(restored_img_2000) ``` -![image](lucy-cameraman.jpg) +| Original image | Blurred image | +| :--------------------------------- | :------------------------------- | +| ![](lucy/original.jpg) | ![](lucy/blurred.jpg) | + +| Result of 200 `lucy` iterations | Result of 2000 `lucy` iterations | +| :--------------------------------- | :--------------------------------| +| ![](lucy/restored_200.jpg) | ![](lucy/restored_2000.jpg) | + ## Development diff --git a/doc/src/lucy-cameraman.jpg b/doc/src/lucy-cameraman.jpg deleted file mode 100644 index 0ceef2f..0000000 Binary files a/doc/src/lucy-cameraman.jpg and /dev/null differ diff --git a/doc/src/lucy/blurred.jpg b/doc/src/lucy/blurred.jpg new file mode 100644 index 0000000..3eb67b9 Binary files /dev/null and b/doc/src/lucy/blurred.jpg differ diff --git a/doc/src/lucy-cameraman.jl b/doc/src/lucy/cameraman.jl similarity index 70% rename from doc/src/lucy-cameraman.jl rename to doc/src/lucy/cameraman.jl index 2835801..128a48d 100644 --- a/doc/src/lucy-cameraman.jl +++ b/doc/src/lucy/cameraman.jl @@ -16,8 +16,7 @@ blurred_img = fft(img) .* fft(blurring) |> ifft |> real (N, M) = size(blurred_img) -out = ((vcat(hcat(img, ones(M, 20), blurred_img), - ones(20, 2M+20), - hcat(result_200_iterations, ones(M, 20), result_2000_iterations)))) - -save("lucy-cameraman.jpg", Images.clamp01nan.(out)) +save("original.jpg", Images.clamp01nan.(img)) +save("blurred.jpg", Images.clamp01nan.(blurred_img)) +save("restored_200.jpg", Images.clamp01nan.(result_200_iterations)) +save("restored_2000.jpg", Images.clamp01nan.(result_2000_iterations)) diff --git a/doc/src/lucy/original.jpg b/doc/src/lucy/original.jpg new file mode 100644 index 0000000..4d51b78 Binary files /dev/null and b/doc/src/lucy/original.jpg differ diff --git a/doc/src/lucy/restored_200.jpg b/doc/src/lucy/restored_200.jpg new file mode 100644 index 0000000..6ac9a93 Binary files /dev/null and b/doc/src/lucy/restored_200.jpg differ diff --git a/doc/src/lucy/restored_2000.jpg b/doc/src/lucy/restored_2000.jpg new file mode 100644 index 0000000..4dd61e5 Binary files /dev/null and b/doc/src/lucy/restored_2000.jpg differ diff --git a/doc/src/wiener-cameraman.jpg b/doc/src/wiener-cameraman.jpg deleted file mode 100644 index 93ef880..0000000 Binary files a/doc/src/wiener-cameraman.jpg and /dev/null differ diff --git a/doc/src/wiener/blurred.jpg b/doc/src/wiener/blurred.jpg new file mode 100644 index 0000000..77fa078 Binary files /dev/null and b/doc/src/wiener/blurred.jpg differ diff --git a/doc/src/wiener-cameraman.jl b/doc/src/wiener/cameraman.jl similarity index 89% rename from doc/src/wiener-cameraman.jl rename to doc/src/wiener/cameraman.jl index 9b91d6d..232d8c9 100644 --- a/doc/src/wiener-cameraman.jl +++ b/doc/src/wiener/cameraman.jl @@ -46,7 +46,7 @@ noise2 = rand(Float64, size(img)) # Create another additive noise # Polish the image with Deconvolution deconvolution polished2 = wiener(blurred_img, img2, noise2, blurring) -out = ((vcat(hcat(img, ones(512, 20), blurred_img), - ones(20, 1024+20), - hcat(polished, ones(512, 20), polished2)))) -save("wiener-cameraman.jpg", Images.clamp01nan.(out)) +save("original.jpg", Images.clamp01nan.(img)) +save("blurred.jpg", Images.clamp01nan.(blurred_img)) +save("polished.jpg", Images.clamp01nan.(polished)) +save("polished2.jpg", Images.clamp01nan.(polished2)) diff --git a/doc/src/wiener/original.jpg b/doc/src/wiener/original.jpg new file mode 100644 index 0000000..4d51b78 Binary files /dev/null and b/doc/src/wiener/original.jpg differ diff --git a/doc/src/wiener/polished.jpg b/doc/src/wiener/polished.jpg new file mode 100644 index 0000000..cc0dc6d Binary files /dev/null and b/doc/src/wiener/polished.jpg differ diff --git a/doc/src/wiener/polished2.jpg b/doc/src/wiener/polished2.jpg new file mode 100644 index 0000000..270ad53 Binary files /dev/null and b/doc/src/wiener/polished2.jpg differ diff --git a/doc/src/wiener-time-series-observed.png b/doc/src/wiener/time-series-observed.png similarity index 100% rename from doc/src/wiener-time-series-observed.png rename to doc/src/wiener/time-series-observed.png diff --git a/doc/src/wiener-time-series-recovered.png b/doc/src/wiener/time-series-recovered.png similarity index 100% rename from doc/src/wiener-time-series-recovered.png rename to doc/src/wiener/time-series-recovered.png diff --git a/doc/src/wiener-time-series.jl b/doc/src/wiener/time-series.jl similarity index 81% rename from doc/src/wiener-time-series.jl rename to doc/src/wiener/time-series.jl index cf81588..bb99ca9 100644 --- a/doc/src/wiener-time-series.jl +++ b/doc/src/wiener/time-series.jl @@ -15,13 +15,15 @@ # ### Code: +using Random + Random.seed!(7) -using LombScargle, Deconvolution, Plots +using LombScargle, Deconvolution, Plots, Statistics t = range(0, stop=10, length=1000) # observation times -x = sinpi(t) .* cos(5t) - 1.5cospi(t) .* sin(2t) # the original signal +x = sinpi.(t) .* cos.(5t) - 1.5cospi.(t) .* sin.(2t) # the original signal n = rand(length(x)) # noise to be added -y = x + 3(n - mean(n)) # observed noisy signal +y = x + 3(n .- mean(n)) # observed noisy signal # Lomb-Scargle periodogram p = lombscargle(t, y, maximum_frequency=2, samples_per_peak=10) plot(freqpower(p)...) @@ -35,8 +37,8 @@ noise = rand(length(y)) # noise for `wiener` polished = wiener(y, signal, noise) plot(t, x, size=(900, 600), label="Original signal", linewidth=2) plot!(t, y, label="Observed signal") -savefig("wiener-time-series-observed.png") +savefig("time-series-observed.png") plot(t, x, size=(900, 600), label="Original signal", linewidth=2) plot!(t, polished, label="Recovered with Wiener") plot!(t, signal, label="Lomb–Scargle model") -savefig("wiener-time-series-recovered.png") +savefig("time-series-recovered.png")