Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def cell_hist(gradients):
- h, w, d = gradients.shape
- window_size = 8
- res_h = int(h / window_size)
- res_w = int(w / window_size)
- bins_number = 9
- bin_width = (180 / bins_number)
- bins = [bin_width * x for x in range(bins_number)]
- result = np.zeros((res_h, res_w, bins_number))
- for a in range(res_h):
- for b in range(res_w):
- fragment = gradients[a*window_size:(a+1)*window_size, b*window_size:(b+1)*window_size]
- hist = np.zeros(bins_number)
- for row in fragment:
- for pixel in row:
- nbin = int((pixel[1] // bin_width) % 9)
- hist[nbin] += ((pixel[1] - bins[nbin]) / bin_width) * pixel[0]
- if nbin != bins_number - 1:
- hist[nbin+1] += ((bins[nbin+1] - pixel[1]) / bin_width) * pixel[0]
- else:
- hist[0] += ((180 - pixel[1]) / bin_width) * pixel[0]
- result[a,b] = hist
- return result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement