1

プロジェクトでtesseractとopencvを使用しています。

しかし、問題は、opencv を使用して画像を表示すると、画像ウィンドウのみが表示されますが、画像は表示されず、完全に灰色でした。

tesseract に関連するコードをコメントすると、opencv は適切に画像を表示できます。

それはとても奇妙です。どんな体でも私を助けることができますか?

前もって感謝します!

#include "stdafx.h"
#include <string>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;


int main() {
// [1]
const char* imagename = "phototest.tif";
Mat img = imread(imagename);
if(img.empty())
{
    fprintf(stderr, "Can not load image %s\n", imagename);
    return -1;
}
imshow("image", img);

tesseract::TessBaseAPI *myOCR = 
        new tesseract::TessBaseAPI();

// [2]
printf("Tesseract-ocr version: %s\n",
       myOCR->Version());
printf("Leptonica version: %s\n",
       getLeptonicaVersion());

// [3]
if (myOCR->Init(NULL, "eng")) {
  fprintf(stderr, "Could not initialize tesseract.\n");
  exit(1);
}

// [4]
Pix *pix = pixRead("phototest.tif");
myOCR->SetImage(pix);

// [5]
char* outText = myOCR->GetUTF8Text();
printf("OCR output:\n\n");
printf(outText);

// [6]
myOCR->Clear();
myOCR->End();
delete [] outText;
pixDestroy(&pix);
system("pause");
return 0;
}   
4

1 に答える 1

1

imshow の後のどこかに cv::waitkey(10) を追加してみると、問題が解決する可能性があります。system(pause) を cv::waitkey(-1) に置き換えることもできます。

于 2012-12-21T06:36:20.970 に答える