src/Translate.jl

changeset 29
05b11c96ef45
parent 23
64a3f09e5fa7
child 30
0b25d9ef7af9
equal deleted inserted replaced
28:d1f40f6654cb 29:05b11c96ef45
130 # Translation from target to source coordinates 130 # Translation from target to source coordinates
131 vxʹ = (imx-bx)/2 - v[1] 131 vxʹ = (imx-bx)/2 - v[1]
132 vyʹ = (imy-by)/2 - v[2] 132 vyʹ = (imy-by)/2 - v[2]
133 133
134 # Target image indices within source image 134 # Target image indices within source image
135 px = max(ceil(Int, max(1, vxʹ + 1) - vxʹ), 1) 135 px = min(max(ceil(Int, max(1, vxʹ + 1) - vxʹ), 1), bx)
136 py = max(ceil(Int, max(1, vyʹ + 1) - vyʹ), 1) 136 py = min(max(ceil(Int, max(1, vyʹ + 1) - vyʹ), 1), by)
137 qx = min(floor(Int, min(imx, vxʹ + bx) - vxʹ), bx) 137 qx = max(min(floor(Int, min(imx, vxʹ + bx) - vxʹ), bx), 1)
138 qy = min(floor(Int, min(imy, vyʹ + by) - vyʹ), by) 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:end, :] .= 0 142 b[qx+1:bx, :] .= 0
143 143
144 Threads.@threads for i=px:qx 144 Threads.@threads for i=px:qx
145 b[i, 1:py-1] .= 0 145 b[i, 1:py-1] .= 0
146 b[i, qy+1:end] .= 0 146 b[i, qy+1:by] .= 0
147 @simd for j=py:qy 147 @simd for j=py:qy
148 b[i, j] = interpolate2d_quadrants(im, (i+vxʹ, j+vyʹ)) 148 b[i, j] = interpolate2d_quadrants(im, (i+vxʹ, j+vyʹ))
149 end 149 end
150 end 150 end
151 end 151 end

mercurial