Парсинг картинки (изображения) в текст
Добавлено: 10 сен 2024, 14:31
Парсинг картинки (изображения) в текст
Установить необходимые библиотеки
img-to-text.cpp
Компиляция
Выполение
Установить необходимые библиотеки
Код: Выделить всё
sudo apt-get update
sudo apt-get install tesseract-ocr libtesseract-dev libleptonica-dev tesseract-ocr-rus libopencv-imgcodecs4.5 libtesseract4
Код: Выделить всё
sudo apt-get install libopencv-dev
Код: Выделить всё
#include <iostream>
#include <opencv2/opencv.hpp>
#include <tesseract/baseapi.h>
//#include <tesseract/tesseract.h>
int main(int argc, char** argv)
{
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <pdf-file>" << std::endl;
return 1;
}
std::string pdf_file = argv[1];
// Загружаем изображение
cv::Mat image = cv::imread(pdf_file); // замените "image.png" на ваш файл
if (image.empty()) {
std::cerr << "Ошибка: Не удалось загрузить изображение!" << std::endl;
return 1;
}
// Создаем экземпляр Tesseract
tesseract::TessBaseAPI *ocr = new tesseract::TessBaseAPI();
if (ocr->Init(NULL, "rus")) { // "eng" для английского языка
std::cerr << "Ошибка: не удалось инициализировать Tesseract!" << std::endl;
return 1;
}
// Указываем изображение для распознавания
ocr->SetImage(image.data, image.cols, image.rows, 3, image.step[0]);
// Выполняем распознавание текста
char* outText = ocr->GetUTF8Text();
// Вывод распознанного текста на консоль
std::cout << std::endl<< outText << std::endl;
// Освобождаем память
delete[] outText;
ocr->End();
return 0;
}
Код: Выделить всё
#!/bin/bash
g++ -std=c++11 img-to-text.cpp -o img-to-text `pkg-config --cflags --libs opencv4` `pkg-config --cflags --libs tesseract`
Код: Выделить всё
/bin/bash img-to-text файл_картинки.jpg