File size: 1,452 Bytes
6dfde8b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python3

# this routine reads in many image files which are 128 pixels high
# and finds the lowest and highest non-black pixels across all images
import sys
from PIL import Image
from control_toys.data import fast_scandir
from tqdm import tqdm

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print(f"Usage: {sys.argv[0]} <image-dirs>")
        sys.exit(1)

    img_dirs = sys.argv[1:]

    img_files = []
    for imgdir in img_dirs:
        i_subdirs, imfile = fast_scandir(imgdir, ['png', 'jpg', 'jpeg'])
        if imfile != []: img_files = img_files + imfile

    # remove any files with the 'transpose' in the name 
    img_files = [f for f in img_files if 'transpose' not in f]

    if len(img_files) == 0:
        print(f"No image files found in {img_dirs}")
        sys.exit(1)

    min_note = 128
    max_note = 0
    for img_file in tqdm(img_files):
        img = Image.open(img_file)
        img = img.convert('L') 
        for y in range(img.size[-1]):
            for x in range(img.size[0]):
                val = img.getpixel((x,y))
                if val > 0:
                    if y < min_note: min_note = y
                    if y > max_note: max_note = y
                    break
    print(f"min_note = {min_note}, max_note = {max_note}")
    transpose_max = 12
    print(f"So with transpostion of +/-{transpose_max}, the range is", min_note-transpose_max, "to", max_note+transpose_max)
    sys.exit(0)