1
0
forked from BRT/arc

Fix for windows

This commit is contained in:
slava 2025-06-12 16:24:49 +07:00
parent 0d80a4c11e
commit 5f94bd84d9
4 changed files with 9 additions and 72 deletions

View File

@ -3,9 +3,10 @@ project(ARCDesktopProject LANGUAGES CXX)
#mkdir build
#cd build
#cmake .. -DCMAKE_PREFIX_PATH="C:/Qt/6.x.x/msvc2019_64" -DCMAKE_BUILD_TYPE=Release
#cmake .. -A x64 -DCMAKE_PREFIX_PATH="C:/Qt/6.9.0/msvc2022_64" -DCMAKE_BUILD_TYPE=Release
#cmake .. -G "Visual Studio 17 2022" -A x64 -DCMAKE_PREFIX_PATH="C:/Qt/6.9.0/msvc2022_64" -DCMAKE_BUILD_TYPE=Release
#cmake --build . --config Release
#windeployqt .\Release\ARCDesktopProject.exe
#"C:\Qt\6.9.0\msvc2022_64\bin\windeployqt.exe" .\Release\ARCDesktopProject.exe
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
@ -16,12 +17,13 @@ add_compile_definitions(QT_MESSAGELOGCONTEXT)
if (WIN32)
# Укажи путь к Qt6
set(CMAKE_PREFIX_PATH "C:/Qt/6.9.0/msvc2022_arm64")
list(APPEND CMAKE_PREFIX_PATH "C:/Users/User/.vcpkg-clion/vcpkg/installed/arm64-windows")
#set(CMAKE_PREFIX_PATH "C:/Qt/6.9.0/msvc2022_arm64")
set(CMAKE_PREFIX_PATH "C:/Qt/6.9.0/msvc2022_64")
# list(APPEND CMAKE_PREFIX_PATH "C:/Users/User/.vcpkg-clion/vcpkg/installed/arm64-windows")
#vcpkg install tesseract:arm64-windows
set(Tesseract_DIR "C:/Users/User/.vcpkg-clion/vcpkg/installed/arm64-windows/share/tesseract")
#set(Tesseract_DIR "C:/Users/User/.vcpkg-clion/vcpkg/installed/arm64-windows/share/tesseract")
find_package(Tesseract CONFIG REQUIRED)
#find_package(Tesseract CONFIG REQUIRED)
elseif (APPLE)
# Укажи путь к Qt6
set(CMAKE_PREFIX_PATH "/opt/homebrew/opt/qt")
@ -91,7 +93,7 @@ if (WIN32)
Qt6::Xml
Qt6::Sql
Qt6::Network
Tesseract::libtesseract
# Tesseract::libtesseract
)
# Копирование изображений в директорию сборки

View File

@ -6,7 +6,6 @@
#include "database/DatabaseManager.h"
#include "database/dao/CommonDataDAO.h"
#include "db/AccountInfoScreener.h"
#include "services/DeviceScreener.h"
#include <iostream>

View File

@ -1,56 +0,0 @@
#include "AccountInfoScreener.h"
#include <QImage>
#include <QList>
#include <QDebug>
#include <qregularexpression.h>
#include "android/Card.h"
#include "tesseract/baseapi.h"
QList<Card> AccountInfoScreener::parseCardData(const QByteArray &imageData) {
QList<Card> cards;
// QImage image;
// if (!image.loadFromData(imageData)) {
// return {};
// }
// image = image.convertToFormat(QImage::Format_Grayscale8);
QImage image("./images/img.png");
if (image.isNull()) {
return {};
}
// важная часть, без нее не парсит
image = image.convertToFormat(QImage::Format_Grayscale8);
tesseract::TessBaseAPI tess;
if (tess.Init(nullptr, "rus")) {
qDebug() << "Ошибка инициализации Tesseract с русским языком....";
}
tess.SetImage(image.bits(), image.width(), image.height(), 1, image.bytesPerLine());
const QString result = QString::fromUtf8(tess.GetUTF8Text());
qDebug() << "Распознанный текст:" << result;
const QRegularExpression re(R"((дебетовая(?:, цифровая)?),\s*\*(\d{4})\s+([\d]+\.\d{2})\s*Р)",
QRegularExpression::CaseInsensitiveOption);
QRegularExpressionMatchIterator i = re.globalMatch(result);
while (i.hasNext()) {
auto card = Card();
bool ok;
QRegularExpressionMatch match = i.next();
const double amount = match.captured(3).toDouble(&ok);
if (ok) {
card.amount = amount;
card.name = match.captured(2);
card.description = match.captured(1);
cards.append(card);
}
}
return cards;
}

View File

@ -1,8 +0,0 @@
#pragma once
#include "android/Card.h"
class AccountInfoScreener {
public:
[[nodiscard]] static QList<Card> parseCardData(const QByteArray &imageData);
};