I am sorry I miss understand your code: I was expecting that in
do/while loop you are iterating over file list. IMO its inefficient to
initialize tesseract for each image.


Zdenko

po 24. 6. 2019 o 11:06 _ Flaviu <[email protected]> napísal(a):
>
> I think there no loop there, it is just an do/while(FALSE), those Clear and 
> pixDestroy is called every time when an images are read.
>
> On Monday, June 24, 2019 at 11:52:11 AM UTC+3, zdenop wrote:
>>
>> 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.
>>>>>> 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.
>>>> 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/ddea01e6-dcdd-4f17-932c-363d46d25fc4%40googlegroups.com.
> 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/CAJbzG8xvOXN7%2BbxGP%3DPSeUbBPctzfk2EJYRoPgQ1SPPRk4ySqw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to