Благодаря ответам в комментариях, вот решение, которое сохраняет изображение в формате JPEG и считывает его обратно в память, используя стандартные библиотеки python.
import io
import imageio
# Image is 2D numpy array, q is quality 0-100
def jpegBlur(im,q):
buf = io.BytesIO()
imageio.imwrite(buf,im,format='jpg',quality=q)
s = buf.getbuffer()
return imageio.imread(s,format='jpg')
В моей функции я также предварительно и после масштабирования изображения для преобразования из float64 в uint8 и обратно, но это основная идея c.