def estimate_skew(flat, bignore=0.1, maxskew=2, skewsteps=8, debug=0):
''' estimate skew angle and rotate'''
d0,d1 = flat.shape
o0,o1 = int(bignore*d0),int(bignore*d1) # border ignore
flat = np.amax(flat)-flat
flat -= np.amin(flat)
est = flat[o0:d0-o0,o1:d1-o1]
ma = maxskew
ms = int(2*maxskew*skewsteps)
# print(linspace(-ma,ma,ms+1))
angle = estimate_skew_angle(est,
np.linspace(-ma,ma,ms+1),
debug=debug)
flat = interpolation.rotate(flat, angle, mode='constant', reshape=0)
flat = np.amax(flat)-flat
return flat, angle
评论列表
文章目录