如何在python中将.raw输入图像文件调整为.raw输出图像?
我正在尝试将图像的大小从256x256调整为500x500和1000x1000,输出文件也应该是.raw扩展名文件。我已经学习了算法,并将其放入代码中,但我仍然受到文件格式的限制 以下是有助于实现此部分而非.raw文件部分的代码和方法:如何在python中将.raw输入图像文件调整为.raw输出图像?,python,image-processing,image-resizing,raw,raw-file,Python,Image Processing,Image Resizing,Raw,Raw File,我正在尝试将图像的大小从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][
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:从Python文件对象获取文件*失败
有人能帮我吗?据我所知,没有标准的“原始”文件格式,所以
np.fromfile()
不知道如何读取它们,所以您需要将图像转换成它能理解的标准格式,或者编写您自己的阅读器。感谢您的回复。!您能推荐一些相同的源吗?..原始图像文件格式通常是专有的,因此作者/制造商通常包括将其转换为标准图像文件格式的实用程序,如.png
或.jpeg
。有时,他们还发布文件格式规范,以允许其他人使用自己的软件而不是使用实用程序读取原始文件中的数据。