首页 > 解决方案 > 如何将JPG转换为适合Python?

问题描述

我正在尝试使用 imageio 和 PIL 将原始 cr2 图像转换为 .fits。但是,我无法将图像转换为 .fits 格式

我目前正在将 .cr2 转换为 jpg,因为我无法将 .cr2 转换为 .fits。(如果可能 = 最好)。转换为 jpg 后,我打开文件并将 r,g,b 拆分为 3 个不同的数组,并将每个数组传递给单独的 .fits 文件,但是,每当我尝试将 r,g,b 的全部数据组合为数组它永远不会起作用。

import numpy as np
from astropy.io import fits
import matplotlib.pyplot as plt
from PIL import Image
im = imageio.imread('E:\FYP\cr.cr2', format="RAW-FI")
imageio.imwrite(r'E:\FYP\1.jpg', im)
image = Image.open(r'E:\FYP\1.jpg')
xsize, ysize = image.size
print("Image size: {} x {}".format(xsize, ysize))
plt.imshow(image)
r, g, b = image.split()
r_data = np.array(r.getdata()) # data is now an array of length ysize*xsize
g_data = np.array(g.getdata())
b_data = np.array(b.getdata())
print(r_data.shape)
r_data = r_data.reshape(ysize, xsize)
g_data = g_data.reshape(ysize, xsize)
b_data = b_data.reshape(ysize, xsize)
red = fits.PrimaryHDU(data=r_data)
red.header['LATOBS'] = "32:11:56" # add spurious header info
red.header['LONGOBS'] = "110:56"
red.writeto(r'E:\FYP\red.fits')

它给了我单色 .fits 图像,而我想要的是具有所有 R、G、B 颜色作为 .fits 图像的图像。

标签: pythonnumpypython-imaging-libraryastropypython-imageio

解决方案


推荐阅读