【问题标题】:Opencv 3.2.0 Android Library in Portrait Mode纵向模式下的 Opencv 3.2.0 Android 库
【发布时间】:2017-09-06 12:29:08
【问题描述】:

我正在尝试开发一个应用程序,它需要执行实时文档检测,就像在 Office Lens 应用程序中发生的那样。

目前,我可以进行文档检测,但性能很差(3fps),因为我正在尝试将图像旋转到纵向模式。

这里有没有人在 android 上使用过 opencv 并且遇到过同样的问题? 人像模式是必须的。

【问题讨论】:

标签: android performance opencv detection portrait


【解决方案1】:

经过几天的工作,我认为这很好。

Matrix matrix = new Matrix();
matrix.preTranslate((canvas.getWidth() - mCacheBitmap.getWidth()) / 2,(canvas.getHeight() - mCacheBitmap.getHeight()) / 2);
matrix.postRotate(90f,(canvas.getWidth()) / 2,(canvas.getHeight()) / 2);
float scale = (float) canvas.getWidth() / (float) mCacheBitmap.getHeight();
matrix.postScale(scale, scale, canvas.getWidth()/2 , canvas.getHeight()/2 );
canvas.drawBitmap(mCacheBitmap, matrix, new Paint());

将其插入到 CameraBridgeViewBase.java 的第 415 行之后:

if (bmpValid && mCacheBitmap != null) {
    Canvas canvas = getHolder().lockCanvas();
    if (canvas != null) {
        canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR);
        //insert here
    }
}

我正在使用 OpenCV 3.4。请让我知道这对你有没有用。问如果没有。 注意:这仅适用于纵向模式。在这种情况下,我不需要横向模式。我有大约 -2 fps,但效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多