gpt4 book ai didi

c++ - tesseract 3.01 actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES

转载 作者:太空狗 更新时间:2023-10-29 23:16:53 24 4
gpt4 key购买 nike

我正在将 tesseract 3.01 和 magick++ 构建到一个程序中,因为命令行版本太慢了。正确编译所有内容花了很长时间,但最终我的编译器没有出现任何错误,但是一旦我去运行我的控制台应用程序,我就得到了

PS C:\Users\sirus\Documents\Visual Studio 2013\Projects\ConsoleApplication4\Release> .\ConsoleApplication4.exe
first command
actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file ..\ccutil\tessdatamanager.cpp, line 48
PS C:\Users\sirus\Documents\Visual Studio 2013\Projects\ConsoleApplication4\Release> l

在线搜索显示当您必须使用不正确的语言数据时会发生这种情况,但我有 tesseract 3.01 和直接从他们的 google 代码站点下载的 tesseract 3.01 语言数据。

我在 windows 8.1 building 32 bit/MD 上使用 visual studio 2013

这是我的源代码示例

#include <stdio.h>
#include <string>
#include <iostream>
#include <iomanip>
#include <locale>
#include <sstream>
#include <string>
#include <Magick++.h>
#include "baseapi.h"
#include "allheaders.h"
using namespace Magick;
using namespace std;
using namespace tesseract;
#define MaxRGB ((Magick::Quantum)65545)
tesseract::TessBaseAPI tess;



string cmd = "";
string cmd2 = "";


void img_split(){
string tesseract = "\"C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe\" text/";
int rect_y = 141;
string del = "del /s /q text\\*";
system(del.c_str());
for (int x = 1; x < 40; x++){
rect_y += 19;
Image image;
image.read("source.jpg");
Magick::Image* mImage;
Image sub_image(image);
mImage = &sub_image;
//mImage->write("test.jpg");


sub_image.chop(Geometry(1481, rect_y));
sub_image.crop(Geometry(220, 17));

sub_image.quantizeColorSpace(GRAYColorspace);
sub_image.quantizeColors(2);
sub_image.quantizeDither(false);
sub_image.quantize();
sub_image.scale(Geometry(2200,170));
sub_image.antiAlias();
sub_image.compressType(Magick::NoCompression);


//const unsigned char* imagedata = (unsigned char*)mImage;
//tess.SetImage(imagedata, 2200, 170, 1, 17300);
//tess.Recognize(0);
//const char* out = tess.GetUTF8Text();
//cout << "\n\nno idea if this will work: " << out << endl;


sub_image.write("text/" + static_cast<ostringstream*>(&(ostringstream() << x))->str() + ".gif");
//cmd2 = tesseract + static_cast<ostringstream*>(&(ostringstream() << x))->str() + ".png text/" + static_cast<ostringstream*>(&(ostringstream() << x))->str();
//tesseract_ocr(x);
}

}

int main(int argc, char **argv)
{
cout << "first command\n";
//tess.Init(argv[0], "eng", tesseract::OEM_DEFAULT);
tess.Init(*argv, "eng");
tess.SetPageSegMode(tesseract::PSM_AUTO);
cout << "\ntest" << endl;
InitializeMagick(*argv);
//img_split();

return 0;
}

如果你能告诉我如何正确地将 sub_image 中的图像传递给 tesseract 的 setimage 函数(因为我很确定我所拥有的也不会是正确的)

最佳答案

actual_tessdata_num_entries <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file ..\ccutil\tessdatamanager.cpp, line 55

如果在运行 tesseract 时出现错误,请检查您是否使用了正确版本的训练数据(例如 3.00 和 3.01)。您不能将 3.01 训练数据与 tesseract 3.00 一起使用。


总而言之,您只需要为您的版本获取经过训练的数据..或者甚至不要弄乱经过训练的数据并使用它在下载时附带的数据。

查看下面的链接以获取解决方案。

https://code.google.com/p/tesseract-ocr/wiki/FAQ#actual_tessdata_num_entries_<=_TESSDATA_NUM_ENTRIES:Error:Ass

关于c++ - tesseract 3.01 actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21555887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com