我想使用SWT(笔划宽度变换)算法来提高Tesseract-OCR精度。我提到了这个link。
我想使用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));
}