Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 05 октября 2025 07:40

Создац таблицу из этих фото

Ответ нейросети

05 октября 2025 07:40

Понимаю задачу: нужно создать таблицу на основе данных, снятых на фото. Сейчас я не вижу прикрепленных изображений. Пожалуйста, загрузите фото (или вставьте текст с изображений), и я сгенерирую для вас таблицу. Ниже — подробное руководство и готовый план, как это сделать, как минимум даже без загруженных файлов.

Что сделать, если фото ещё не прикреплены

  • Вложите фото таблиц здесь в чат (одним письмом можно приложить несколько изображений).
  • Или скопируйте текст с фото (если он читаем). Я превращу его в таблицу.

Как я могу создать таблицу из фото (пошагово)

  1. Определяем цель и структуру
  • Так как цель — понятие, я дам понятное объяснение и постараюсь получить максимально точную таблицу.
  • В отсутствие указаний по предмету и классу я ориентируюсь на общую школьную таблицу: строки — записи, столбцы — признаки/поля (например, №, Название, Значение, Цена, Дата и т. п.). Если вы скажете, какие именно столбцы ожидаете, я адаптирую под это.
  1. Выбор подхода
  • Автоматический OCR (оптическое распознавание текста) для извлечения содержимого из фото и последующая формирование таблицы.
  • Ручной вариант (если фото сложные или плохого качества): я помогу структурировать данные после вашего последующего ввода вручную.
  1. Инструменты для автоматического варианта
  • Язык: Python.
  • Библиотеки: pytesseract (OCR), OpenCV (предобработка изображений), pandas (таблицы).
  • Требования: установленный Tesseract OCR (настройки для русского/английского текста). Установка примерно такая:
    • Установить Tesseract: скачать и установить (для Windows/ macOS/ Linux).
    • Установить Python-библиотеки: pip install pytesseract pillow opencv-python pandas.
    • В коде указать путь к исполняемому файлу tesseract.exe (если нужно).
  1. Предобработка изображения (чтобы OCR был точнее)
  • Приведение к серому изображению.
  • Бинаризация (контраст) и удаление шума.
  • Коррекция наклона (если фото повернуто) – выполенение deskew.
  • При необходимости можно обрезать области таблицы и обойтись без фона.
  1. Извлечение данных из изображения
  • Основной способ: pytesseract.image_to_data, который возвращает данные по каждому слову с координатами (левый, верхний координаты, ширина/высота, текст и уровень доверия).
  • Группировка слов по строкам (по оси Y) и по столбцам (по оси X) для формирования строк и столбцов таблицы.
  • Нюанс: качество OCR варьируется. Часто полезно сначала получить текст по строкам, затем попытаться разбить каждую строку на столбцы (по пробелам или по положениям в строке).
  1. Преобразование в таблицу
  • Если в строке видны разделители между столбцами, можно разделить строку на колонки по нескольким пробелам или по координатам X (для более точной настройки нужен продвинутый парсер).
  • В простом случае можно взять каждую распознанную строку и разбить её на элементы через split() по пробелам, затем собрать массив строк в DataFrame.
  • Если в строках шапка таблицы и данные различаются, можно:
    • использовать первую строку как заголовок, если она не состоит из чисто числовых данных;
    • или отдельно задать столбцы вручную, если известно, какие они должны быть.
  1. Очистка и нормализация данных
  • Исправление типичных ошибок OCR (например, 0 vs O, l vs 1, русские/латинские похожие буквы).
  • Приведение чисел к стандартному формату (удаление лишних пробелов, замена запятой на точку для десятичных чисел, если требуется).
  • Удаление пустых строк и лишних пробелов.
  1. Сохранение результата
  • Сохранить в CSV или Excel (использовать pandas DataFrame и df.to_csv('table.csv', index=False) или df.to_excel('table.xlsx', index=False)).
  1. Что делать, если изображение сложное
  • Можно разделить на области: сначала выделить одну таблицу на фото и разобрать её, потом следующую.
  • Если таблица очень плохо читается, я могу попросить вас повторно загрузить фото в лучшем качестве или сделать снимок под другим углом/светом.

