Как изменить размер файла входного изображения .raw на выходное изображение .raw в Python?

Я пытаюсь изменить размер изображения с 256x256 на 500x500 и 1000x1000, и выходной файл также должен быть файлом с расширением .raw. Я изучил алгоритм и вставил его в код, но застрял с этим ограничением формата файла.

Вот код и методы, которые помогают в достижении этой цели, но не часть файла .raw:

      import numpy as np

def resampling(ig, N, M, x, y):    
    i = int(x)
    j = int(y)
    s = x-i
    t = y-j

    result = img[j][i]*(1.0 - s)*(1.0 - t) + img[j][i+1]*s*(1.0 - t) + img[j+1][i] * (1.0 - s)*t + img[j+1][i+1]*s*t

    return result    

def resizeImage(oldImage, N, M, newImage, N1, M1):
    #old image - 256*256, n=256, m=256, new image = 500*500, N1=500, M1=500
    x=0.0
    y=0.0
    Dx = (N-1)/(N1-1)
    Dy = (M-1)/(M1-1)

    for j in range(1, M1):
        for i in range(1, N1):
            newImage[j][i] = resampling(oldImage, N, M, x, y)
            x = x + Dx
            y = y + Dy
    return newImage

if __name__ == '__main__':

    inputFile = open('rose.raw', 'rb')
    rows = 256
    cols = 256
    f = np.fromfile(inputFile, dtype=np.uint8, count=rows * cols)
    imgOriginal = f.reshape((rows, cols))

    outputFile = open('rose-2.raw', 'w')
    rows1 = 500
    cols1 = 500
    o = np.fromfile(outputFile, dtype=np.uint8, count=rows1*cols1)
    newImageFile = o.reshape((rows1,cols1))

    newIm = resizeImage(imgOriginal, rows, cols, newImageFile, rows1,cols1)
    print("new image returned",newIm)
    newIm.astype('int16').tofile("rose-out.raw")

В настоящее время я получаю эту ошибку: OSError: Getting a FILE* from a Python file object failed

Может кто-нибудь мне помочь?

0 ответов

Другие вопросы по тегам