--- a/src/Translate.jl Fri Dec 27 21:41:52 2019 +0200 +++ b/src/Translate.jl Sat Dec 28 02:10:06 2019 +0200 @@ -6,6 +6,8 @@ module Translate +using AlgTools.Util: @threadsif + ########## # Exports ########## @@ -96,23 +98,25 @@ # Translation ############## -function translate_image!(x, z, u::DisplacementFull) +function translate_image!(x, z, u::DisplacementFull; + threads::Bool=false) @assert(size(u, 1)==2 && size(x)==size(u)[2:end] && size(x)==size(z)) - Threads.@threads for i=1:size(x, 1) - @inbounds for j=1:size(x, 2) + @threadsif threads for i=1:size(x, 1) + for j=1:size(x, 2) x[i, j] = interpolate2d_quadrants(z, i - u[1, i, j], j - u[2, i, j]) end end end -function translate_image!(x, z, u::DisplacementConstant) +function translate_image!(x, z, u::DisplacementConstant; + threads::Bool=false) @assert(size(u)==(2,) && size(x)==size(z)) @inbounds a, b = u[1], u[2] - Threads.@threads for i=1:size(x, 1) - @inbounds for j=1:size(x, 2) + @threadsif threads for i=1:size(x, 1) + for j=1:size(x, 2) x[i, j] = interpolate2d_quadrants(z, i - a, j - b) end end @@ -122,7 +126,8 @@ # Subimage extraction ###################### -function extract_subimage!(b, im, v::DisplacementConstant) +function extract_subimage!(b, im, v::DisplacementConstant; + threads::Bool=false) (imx, imy) = size(im) (bx, by) = size(b) @@ -141,7 +146,7 @@ b[qx+1:bx, :] .= 0 end - Threads.@threads for i=px:qx + @threadsif false for i=px:qx @inbounds begin b[i, 1:py-1] .= 0 b[i, qy+1:by] .= 0