Пример готового кода (основной вариант, без сложной картины) — для базовой автоматической сборки таблицы из OCR-строк Важно: запустите этот код только после того, как загрузите изображения и получите OCR-строки. Этот пример демонстрирует базовую идею группировки по строкам и формирования DataFrame.

  • Установка зависимостей (пример):

    • pip install pytesseract opencv-python pillow pandas
    • Установите Tesseract OCR и убедитесь, что путь к tesseract добавлен в PATH (или задайте путь в pytesseract.pytesseract.tesseract_cmd).
  • Пример кода (упрощённый, для демонстрации): from PIL import Image import pytesseract import cv2 import numpy as np import pandas as pd

    Если нужно, укажите путь к исполняемому файлу Tesseract

    pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

    def preprocess_image(img_path): img = cv2.imread(img_path) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # простая предобработка blur = cv2.GaussianBlur(gray, (3,3), 0) _, thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) return thresh def ocr_to_data(img): # Вернет словарь с текстом и координатами custom_config = r'--oem 3 --psm 6' # оптимально: распознавание по строкам data = pytesseract.image_to_data(img, output_type=pytesseract.Output.DICT, lang='rus+eng', config=custom_config) return data def lines_from_ocr(data, min_conf=40, max_lines_gap=20): n = len(data['text']) words = [] for i in range(n): txt = data['text'][i].strip() conf = int(data['conf'][i]) if txt != "" and conf >= min_conf: words.append({ 'text': txt, 'x': data['left'][i], 'y': data['top'][i], 'w': data['width'][i], 'h': data['height'][i], }) # Сортируем по y (порядку строк) words.sort(key=lambda w: (w['y'], w['x'])) # Группировка в строки lines = [] current_line = [] current_y = None for w in words: if current_y is None: current_y = w['y'] current_line = [w] lines.append(current_line) else: if abs(w['y'] - current_y) <= max_lines_gap: current_line.append(w) current_y = (current_y + w['y']) // 2 # приблизительно держим среднее else: current_line = [w] lines.append(current_line) current_y = w['y'] # Преобразование строк в текстовую форму line_texts = [] for line in lines: line_sorted = sorted(line, key=lambda t: t['x']) line_texts.append(' '.join([t['text'] for t in line_sorted])) return line_texts def build_table_from_lines(lines): # Простая сборка: каждая строка — последовательность слов # Разделяем строки на элементы по пробелам rows = [line.strip().split() for line in lines if line.strip() != ""] if not rows: return pd.DataFrame() # Выравниваем по максимальному количеству столбцов max_cols = max(len(r) for r in rows) for r in rows: if len(r) < max_cols: r.extend([''] * (max_cols - len(r))) df = pd.DataFrame(rows) # Попытка определить заголовок: если первая строка не состоит из чисел # и не пустая — можно сделать её заголовком header_candidates = rows[0] if all(not c.replace('.', '', 1).isdigit() for c in header_candidates if c != ''): df.columns = header_candidates df = df.drop(index=0).reset_index(drop=True) return df

    Пример использования:

    img_path = 'path_to_your_photo.jpg'

    pre = preprocess_image(img_path)

    data = ocr_to_data(pre)

    lines = lines_from_ocr(data)

    df = build_table_from_lines(lines)

    print(df)

    df.to_csv('table_from_photo.csv', index=False)

Что делать прямо сейчас

  • Загрузите фото здесь. Я применю OCR, построю таблицу и верну вам готовый DataFrame, а также CSV/Excel файл по вашему выбору.
  • Если у вас нет возможности загрузить фото, опишите структуру таблицы (названия столбцов, пример строк). Я дам детальное решение и шаблоны, которые можно применить к любому фото.

Дополнительные советы для качественного результата

  • Снимайте фото под прямым углом до таблицы, равномерным освещением, без бликов.
  • Если есть несколько таблиц на одном фото, снимайте каждую таблицу отдельно.
  • Для русскоязычных таблиц добавьте язык распознавания rus (или rus+eng) в настройках OCR.
  • Если таблица очень структурированная, возможно, понадобится более продвинутая обработка координат столбцов (использование X-координат для определения границ столбцов). Я могу расширить код под такую задачу, когда вы пришлёте фото.

