Tesseract утечка памяти
Происходит утечка памяти в коде. Ниже представлены снимки памяти
void CaptureScreen() { #pragma comment(lib, "GdiPlus.lib") /* наш многострадальный lib-файл */
using namespace Gdiplus; /* как хочешь, но мне не в кайф постоянно писать Gdiplus:: */
static const GUID png =
{ 0x557cf406, 0x1a04, 0x11d3, { 0x9a, 0x73, 0x00, 0x00, 0xf8, 0x1e, 0xf3, 0x2e } };
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
HDC scrdc, memdc;
HBITMAP membit;
// Получаем HDC рабочего стола
// Параметр HWND для рабочего стола всегда равен нулю.
HWND test = FindWindow(NULL,0);
scrdc = GetDC(test);
// Определяем разрешение экрана
int Height, Width;
Height = 40;
Width = 80;
// Создаем новый DC, идентичный десктоповскому и битмап размером с экран.
memdc = CreateCompatibleDC(scrdc);
membit = CreateCompatibleBitmap(scrdc, Width, Height);
SelectObject(memdc, membit);
// Улыбаемся... Снято!
BitBlt(memdc, 0, 0, Width, Height, scrdc, 1510, 870, SRCCOPY);
HBITMAP hBitmap;
hBitmap = (HBITMAP)SelectObject(memdc, membit);
Gdiplus::Bitmap bitmap(hBitmap, NULL);
bitmap.Save(L"./screen.jpg", &png);
DeleteObject(hBitmap);
//GdiplusShutdown(gdiplusToken);}
void Tesseract(){checktesseract += 1;
CaptureScreen();
char* outText;
tesseract::TessBaseAPI* api = new tesseract::TessBaseAPI();
// Initialize tesseract-ocr with English, without specifying tessdata path
if (api->Init(NULL, "eng")) {
fprintf(stderr, "Could not initialize tesseract.\n");
exit(1);
}
// белый список
api->SetVariable("tessedit_char_whitelist", "01234567890");
// Open input image with leptonica library
Pix* image = pixRead("./screen.jpg"); // изображение с CaptureScreen
api->SetImage(image);
// Get OCR result
outText = api->GetUTF8Text();
if (!outText) {
cout << checktesseract << " Номер .Ошибка считывания OutText" << endl;
}
else {
Speed = atoi(outText);
};
// Destroy used object and release memory
api->End();
pixDestroy(&image);
remove("./screen.jpg");}
Снимки памяти подсказывают что утечка происходит
tesseract::TessBaseAPI* api = new tesseract::TessBaseAPI();
84 байта утекают при каждом повторе функции Tesseract()