src/Translate.jl

changeset 30
0b25d9ef7af9
parent 29
05b11c96ef45
child 31
62645d05985a
equal deleted inserted replaced
29:05b11c96ef45 30:0b25d9ef7af9
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

mercurial