Ejemplo n.º 1
0
def main():
    if len(sys.argv) < 2:
        sys.exit("no file passed")

    imgpath = sys.argv[1]
    image = images.get_grayscale_picture(imgpath)
    if image == None:
        sys.exit("could not read image")

    resized = images.resize_with_padding(image, 30, 50)
    flattened = numpy.ravel(resized)

    symbol = classify(flattened, "symbol")

    if symbol == "note":
        note_duration = classify(flattened, "note_duration")
        pitch = classify(flattened, "pitch")
        print(symbol, note_duration, pitch)

        xmlpath = "demo/" + os.path.splitext(
            os.path.basename(imgpath))[0] + ".xml"
        musicxml.create_xml_for_note(pitch, note_duration, xmlpath)

    elif symbol == "rest":
        rest_duration = classify(flattened, "rest_duration")
        print(symbol, rest_duration)
Ejemplo n.º 2
0
def get_data(dirname, files, classifier_func, m=PIXELS):
    n = len(files)

    X = np.zeros(shape=(n, m))
    y = np.zeros(shape=(n, 1))

    for (i, filename) in enumerate(files):
        image = images.get_grayscale_picture(dirname + filename)
        klass = classifier_func(filename)

        X[i] = np.ravel(image / 255)
        y[i] = klass

    return (X, y)
Ejemplo n.º 3
0
def get_data(dirname, files, classifier_func, m = PIXELS):
    n = len(files)

    X = np.zeros(shape = (n, m))
    y = np.zeros(shape = (n, 1))

    for (i, filename) in enumerate(files):
        image = images.get_grayscale_picture(dirname + filename)
        klass = classifier_func(filename)
            
        X[i] = np.ravel(image / 255)
        y[i] = klass

    return (X, y)
Ejemplo n.º 4
0
def get_notes(inputdir, m=PIXELS):
    files = [f for f in os.listdir(inputdir) if f.startswith("note")]
    n = len(files)

    X = np.zeros(shape=(n, m))
    y = np.zeros(shape=(n, 1))

    for (i, filename) in enumerate(files):
        image = images.get_grayscale_picture(inputdir + filename)
        klass = classes.get_pitch_class(filename)

        X[i] = np.ravel(image / 255)
        y[i] = klass

    return (X, y)
Ejemplo n.º 5
0
def old_get_data(inputdir, m=PIXELS):
    files = [f for f in os.listdir(inputdir) if f.endswith(".png")]
    n = len(files)

    X = np.zeros(shape=(n, m))
    y = np.zeros(shape=(n, 1))

    for (i, filename) in enumerate(files):
        image = images.get_grayscale_picture(inputdir + filename)
        klass = get_symbol_class(filename)

        X[i] = np.ravel(image / 255)
        y[i] = klass

    return (X, y)
Ejemplo n.º 6
0
def get_quarters_and_eights(inputdir, m = PIXELS):
    files = [f for f in os.listdir(inputdir) if (f.startswith("note") and ("quarter" in f or "eighth" in f))]
    n = len(files)

    X = np.zeros(shape = (n, m))
    y = np.zeros(shape = (n, 1))

    for (i, filename) in enumerate(files):
        image = images.get_grayscale_picture(inputdir + filename)
        klass = 0 if ("quarter" in filename) else 1
            
        X[i] = np.ravel(image / 255)
        y[i] = klass

    return (X, y)
Ejemplo n.º 7
0
def get_notes(inputdir, m = PIXELS):
    files = [f for f in os.listdir(inputdir) if f.startswith("note")]
    n = len(files)

    X = np.zeros(shape = (n, m))
    y = np.zeros(shape = (n, 1))

    for (i, filename) in enumerate(files):
        image = images.get_grayscale_picture(inputdir + filename)
        klass = classes.get_pitch_class(filename)
            
        X[i] = np.ravel(image / 255)
        y[i] = klass

    return (X, y)
Ejemplo n.º 8
0
def old_get_data(inputdir, m = PIXELS):
    files = [f for f in os.listdir(inputdir) if f.endswith(".png")]
    n = len(files)

    X = np.zeros(shape = (n, m))
    y = np.zeros(shape = (n, 1))

    for (i, filename) in enumerate(files):
        image = images.get_grayscale_picture(inputdir + filename)
        klass = get_symbol_class(filename)
            
        X[i] = np.ravel(image / 255)
        y[i] = klass

    return (X, y)
Ejemplo n.º 9
0
def get_quarters_and_eights(inputdir, m=PIXELS):
    files = [
        f for f in os.listdir(inputdir)
        if (f.startswith("note") and ("quarter" in f or "eighth" in f))
    ]
    n = len(files)

    X = np.zeros(shape=(n, m))
    y = np.zeros(shape=(n, 1))

    for (i, filename) in enumerate(files):
        image = images.get_grayscale_picture(inputdir + filename)
        klass = 0 if ("quarter" in filename) else 1

        X[i] = np.ravel(image / 255)
        y[i] = klass

    return (X, y)