Beispiel #1
0
class gameboard:

    mat = []
    X = 0
    Y = 0
    color = colors.colors()
    blocks = Blocks.Blocks()

    def __init__(self, x, y, mode=0):
        self.mat = Matrix.matrix(x, y, mode)
        self.X = x
        self.Y = y
        self.mat.VERBOSE = False

    def getMatrix(self):
        # returns the pixel matrix
        return self.mat

    def setPixel(self, x, y, color):
        # sets the pixel at coordinate (x, y) to color
        r = color[0]
        g = color[1]
        b = color[2]
        if r >= 0 and g >= 0 and b >= 0 and r < 256 and g < 256 and b < 256:
            self.mat.setPixel(x, y, color)
        else:
            raise ValueError("value(s) out of range")

    def setBlock(self, x, y, block):
        if x >= 0 and y >= 0 and x < self.mat.Xmax and y < self.mat.Ymax:

            if self.mat.VERBOSE:
                print("new " + str(block) + ": (" + str(x) + ", " + str(y) +
                      ")")

            if block == 'i_block':
                object = self.blocks.i_block(x, y)
                for px in range(len(object[0])):
                    self.setPixel(object[0][px][0], object[0][px][1],
                                  object[1])
            elif block == 'l_block':
                object = self.blocks.l_block(x, y)
                for px in range(len(object[0])):
                    self.setPixel(object[0][px][0], object[0][px][1],
                                  object[1])
            elif block == 'z_block':
                object = self.blocks.z_block(x, y)
                for px in range(len(object[0])):
                    self.setPixel(object[0][px][0], object[0][px][1],
                                  object[1])
            elif block == 'o_block':
                object = self.blocks.o_block(x, y)
                for px in range(len(object[0])):
                    self.setPixel(object[0][px][0], object[0][px][1],
                                  object[1])
            elif block == 't_block':
                object = self.blocks.t_block(x, y)
                for px in range(len(object[0])):
                    self.setPixel(object[0][px][0], object[0][px][1],
                                  object[1])
            else:
                raise ValueError("'" + str(block) + "' is no block")
        else:
            raise ValueError("value(s) out of range")
Beispiel #2
0
n_trial, n_channel, n_sample = original_signal.shape[:]

# pre-processing data
# get std and mean
if standard_before:
    params = io.loadmat(other_path)
    mean = params['mean']
    std = params['std']
    original_signal = (original_signal-mean)/std

epoch_length = int(Fs * window_time_length / 1000.)
perturb_length = math.floor(Fs * perturb_time / 1000.)

# ============================ build model ==============================
processers = [
    Blocks.Xdawn(n_filters=4, with_xdawn_templates=True, apply_filters=True),
    Blocks.CovarianceFeature(with_mean_templates=False),
    Blocks.TangentSpaceFeature(mean_metric='riemann', name='TangentSpace({})'.format('riemann'))
]
classifier = Blocks.LogisticRegression()

model = Pipeline(processers, classifier)
model.load(load_path)
keras_model = model.get_keras_model(input_shape=(n_channel, epoch_length))

# =========================== target attack ==============================
acc_dict = {}
clean_acc_dict = {}
for target_char in target_char_list:

    # get stimuli of the target char