And also pixDestroy should be in loop too. You just create new objects and you did not destroy them, so why you wander you run out of memory?
Zdenko po 24. 6. 2019 o 10:35 Zdenko Podobny <[email protected]> napísal(a): > IMHO you should call Clear in loop with SetImage : > https://github.com/tesseract-ocr/tesseract/blob/master/src/api/baseapi.h#L675 > > Zdenko > > > po 24. 6. 2019 o 10:25 _ Flaviu <[email protected]> napísal(a): > >> I come in just in time: I have developed a little test application, which >> have debug and release, source code, and exe. >> >> Here is the code that get text from images: >> >> BOOL CTemp::GetTextFromImage(CString sFileName) >> { >> PIX* pix = NULL; >> tesseract::TessBaseAPI Tess; >> >> do >> { >> if (Tess.Init(_T("*C:\\tessdata-master\\*"), _T("eng"), >> tesseract::OcrEngineMode::OEM_TESSERACT_LSTM_COMBINED)) >> { >> m_sError.Format(_T("OCRTesseract: Could not initialize tesseract.")); >> break; >> } >> // read image >> PIX* pix = pixRead(sFileName); >> if (! pix) >> { >> m_sError.Format(_T("Cannot open input file: %s."), sFileName); >> break; >> } >> // recognize >> Tess.SetImage(pix); >> } >> while (FALSE); >> >> // cleanup >> pixDestroy(&pix); >> Tess.Clear(); >> Tess.End(); >> >> return m_sError.IsEmpty(); >> } >> >> Of course, you have put *tessdata-master* folder in C: >> >> The test app has an menu item: File->Read images, and from that >> CFileDialog you can select multiple image file, and you can see the state >> of reading in the statusbar. >> >> If you intend to run this project on you machine, you have modify >> yourself the paths in project settings. No big deal. The project is a >> VS2017 project, MFC. >> >> I run this app on few Win10 64bit machines, with the same results. I have >> loaded for my tests 14 images, and after all image has been converted, the >> test app took 466 MB, and after these 14 images has been loaded again, the >> app took 883 MB, after I loaded again, 1307 MB, and so on ... the only way >> to free RAM is to stop the app and start again ! Sad :( >> >> Here is the link for attachements: >> https://1drv.ms/f/s!AtSPCxnvttzegw6QHz8RAOjJq8fe >> >> >> On Monday, June 24, 2019 at 10:53:40 AM UTC+3, zdenop wrote: >>> >>> AFAIR: there were always problem with windows tesseract debug build >>> (MSVC). Release version works fine, but debug failed. So it would be great >>> if somebody experienced with windows debugging have a look at this. >>> >>> Zdenko >>> >>> >>> ne 23. 6. 2019 o 20:29 _ Flaviu <[email protected]> napísal(a): >>> >>>> Ok, good idea, I am working right now on a simple testing app that >>>> prove the issue. I will come back as soon as I can. >>>> >>>> On Thursday, June 20, 2019 at 2:02:12 PM UTC+3, _ Flaviu wrote: >>>>> >>>>> I am using tesseract 4 on a VC++ (MFC) app, to read text from images >>>>> (A4 sizes). I noticed that while I using this app on several PCs (Win10 64 >>>>> bit, *GB RAM), the RAM occupied by my app (that use tesseract) is >>>>> increasing on and on. If I read 14 images, my app eat 470 MB, and if I >>>>> didn't close the app and read again all these 14 images, the RAM eaten by >>>>> my app is increasing until ~800MB, and if continue to read the same >>>>> images, >>>>> the RAM is increasing on an on. Why is this happen ? >>>>> >>>>> Here is the code that I am using for tesseract: >>>>> >>>>> BOOL CMyClass::GetTextFromImage() >>>>> { >>>>> PIX* pix = NULL; >>>>> tesseract::TessBaseAPI* pTess = new tesseract::TessBaseAPI; >>>>> >>>>> do >>>>> { >>>>> if (pTess->Init(...)) >>>>> { >>>>> m_sError.Format(_T("OCRTesseract: Could not initialize tesseract.")); >>>>> break; >>>>> } >>>>> // setup >>>>> // read image >>>>> PIX* pix = pixRead(m_sFileName); >>>>> if (! pix) >>>>> { >>>>> break; >>>>> } >>>>> // recognize >>>>> pTess->SetImage(pix); >>>>> } >>>>> while (FALSE); >>>>> >>>>> // cleanup >>>>> // pTess->Clear(); >>>>> // pTess->End(); >>>>> delete pTess; >>>>> pTess = NULL; >>>>> pixDestroy(&pix); >>>>> >>>>> return TRUE; >>>>> } >>>>> >>>>> >>>>> Is there anything wrong here ? Why is increasing RAM while I am using >>>>> tesseract ? >>>>> >>>>> -- >>>> 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 [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at https://groups.google.com/group/tesseract-ocr. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/tesseract-ocr/e338cc87-e7c3-4bb0-bd94-632185e25652%40googlegroups.com >>>> <https://groups.google.com/d/msgid/tesseract-ocr/e338cc87-e7c3-4bb0-bd94-632185e25652%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >> 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 [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at https://groups.google.com/group/tesseract-ocr. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/tesseract-ocr/00b7d682-befa-46d9-8c44-e349c5824d03%40googlegroups.com >> <https://groups.google.com/d/msgid/tesseract-ocr/00b7d682-befa-46d9-8c44-e349c5824d03%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/tesseract-ocr. To view this discussion on the web visit https://groups.google.com/d/msgid/tesseract-ocr/CAJbzG8yzHj7gD%3Df%2BN-68SS7OMQp1m6XeJFni1HZAXafCZEsDwA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

