如何在Android中使用CCV?

时间:2019-03-29 08:42:52

标签: android c++ ocr tesseract

我想使用SWT(笔划宽度变换)算法来提高Tesseract-OCR精度。我提到了这个link

我找到了ccv和一个way来使用它。

我想使用ccv_swt方法,但是我不知道该怎么使用。 特别是ccv_swt_param_t params部分。

这是我的代码。

MainActivity.java

private Mat matInput;
private Mat matGray;
public native void ocrTest(long matAddrGray, long matAddrCanny, long matAddrBlur);
@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {

 matInput = inputFrame.rgba();
 Imgproc.cvtColor(matInput, matGray, Imgproc.COLOR_RGB2GRAY);
 ocrTest(matGray.getNativeObjAddr(), matCanny.getNativeObjAddr(), matBlur.getNativeObjAddr());

}

native-lib.cpp

extern "C"
JNIEXPORT void JNICALL
Java_com_example_ocrtest_MainActivity_ocrTest(JNIEnv *env, jobject instance, jlong matAddrGray,
                                          jlong matAddrCanny, jlong matAddrBlur) {

// TODO
    Mat &matGray = *(Mat *) matAddrGray;
    Mat &matCanny = *(Mat *) matAddrCanny;
    Mat &matBlur = *(Mat *) matAddrBlur;

    int lowThreshold = 50;
    int highThreshold = 150;

    Canny(matGray, matCanny, lowThreshold, highThreshold, 3);
    blur(matGray, matBlur, Size(3, 3));

}

0 个答案:

没有答案