97 ############## |
97 ############## |
98 |
98 |
99 function translate_image!(x, z, u::DisplacementFull) |
99 function translate_image!(x, z, u::DisplacementFull) |
100 @assert(size(u, 1)==2 && size(x)==size(u)[2:end] && size(x)==size(z)) |
100 @assert(size(u, 1)==2 && size(x)==size(u)[2:end] && size(x)==size(z)) |
101 |
101 |
102 @inbounds Threads.@threads for i=1:size(x, 1) |
102 Threads.@threads for i=1:size(x, 1) |
103 @simd for j=1:size(x, 2) |
103 @inbounds for j=1:size(x, 2) |
104 pt = (i - u[1, i, j], j - u[2, i, j]) |
104 pt = (i - u[1, i, j], j - u[2, i, j]) |
105 x[i, j] = interpolate2d_quadrants(z, pt) |
105 x[i, j] = interpolate2d_quadrants(z, pt) |
106 end |
106 end |
107 end |
107 end |
108 end |
108 end |
109 |
109 |
110 function translate_image!(x, z, u::DisplacementConstant) |
110 function translate_image!(x, z, u::DisplacementConstant) |
111 @assert(size(u)==(2,) && size(x)==size(z)) |
111 @assert(size(u)==(2,) && size(x)==size(z)) |
112 |
112 |
113 a, b = u[1], u[2] |
113 @inbounds a, b = u[1], u[2] |
114 |
114 |
115 @inbounds Threads.@threads for i=1:size(x, 1) |
115 Threads.@threads for i=1:size(x, 1) |
116 @simd for j=1:size(x, 2) |
116 @inbounds for j=1:size(x, 2) |
117 x[i, j] = interpolate2d_quadrants(z, (i - a, j - b)) |
117 x[i, j] = interpolate2d_quadrants(z, (i - a, j - b)) |
118 end |
118 end |
119 end |
119 end |
120 end |
120 end |
121 |
121 |
138 qy = max(min(floor(Int, min(imy, vyʹ + by) - vyʹ), by), 1) |
138 qy = max(min(floor(Int, min(imy, vyʹ + by) - vyʹ), by), 1) |
139 |
139 |
140 @inbounds begin |
140 @inbounds begin |
141 b[1:px-1, :] .= 0 |
141 b[1:px-1, :] .= 0 |
142 b[qx+1:bx, :] .= 0 |
142 b[qx+1:bx, :] .= 0 |
|
143 end |
143 |
144 |
144 Threads.@threads for i=px:qx |
145 Threads.@threads for i=px:qx |
|
146 @inbounds begin |
145 b[i, 1:py-1] .= 0 |
147 b[i, 1:py-1] .= 0 |
146 b[i, qy+1:by] .= 0 |
148 b[i, qy+1:by] .= 0 |
147 @simd for j=py:qy |
149 for j=py:qy |
148 b[i, j] = interpolate2d_quadrants(im, (i+vxʹ, j+vyʹ)) |
150 b[i, j] = interpolate2d_quadrants(im, (i+vxʹ, j+vyʹ)) |
149 end |
151 end |
150 end |
152 end |
151 end |
153 end |
152 end |
154 end |