我竭尽全力自行解决此问题,到目前为止,我认为我遇到了障碍。我是Python的新手,到目前为止,我正在尝试完成一个Web抓取项目。我目前要完成的工作是拍摄图像,将其转换为 Pandas可读的内容(例如文本字符串),将其存储到单个Excel单元格中,然后再将其从文本转换回进入Excel中的成品图像。
我尝试了几种不同的方法,例如base64
,该方法可用于图像之间的转换,但超出了我对单个Excel单元格的期望。我目前是一家合资企业,可以将图像作为NumPy数组存储到Pandas数据框中,并将其写为excel,因为它保留了数字和结构,因此似乎可以正常工作,但是我遇到了将其重新导入NumPy的问题(我“可以肯定的是,这是从整数转换为字符串,然后又尝试又不真正知道如何返回的问题。”
从图像到数组的转换后的初始dtype图像数组为uint8
返回NumPy时,数组的存储的Excel文本字符串为U786
。我尝试过在NumPy中重新转换字符串,但是我不知道该怎么做。
一些潜在的障碍:
下面是我用于该项目的代码示例。我愿意接受所有可能解决此问题的方法。
import numpy as np
from PIL import Image
import openpyxl as Workbook
import pandas as pd
import matplotlib
#----Opens Image of interest, adds text, and appends to dataframe
MyDataTable = [] #Datatable to write to Excel
ExampleTextString = "Text for Example" #Only used as without it Pandas gives an error of not passing 2D array when saving to excel
MyDataTable.append(ExampleTextString)
img = Image.open('example.png') # uses PIL library to open image in memory
imgtoarray = np.array(img) # imgtoarray.shape: height x width x channel
MyDataTable.append(imgtoarray) #adds my array to dataframe
#----Check my array image with matplotlib
matplotlib.pyplot.imshow(imgtoarray)
#----Pandas & Excelwriter to Excel
df = pd.DataFrame(MyDataTable)
df.to_excel('ExampleSpreadsheet.xlsx', engine="xlsxwriter", header=False, index=False)
#------Open Array Test Data and where NumPy Array is Saved-----
wb = Workbook.load_workbook(filename='ExampleSpreadsheet.xlsx')
sheet_ranges = wb['Sheet1']
testarraytoimg = sheet_ranges['A2'].value
print (testarraytoimg)