Преобразуйте изображение в массив numpy, сохраните его в Excel и полностью - PullRequest
0 голосов
/ 02 июля 2018

Я старался изо всех сил, чтобы решить эту проблему самостоятельно, и я думаю, что преодолел контрольно-пропускной пункт, поскольку это стоит пока. Я новичок в Python и пока хорошо разбираюсь в проекте по поиску в сети, который я пытаюсь завершить. В настоящее время я пытаюсь сделать снимок, преобразовать его в что-то, что будет читаться Pandas , например текстовую строку, сохранить его в одной ячейке Excel, а затем затем преобразовать обратно из текста в изображение для готового продукта в Excel.

Я попробовал несколько различных методов, таких как base64, который работает для преобразования в изображение и из него, но превосходит все мои желания в одной ячейке Excel. В настоящее время у меня есть предприятие, где я могу сохранить изображение в виде массива NumPy в фрейме данных Pandas и записать его в Excel, что, кажется, работает, так как оно сохраняет числа и структуру, но у меня возникают проблемы при импорте его обратно в NumPy (я я почти уверен, что это проблема перехода от целых чисел к строкам и попытки вернуться назад, не зная, как).

Исходный массив изображений dtype при преобразовании из изображения в массив: uint8 Сохраненная текстовая строка Excel массива при возврате в NumPy равна U786. Я пытался преобразовать строку в NumPy, но не могу понять, как это сделать.

Несколько потенциальных препятствий:

  1. Это скриншот из Selenium, который я сохраняю из своего веб-скребка
  2. Я записываю все свое очищенное содержимое, чтобы включить снимок экрана, преобразованный в массив из кадра данных Pandas в Excel за один раз.
  3. Я использую Xlsxwriter в качестве моего Excel Writer для записи фрейма данных и буду продолжать это делать, если это возможно.

Ниже приведен пример кода, который я использую для этого проекта. Я открыт для любых потенциальных подходов, которые могли бы решить эту проблему.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...