Skip to content

Commit 7cc4739

Browse files
committed
🧹 Deprecate *diff difference functions in favor of fdiff
Four legacy methods are deprecated in favor of `ImageBase.fdiff`: - `forwarddiffx` - `forwarddiffy` - `backdiffx` - `backdiffy` See the following two PRs for more information: - JuliaImages/ImageBase.jl#11 - JuliaImages/ImageBase.jl#22 This commit bumps ImageBase compatibility to v0.1.5
1 parent 5561842 commit 7cc4739

File tree

4 files changed

+8
-12
lines changed

4 files changed

+8
-12
lines changed

‎src/Images.jl

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,6 @@ export
140140
widthheight,
141141

142142
# algorithms
143-
backdiffx,
144-
backdiffy,
145-
forwarddiffx,
146-
forwarddiffy,
147143
imcorner,
148144
imcorner_subpixel,
149145
corner2subpixel,

‎src/algorithms.jl

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -303,12 +303,6 @@ imgaussiannoise(img::AbstractArray{T}) where {T} = imgaussiannoise(img, 0.01, 0)
303303

304304
# image gradients
305305

306-
# forward and backward differences
307-
# can be very helpful for discretized continuous models
308-
forwarddiffy(u::AbstractMatrix) = [u[2:end,:]; u[end:end,:]] - u
309-
forwarddiffx(u::AbstractMatrix) = [u[:,2:end] u[:,end:end]] - u
310-
backdiffy(u::AbstractMatrix) = u - [u[1:1,:]; u[1:end-1,:]]
311-
backdiffx(u::AbstractMatrix) = u - [u[:,1:1] u[:,1:end-1]]
312306
function div(p::AbstractArray{T,3}) where T
313307
# Definition from the Chambolle citation below, between Eqs. 5 and 6
314308
# This is the adjoint of -forwarddiff
@@ -369,7 +363,7 @@ function imROF(img::AbstractMatrix{T}, λ::Number, iterations::Integer) where T<
369363
for i = 1:iterations
370364
div_p = div(p)
371365
u = img - λ*div_p # multiply term inside ∇ by -λ. Thm. 3.1 relates this to u via Eq. 7.
372-
grad_u = cat(forwarddiffy(u), forwarddiffx(u), dims=3)
366+
grad_u = cat(fdiff(u, dims=1, boundary=:zero), fdiff(u, dims=2, boundary=:zero), dims=3)
373367
grad_u_mag = sqrt.(sum(abs2, grad_u, dims=3))
374368
p .= (p .- (τ/λ).*grad_u)./(1 .+ (τ/λ).*grad_u_mag)
375369
end

‎src/deprecations.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,6 +1076,11 @@ function ColorVectorSpace.complement(x::AbstractArray)
10761076
complement.(x)
10771077
end
10781078

1079+
@deprecate forwarddiffx(X) ImageBase.FiniteDiff.fdiff(X, dims=2, boundary=:zero)
1080+
@deprecate forwarddiffy(X) ImageBase.FiniteDiff.fdiff(X, dims=1, boundary=:zero)
1081+
@deprecate backdiffx(X) ImageBase.FiniteDiff.fdiff(X, dims=2, rev=true, boundary=:zero)
1082+
@deprecate backdiffy(X) ImageBase.FiniteDiff.fdiff(X, dims=1, rev=true, boundary=:zero)
1083+
10791084
# This is now replaced by ImageTransformations and Interpolations
10801085
using ImageTransformations.Interpolations: BSpline, Linear, interpolate
10811086
function bilinear_interpolation(img::AbstractArray{T,N}, xs::Vararg{<:Number, N}) where {T,N}

‎test/algorithms.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Images, OffsetArrays, TestImages
22
using Statistics, Random, LinearAlgebra, FFTW
33
using Test, Suppressor
4+
using ImageBase.FiniteDiff: fdiff
45

56
@testset "Algorithms" begin
67
@testset "Statistics" begin
@@ -471,7 +472,7 @@ using Test, Suppressor
471472
# Test that -div is the adjoint of forwarddiff
472473
p = rand(3,3,2)
473474
u = rand(3,3)
474-
gu = cat(Images.forwarddiffy(u), Images.forwarddiffx(u), dims=3)
475+
gu = cat(fdiff(u, dims=1, boundary=:zero), fdiff(u, dims=2, boundary=:zero), dims=3)
475476
@test sum(-Images.div(p) .* u) ≈ sum(p .* gu)
476477

477478
img = [0.1 0.2 0.1 0.8 0.9 0.7;

0 commit comments

Comments
 (0)