':returns: a gray-scale (h, w) uint8 image'

def current_state(self):

    ret = self._grab_raw_image()
    ret = np.maximum(ret, self.last_raw_screen)
    if self.viz:
        if isinstance(self.viz, float):
            cv2.imshow(self.windowname, ret)
            time.sleep(self.viz)
    ret = ret[self.height_range[0]:self.height_range[1], :].astype('float32')
    ret = cv2.cvtColor(ret, cv2.COLOR_RGB2GRAY)
    ret = cv2.resize(ret, self.image_shape)
    return ret.astype('uint8')
