import numpy
image = io.imread(...........тут параметры...........)
# shape - это форма массива, т.е. его размер по разным осям.
print(image.shape) #выведет (H, W) где H и W - высота и ширина изображения
#повторяем яркость три раза (три канала, RGB), получаем как бы цветное изображение (по факту все равно серое).
color_image = numpy.stack((image, image, image), axis=-1) # делаем "стопку" из трёх копий массива image
print(color_image.shape) #выведет (H, W, 3)
image = io.imread(...........тут параметры...........)
print(type(image))
<class 'numpy.ndarray'>
или <class 'array.array'>
, хотя может и что-то другое. Если первое - находи туториал по работе с numpy и изучи его (numpy - это очень мощная штука, но требует изучения). Если второе - то используется встроенный модуль array, читай про него в справке. как с тредами так и с потоками.
Там либо есть вариант упаковки one file, и тогда ты в состоянии найти ответ самостоятельно, либо его нет, и тогда тебе придётся либо смириться, либо искать дургой упаковщик.