def __render_gamestate(self):
"""
Renders the new gamestate based on the changed board condition using HOG gradients over sliding window
:return: None
"""
slides = sliding_window(self.jigsaw_image, self.stride, self.window)
hog_gradients = []
for slide in slides:
window_image = slide[2]
gradient = np.array(hog(image=window_image,
orientations=self.num_gradients,
pixels_per_cell=self.window,
cells_per_block=(1, 1), visualise=False))
assert 0 <= np.max(gradient) <= 1, "Gradients are not normalized"
assert gradient.size == self.num_gradients, "Gradient size not equal to desired size"
gradient = gradient_discretizer(gradient, self.bins)
hog_gradients.extend(gradient)
hog_gradients = np.array(hog_gradients)
hog_gradients = hog_gradients.reshape((self.state_height, self.state_width, self.num_gradients))
assert self.gamestate.shape == hog_gradients.shape, "The state dimension is trying to be altered"
self.gamestate = hog_gradients
评论列表
文章目录