2016-10-22 5 views
1

Я пытаюсь оптимизировать свою программу на Python с помощью Boost и заменить некоторый код Python на C++-функции.Отправить изображение из Python в C++ через Boost

Python код:

from PIL import Image 
for i in xrange(len(lines)): 
    im = Image.fromarray(lines[i]) 
    line = pytesseract.image_to_string(im, "ukr+ukrb") # working to slow 

А код на C++:

Pix *image = pixRead("/home/lucas63/Downloads/test.tif"); # here i need to get image directly from Python 
api->SetImage(image); 
outText = api->GetUTF8Text(); 
printf("OCR output:\n%s", outText);` 

Таким образом, мне нужно сделать две вещи:

  1. изображение из Python в C++ с использованием Boost.Python.
  2. Отправить массив изображений на C++ (я хочу увеличить производительность с помощью multithreating в C++).

ответ

0

Вы можете попробовать использовать tesserocr, который обтекает API C++ Тессеракта в:

import tesserocr 

with tesserocr.PyTessBaseAPI(lang='ukr+ukrb') as api: 
    for l in lines: 
     im = Image.fromarray(l) 
     api.SetImage(im) 
     line = api.GetUTF8Text() 

Это будет инициализировать API один раз и использовать его для обработки нескольких изображений.

+0

Спасибо за ваш ответ, я постараюсь заменить py-tesseract на tesserocr, и я напишу позже о результатах – lucas63

+0

Ty для справки, теперь он работает намного лучше – lucas63