Usando a API C do tesseract 3.02 com ctypes e cv2 em python

Estou tentando usar o Tesseract 3.02 com ctypes e cv2 em python. O Tesseract fornece um conjunto de APIs de estilo C expostas à DLL, uma delas é a seguinte:

TESS_API void  TESS_CALL TessBaseAPISetImage(TessBaseAPI* handle, const unsigned char* imagedata, int width, int height, int bytes_per_pixel, int bytes_per_line);

Até agora, meu código é o seguinte:

tesseract = ctypes.cdll.LoadLibrary('libtesseract302.dll')
api = tesseract.TessBaseAPICreate()
tesseract.TessBaseAPIInit3(api, '', 'eng')
imcv = cv2.imread('test.bmp')
w, h, d = imcv.shape
ret = tesseract.TessBaseAPISetImage(api, ctypes.c_char_p(str(imcv.data)), w, h, d, w * d)
#ret = 44 here

A última linha retorna um código de erro 44, que não consigo encontrar em nenhum lugar no errcode.h fornecido pelo Tesseract. Não tenho certeza do que estou fazendo de errado aqui.

Eu encontrei uma pergunta semelhanteComo reconhecer dados e não o nome do arquivo usando ctypes e tesseract 3.0.2?, no entanto, a pergunta não foi resolvida. Eu também estou ciente dehttps://code.google.com/p/python-tesseract/, Busco o código-fonte desse projeto, mas não consegui encontrar as informações necessárias.

Posso confirmar que a imagem no test.bmp é legítima e legível chamandocv2.imshow. também a mesma imagem pode ser OCR pelo Tesseract na linha de comando.

questionAnswers(1)

yourAnswerToTheQuestion