fix repeat char bug

master
UnknownObject 2 weeks ago
parent 521273638d
commit 1c65b30a64

@ -11,7 +11,7 @@ int main()
const std::wstring detModelPath = L".\\DetectionModel.onnx"; const std::wstring detModelPath = L".\\DetectionModel.onnx";
const std::wstring recModelPath = L".\\RecognitionModel-EN.onnx"; const std::wstring recModelPath = L".\\RecognitionModel-EN.onnx";
const std::wstring recModelWithChnPath = L".\\RecognitionModel_EN+CH_SIM.onnx"; const std::wstring recModelWithChnPath = L".\\RecognitionModel_EN+CH_SIM.onnx";
const std::string imagePath = "..\\..\\vin.jpg"; const std::string imagePath = "..\\..\\vin-err.jpg";
//Init Config //Init Config
uns::G_OCRConfig.SetGPUUsage(uns::OCRConfig::GPUUsage::CPUOnly); uns::G_OCRConfig.SetGPUUsage(uns::OCRConfig::GPUUsage::CPUOnly);

@ -1,5 +1,6 @@
#include "OCRCharset.h" #include "OCRCharset.h"
#include "OCRConfig.h" #include "OCRConfig.h"
#include <iostream>
#pragma warning(disable:6262) #pragma warning(disable:6262)
std::map<int, std::wstring> uns::OCRCharset::en_charmap = std::map<int, std::wstring> uns::OCRCharset::en_charmap =
@ -6860,11 +6861,15 @@ std::wstring uns::OCRCharset::GetString(const std::vector<int>& indexs)
} }
if ((charset_ptr == nullptr)) if ((charset_ptr == nullptr))
return L""; return L"";
int last_index = 0;
std::wstring result; std::wstring result;
for (const auto& index : indexs) for (const auto& index : indexs)
{ {
if (charset_ptr->find(index) == charset_ptr->end()) if (charset_ptr->find(index) == charset_ptr->end())
continue; continue;
if (last_index == index)
continue;
last_index = index;
if (index == 0) //Ignore 0 (Invalidate Value) if (index == 0) //Ignore 0 (Invalidate Value)
continue; continue;
result += (*charset_ptr)[index]; result += (*charset_ptr)[index];

@ -6861,11 +6861,15 @@ std::wstring uns::OCRCharset::GetString(const std::vector<int>& indexs)
} }
if ((charset_ptr == nullptr)) if ((charset_ptr == nullptr))
return L""; return L"";
int last_index = 0;
std::wstring result; std::wstring result;
for (const auto& index : indexs) for (const auto& index : indexs)
{ {
if (charset_ptr->find(index) == charset_ptr->end()) if (charset_ptr->find(index) == charset_ptr->end())
continue; continue;
if (last_index == index)
continue;
last_index = index;
if (index == 0) //Ignore 0 (Invalidate Value) if (index == 0) //Ignore 0 (Invalidate Value)
continue; continue;
result += (*charset_ptr)[index]; result += (*charset_ptr)[index];

Loading…
Cancel
Save