Как использовать CCV в Android? - PullRequest
1 голос
/ 29 марта 2019

Я хочу использовать алгоритм SWT (Stroke Width Transform) для улучшения точности Tesseract-OCR. Я ссылался на эту ссылку .

Я нашел ccv и способ использовать его.

Я хочу использовать 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());

}

нативной 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));

}
...