无法在Java的Android Studio中找到本地变量’OpenCVLoader’。

huangapple 未分类评论55阅读模式
英文:

Cannot find local variable 'OpenCVLoader' in java Android Studio

问题

我开发了一个能够识别数学表达式的移动应用程序我正在使用 OpenCV 和 tess-two 库但是我遇到了一个错误错误消息是无法找到本地变量'OpenCVLoader'”。为什么会出现这个错误我该如何修复它能否请你帮助我这对于我的毕业项目很重要

static {
    if (!OpenCVLoader.initDebug()) {
        Log.w(TAG, "无法加载 OpenCV");
    } else {
        info("OpenCV 已加载");
    }

    // 用于 OCR
    System.loadLibrary("gnustl_shared");
    System.loadLibrary("nonfree");
}

public String getOCRResult(Bitmap bitmap, AssetManager assetMana) {
    mTess = new TessBaseAPI();
    String datapath = Environment.getExternalStorageDirectory() + "/RecognizeTextOCR/";
    File dir = new File(datapath + "tessdata/");
    if (dir.exists()) {
        //dir.mkdirs();
        try {
            InputStream inStream = assetMana.open("CSDL/eng.traineddata");
            FileOutputStream outStream = new FileOutputStream(datapath + "tessdata/eng.traineddata");
            byte[] buffer = new byte[1024];
            int readCount = 0;
            while ((readCount = inStream.read(buffer)) != -1) {
                outStream.write(buffer, 0, readCount);
            }
            outStream.flush();
            outStream.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    mTess.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST, "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ1234567890',.?;/ ");
    mTess.setDebug(true);
    mTess.init(datapath, "eng"); // English
    mTess.setImage(toGrayscale(bitmap));

    String result = mTess.getUTF8Text();

    return result;
}

public Bitmap toGrayscale(Bitmap bmpOriginal)
{
    int width, height;
    height = bmpOriginal.getHeight();
    width = bmpOriginal.getWidth();

    Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(bmpGrayscale);
    Paint paint = new Paint();
    ColorMatrix cm = new ColorMatrix();
    cm.setSaturation(0);
    ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
    paint.setColorFilter(f);
    c.drawBitmap(bmpOriginal, 0, 0, paint);
    return bmpGrayscale;
}
英文:

I develop mobile app that recognize math expressions. I am using opencv and tess-two library. But i take error is that Cannot find local variable 'OpenCVLoader'. Why am I getting this error. How can i fix it.Can you help me please. This is important for graduation project.

static {
	if (!OpenCVLoader.initDebug()) {
		Log.w(TAG, "Unable to load OpenCV");
	} else {
		info("OpenCV loaded");
	}

	// For OCR
	System.loadLibrary("gnustl_shared");
	System.loadLibrary("nonfree");
}

public String getOCRResult(Bitmap bitmap, AssetManager assetMana) {
    mTess = new TessBaseAPI();
    String datapath = Environment.getExternalStorageDirectory() + "/RecognizeTextOCR/";
    File dir = new File(datapath + "tessdata/");
    if (dir.exists()) {
        //dir.mkdirs();
        try {
            InputStream inStream = assetMana.open("CSDL/eng.traineddata");
            FileOutputStream outStream = new FileOutputStream(datapath + "tessdata/eng.traineddata");
            byte[] buffer = new byte[1024];
            int readCount = 0;
            while ((readCount = inStream.read(buffer)) != -1) {
                outStream.write(buffer, 0, readCount);
            }
            outStream.flush();
            outStream.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    mTess.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST,"aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ1234567890',.?;/ ");
    mTess.setDebug(true);
    mTess.init(datapath, "eng"); // English
    mTess.setImage(toGrayscale(bitmap));

    String result = mTess.getUTF8Text();

    return result;
}

public Bitmap toGrayscale(Bitmap bmpOriginal)
{
    int width, height;
    height = bmpOriginal.getHeight();
    width = bmpOriginal.getWidth();

    Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(bmpGrayscale);
    Paint paint = new Paint();
    ColorMatrix cm = new ColorMatrix();
    cm.setSaturation(0);
    ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
    paint.setColorFilter(f);
    c.drawBitmap(bmpOriginal, 0, 0, paint);
    return bmpGrayscale;
}

huangapple
  • 本文由 发表于 2020年3月16日 00:59:49
  • 转载请务必保留本文链接:https://java.coder-hub.com/60695418.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定