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] <javascript:>> 
> 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] <javascript:>> 
>> 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] <javascript:>.
>>> To post to this group, send email to [email protected] 
>>> <javascript:>.
>>> 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/ddea01e6-dcdd-4f17-932c-363d46d25fc4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to