Готов приступить прямо сейчас — загрузите изображения, и я верну таблицу в виде CSV/Excel-файла с пояснениями по каждому столбцу.

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

создац таблицу из этих фото
Понимаю задачу: нужно создать таблицу на основе данных, снятых на фото. Сейчас я не вижу прикрепленных изображений. Пожалуйста, загрузите фото (или вставьте текст с изображений), и я сгенерирую для вас таблицу. Ниже — подробное руководство и готовый план, как это сделать, как минимум даже без загруженных файлов. Что сделать, если фото ещё не прикреплены - Вложите фото таблиц здесь в чат (одним письмом можно приложить несколько изображений). - Или скопируйте текст с фото (если он читаем). Я превращу его в таблицу. Как я могу создать таблицу из фото (пошагово) 1) Определяем цель и структуру - Так как цель — понятие, я дам понятное объяснение и постараюсь получить максимально точную таблицу. - В отсутствие указаний по предмету и классу я ориентируюсь на общую школьную таблицу: строки — записи, столбцы — признаки/поля (например, №, Название, Значение, Цена, Дата и т. п.). Если вы скажете, какие именно столбцы ожидаете, я адаптирую под это. 2) Выбор подхода - Автоматический OCR (оптическое распознавание текста) для извлечения содержимого из фото и последующая формирование таблицы. - Ручной вариант (если фото сложные или плохого качества): я помогу структурировать данные после вашего последующего ввода вручную. 3) Инструменты для автоматического варианта - Язык: Python. - Библиотеки: pytesseract (OCR), OpenCV (предобработка изображений), pandas (таблицы). - Требования: установленный Tesseract OCR (настройки для русского/английского текста). Установка примерно такая: - Установить Tesseract: скачать и установить (для Windows/ macOS/ Linux). - Установить Python-библиотеки: pip install pytesseract pillow opencv-python pandas. - В коде указать путь к исполняемому файлу tesseract.exe (если нужно). 4) Предобработка изображения (чтобы OCR был точнее) - Приведение к серому изображению. - Бинаризация (контраст) и удаление шума. - Коррекция наклона (если фото повернуто) – выполенение deskew. - При необходимости можно обрезать области таблицы и обойтись без фона. 5) Извлечение данных из изображения - Основной способ: pytesseract.image_to_data, который возвращает данные по каждому слову с координатами (левый, верхний координаты, ширина/высота, текст и уровень доверия). - Группировка слов по строкам (по оси Y) и по столбцам (по оси X) для формирования строк и столбцов таблицы. - Нюанс: качество OCR варьируется. Часто полезно сначала получить текст по строкам, затем попытаться разбить каждую строку на столбцы (по пробелам или по положениям в строке). 6) Преобразование в таблицу - Если в строке видны разделители между столбцами, можно разделить строку на колонки по нескольким пробелам или по координатам X (для более точной настройки нужен продвинутый парсер). - В простом случае можно взять каждую распознанную строку и разбить её на элементы через split() по пробелам, затем собрать массив строк в DataFrame. - Если в строках шапка таблицы и данные различаются, можно: - использовать первую строку как заголовок, если она не состоит из чисто числовых данных; - или отдельно задать столбцы вручную, если известно, какие они должны быть. 7) Очистка и нормализация данных - Исправление типичных ошибок OCR (например, 0 vs O, l vs 1, русские/латинские похожие буквы). - Приведение чисел к стандартному формату (удаление лишних пробелов, замена запятой на точку для десятичных чисел, если требуется). - Удаление пустых строк и лишних пробелов. 8) Сохранение результата - Сохранить в CSV или Excel (использовать pandas DataFrame и df.to_csv('table.csv', index=False) или df.to_excel('table.xlsx', index=False)). 9) Что делать, если изображение сложное - Можно разделить на области: сначала выделить одну таблицу на фото и разобрать её, потом следующую. - Если таблица очень плохо читается, я могу попросить вас повторно загрузить фото в лучшем качестве или сделать снимок под другим углом/светом. Пример готового кода (основной вариант, без сложной картины) — для базовой автоматической сборки таблицы из OCR-строк Важно: запустите этот код только после того, как загрузите изображения и получите OCR-строки. Этот пример демонстрирует базовую идею группировки по строкам и формирования DataFrame. - Установка зависимостей (пример): - pip install pytesseract opencv-python pillow pandas - Установите Tesseract OCR и убедитесь, что путь к tesseract добавлен в PATH (или задайте путь в pytesseract.pytesseract.tesseract_cmd). - Пример кода (упрощённый, для демонстрации): from PIL import Image import pytesseract import cv2 import numpy as np import pandas as pd # Если нужно, укажите путь к исполняемому файлу Tesseract # pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' def preprocess_image(img_path): img = cv2.imread(img_path) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # простая предобработка blur = cv2.GaussianBlur(gray, (3,3), 0) _, thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU) return thresh def ocr_to_data(img): # Вернет словарь с текстом и координатами custom_config = r'--oem 3 --psm 6' # оптимально: распознавание по строкам data = pytesseract.image_to_data(img, output_type=pytesseract.Output.DICT, lang='rus+eng', config=custom_config) return data def lines_from_ocr(data, min_conf=40, max_lines_gap=20): n = len(data['text']) words = [] for i in range(n): txt = data['text'][i].strip() conf = int(data['conf'][i]) if txt != "" and conf >= min_conf: words.append({ 'text': txt, 'x': data['left'][i], 'y': data['top'][i], 'w': data['width'][i], 'h': data['height'][i], }) # Сортируем по y (порядку строк) words.sort(key=lambda w: (w['y'], w['x'])) # Группировка в строки lines = [] current_line = [] current_y = None for w in words: if current_y is None: current_y = w['y'] current_line = [w] lines.append(current_line) else: if abs(w['y'] - current_y) <= max_lines_gap: current_line.append(w) current_y = (current_y + w['y']) // 2 # приблизительно держим среднее else: current_line = [w] lines.append(current_line) current_y = w['y'] # Преобразование строк в текстовую форму line_texts = [] for line in lines: line_sorted = sorted(line, key=lambda t: t['x']) line_texts.append(' '.join([t['text'] for t in line_sorted])) return line_texts def build_table_from_lines(lines): # Простая сборка: каждая строка — последовательность слов # Разделяем строки на элементы по пробелам rows = [line.strip().split() for line in lines if line.strip() != ""] if not rows: return pd.DataFrame() # Выравниваем по максимальному количеству столбцов max_cols = max(len(r) for r in rows) for r in rows: if len(r) < max_cols: r.extend([''] * (max_cols - len(r))) df = pd.DataFrame(rows) # Попытка определить заголовок: если первая строка не состоит из чисел # и не пустая — можно сделать её заголовком header_candidates = rows[0] if all(not c.replace('.', '', 1).isdigit() for c in header_candidates if c != ''): df.columns = header_candidates df = df.drop(index=0).reset_index(drop=True) return df # Пример использования: # img_path = 'path_to_your_photo.jpg' # pre = preprocess_image(img_path) # data = ocr_to_data(pre) # lines = lines_from_ocr(data) # df = build_table_from_lines(lines) # print(df) # df.to_csv('table_from_photo.csv', index=False) Что делать прямо сейчас - Загрузите фото здесь. Я применю OCR, построю таблицу и верну вам готовый DataFrame, а также CSV/Excel файл по вашему выбору. - Если у вас нет возможности загрузить фото, опишите структуру таблицы (названия столбцов, пример строк). Я дам детальное решение и шаблоны, которые можно применить к любому фото. Дополнительные советы для качественного результата - Снимайте фото под прямым углом до таблицы, равномерным освещением, без бликов. - Если есть несколько таблиц на одном фото, снимайте каждую таблицу отдельно. - Для русскоязычных таблиц добавьте язык распознавания rus (или rus+eng) в настройках OCR. - Если таблица очень структурированная, возможно, понадобится более продвинутая обработка координат столбцов (использование X-координат для определения границ столбцов). Я могу расширить код под такую задачу, когда вы пришлёте фото. Готов приступить прямо сейчас — загрузите изображения, и я верну таблицу в виде CSV/Excel-файла с пояснениями по каждому столбцу.