88 end |
88 end |
89 |
89 |
90 return v |
90 return v |
91 end |
91 end |
92 |
92 |
93 interpolate2d = interpolate2d_quadrants |
|
94 |
|
95 ############## |
93 ############## |
96 # Translation |
94 # Translation |
97 ############## |
95 ############## |
98 |
96 |
99 @polly function translate_image!(x, z, u::DisplacementFull) |
97 @polly function translate_image!(x, z, u::DisplacementFull) |
100 @assert(size(u, 1)==2 && size(x)==size(u)[2:end] && size(x)==size(z)) |
98 @assert(size(u, 1)==2 && size(x)==size(u)[2:end] && size(x)==size(z)) |
101 |
99 |
102 @inbounds @simd for i=1:size(x, 1) |
100 @inbounds @simd for i=1:size(x, 1) |
103 @simd for j=1:size(x, 2) |
101 @simd for j=1:size(x, 2) |
104 pt = (i - u[1, i, j], j - u[2, i, j]) |
102 pt = (i - u[1, i, j], j - u[2, i, j]) |
105 x[i, j] = interpolate2d(z, pt) |
103 x[i, j] = interpolate2d_quadrants(z, pt) |
106 end |
104 end |
107 end |
105 end |
108 end |
106 end |
109 |
107 |
110 @polly function translate_image!(x, z, u::DisplacementConstant) |
108 @polly function translate_image!(x, z, u::DisplacementConstant) |
111 @assert(size(u)==(2,) && size(x)==size(z)) |
109 @assert(size(u)==(2,) && size(x)==size(z)) |
112 |
110 |
113 @inbounds @simd for i=1:size(x, 1) |
111 @inbounds @simd for i=1:size(x, 1) |
114 @simd for j=1:size(x, 2) |
112 @simd for j=1:size(x, 2) |
115 pt = (i - u[1], j - u[2]) |
113 pt = (i - u[1], j - u[2]) |
116 x[i, j] = interpolate2d(z, pt) |
114 x[i, j] = interpolate2d_quadrants(z, pt) |
117 end |
115 end |
118 end |
116 end |
119 end |
117 end |
120 |
118 |
121 ###################### |
119 ###################### |