Fix for windows
This commit is contained in:
parent
0d80a4c11e
commit
5f94bd84d9
@ -3,9 +3,10 @@ project(ARCDesktopProject LANGUAGES CXX)
|
|||||||
|
|
||||||
#mkdir build
|
#mkdir build
|
||||||
#cd 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
|
#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_CXX_STANDARD 17)
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
@ -16,12 +17,13 @@ add_compile_definitions(QT_MESSAGELOGCONTEXT)
|
|||||||
|
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
# Укажи путь к Qt6
|
# Укажи путь к Qt6
|
||||||
set(CMAKE_PREFIX_PATH "C:/Qt/6.9.0/msvc2022_arm64")
|
#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_64")
|
||||||
|
# list(APPEND CMAKE_PREFIX_PATH "C:/Users/User/.vcpkg-clion/vcpkg/installed/arm64-windows")
|
||||||
#vcpkg install tesseract: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)
|
elseif (APPLE)
|
||||||
# Укажи путь к Qt6
|
# Укажи путь к Qt6
|
||||||
set(CMAKE_PREFIX_PATH "/opt/homebrew/opt/qt")
|
set(CMAKE_PREFIX_PATH "/opt/homebrew/opt/qt")
|
||||||
@ -91,7 +93,7 @@ if (WIN32)
|
|||||||
Qt6::Xml
|
Qt6::Xml
|
||||||
Qt6::Sql
|
Qt6::Sql
|
||||||
Qt6::Network
|
Qt6::Network
|
||||||
Tesseract::libtesseract
|
# Tesseract::libtesseract
|
||||||
)
|
)
|
||||||
|
|
||||||
# Копирование изображений в директорию сборки
|
# Копирование изображений в директорию сборки
|
||||||
|
|||||||
1
main.cpp
1
main.cpp
@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
#include "database/DatabaseManager.h"
|
#include "database/DatabaseManager.h"
|
||||||
#include "database/dao/CommonDataDAO.h"
|
#include "database/dao/CommonDataDAO.h"
|
||||||
#include "db/AccountInfoScreener.h"
|
|
||||||
#include "services/DeviceScreener.h"
|
#include "services/DeviceScreener.h"
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|||||||
@ -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;
|
|
||||||
}
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
#include "android/Card.h"
|
|
||||||
|
|
||||||
class AccountInfoScreener {
|
|
||||||
public:
|
|
||||||
[[nodiscard]] static QList<Card> parseCardData(const QByteArray &imageData);
|
|
||||||
};
|
|
||||||
Loading…
Reference in New Issue
Block a user