https://github.com/tesseract-ocr/tesseract/issues/845
Zdenko št 14. 9. 2023 o 16:49 Gilad Pellaeon <ld.pella...@gmail.com> napísal(a): > Hi, > > I am new to Tesseract. I searched for an OCR library, found Tesseract and > now I want to use it for a specific measure protocol. > > I built Tesseract 5.3.2 from source and the dependencies leptonica-1.83, > libpng and OpenJPEG for Windows with the Latex Visual C++ compiler for > Windows, x64. > > Then I did some first tests based on the examples from the documentation ( > *Basic_example > *and *SetRectangle_example*). As data set I use *eng.traineddata* from > the *testdata_best* repo. > > Now, I have a behaviour which I can't classify. I tried to recognize a > float value in a given rectangle (with *SetRectangle * ). Tesseract > didn't converted it (empty return). Then I manually copied the rectangle > and saved it in a new file (see attached Single_Number.png). Then I tried > this file without the *SetRectangle *call*. *Now it works. > > The attached* Protocol_table.png *is the original image, but I removed > all other stuff in the picture. So it's empty except the number at the > original position. Now I have the following behaviour: in DEBUG mode the > conversion works, in RELEASE mode not. > > I also tried to slighty enlarge the rectangle area (see last SetRectangle > call in the code below). But now I got a runtime exception. The resolution > of the picture is 2625x1682. So there should be no buffer overflow?! > > Am I doning something wrong here? Or what's the problem for this behaviour? > > This is my basic code: > > //std includes > #include <iostream> > > //tesseract includes > #include "tesseract/baseapi.h" > > //Leptonica includes > #include "allheaders.h" > > > > //! > int main() > { > tesseract::TessBaseAPI api; > // Initialize tesseract-ocr with English, without specifying tessdata > path > if (api.Init(nullptr, "eng")) > { > std::cout << "Could not initialize tesseract." << std::endl; > return 1; > } > > // > Pix* image = > pixRead("D:/projects/cpp/Tesseract-Test/Protocol_Table.png"); > //Pix* image = > pixRead("D:/projects/cpp/Tesseract-Test/Single_Number.png"); > api.SetImage(image); > // Restrict recognition to a sub-rectangle of the image > // SetRectangle(left, top, width, height) > api.SetRectangle(807, 1393, 93, 49); > //api.SetRectangle(707, 1293, 193, 149); > // Get OCR result > char* outText = api.GetUTF8Text(); > if (outText) > printf("OCR output:\n%s", outText); > > // Destroy used object and release memory > api.End(); > } > > -- > You received this message because you are subscribed to the Google Groups > "tesseract-ocr" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to tesseract-ocr+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/tesseract-ocr/626e06c6-ea15-45d2-86da-1bba6c069e1cn%40googlegroups.com > <https://groups.google.com/d/msgid/tesseract-ocr/626e06c6-ea15-45d2-86da-1bba6c069e1cn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "tesseract-ocr" group. To unsubscribe from this group and stop receiving emails from it, send an email to tesseract-ocr+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/tesseract-ocr/CAJbzG8xpfj0xkzvevkXkvU%2BO8PS_XzGMdkZavx%2Bw411M74fvnw%40mail.gmail.com.