Python 如何将excel文件中的像素值转换为图像?

Python 如何将excel文件中的像素值转换为图像?,python,excel,image,csv,Python,Excel,Image,Csv,我有一个Excel文件,有100行100列。每个元素都是一个像素强度值。如何使用Python将其转换为二维灰度图像?如果您有一个Excel.xlsx文件,可以用来读取值。该库可用于生成和保存图像 假设每个值都是8位值,可以使用以下方法: from itertools import chain from PIL import Image import openpyxl wb = openpyxl.load_workbook("image.xlsx") ws = wb.acti

我有一个Excel文件,有100行100列。每个元素都是一个像素强度值。如何使用Python将其转换为二维灰度图像?

如果您有一个Excel.xlsx文件,可以用来读取值。该库可用于生成和保存图像

假设每个值都是8位值,可以使用以下方法:

from itertools import chain
from PIL import Image
import openpyxl

wb = openpyxl.load_workbook("image.xlsx")
ws = wb.active
data = list(ws.iter_rows(values_only=True))

rows = len(data)
cols = max(len(row) for row in data)

img = Image.new('L', (cols, rows), color='black')
img.putdata(list(chain.from_iterable(data)))
img.save('output.png')
因此,对于包含以下值的Excel文件:

您会得到一个PNG图像,看起来像放大了的:

如果您的文件实际为CSV格式:

from itertools import chain
from PIL import Image
import csv

data = []

with open('image.csv', newline='') as f_input:
    for row in csv.reader(f_input):
        data.append(list(map(int, row)))
        
rows = len(data)
cols = max(len(row) for row in data)

img = Image.new('L', (cols, rows), color='black')
img.putdata(list(chain.from_iterable(data)))
img.save('output.png')
e、 g.image.csv包含:

24,1,4,255,43,2 2,4,6,0,3,2 1,1,255,3,32,5 如果您有一个Excel.xlsx文件,您可以使用它来读取值。该库可用于生成和保存图像

假设每个值都是8位值,可以使用以下方法:

from itertools import chain
from PIL import Image
import openpyxl

wb = openpyxl.load_workbook("image.xlsx")
ws = wb.active
data = list(ws.iter_rows(values_only=True))

rows = len(data)
cols = max(len(row) for row in data)

img = Image.new('L', (cols, rows), color='black')
img.putdata(list(chain.from_iterable(data)))
img.save('output.png')
因此,对于包含以下值的Excel文件:

您会得到一个PNG图像,看起来像放大了的:

如果您的文件实际为CSV格式:

from itertools import chain
from PIL import Image
import csv

data = []

with open('image.csv', newline='') as f_input:
    for row in csv.reader(f_input):
        data.append(list(map(int, row)))
        
rows = len(data)
cols = max(len(row) for row in data)

img = Image.new('L', (cols, rows), color='black')
img.putdata(list(chain.from_iterable(data)))
img.save('output.png')
e、 g.image.csv包含:

24,1,4,255,43,2 2,4,6,0,3,2 1,1,255,3,32,5
Excel文件是否具有.xlsx扩展名?请共享您的Excel文件-最好是CSV文件。如果您的意思是.xlsx文件,则需要使用Dropbox或Google Drive或类似工具。您可以使用pandas或其他模块读取excel文件。然后,您必须编写代码将其转换为numpy数组,您可以使用opencv将其另存为图像,或者将numpy数组转换为pillow.image。如果你使用CSV文件,那么我试着直接读取它作为NUMPY数组,如果你有一个CSV,格式化完全和马丁的答案一样,你不需要写任何Python,你可以在命令行上使用VIP来制作一个PNG,像这个VIPS IMACVS2VIPS映像。CSV RESULT.PNG:请考虑接受和投票支持马丁的答案,如果它对你有用的话,这样他和你都能获得声誉积分,未来的读者也知道他的解决方案很有效。您可以通过单击计票旁边的空心勾选标记来接受它。谢谢你的.Excel文件有.xlsx扩展名吗?请共享你的Excel文件-最好是CSV文件。如果您的意思是.xlsx文件,则需要使用Dropbox或Google Drive或类似工具。您可以使用pandas或其他模块读取excel文件。然后,您必须编写代码将其转换为numpy数组,您可以使用opencv将其另存为图像,或者将numpy数组转换为pillow.image。如果你使用CSV文件,那么我试着直接读取它作为NUMPY数组,如果你有一个CSV,格式化完全和马丁的答案一样,你不需要写任何Python,你可以在命令行上使用VIP来制作一个PNG,像这个VIPS IMACVS2VIPS映像。CSV RESULT.PNG:请考虑接受和投票支持马丁的答案,如果它对你有用的话,这样他和你都能获得声誉积分,未来的读者也知道他的解决方案很有效。您可以通过单击计票旁边的空心勾选标记来接受它。谢谢。做得很好。做得很好。