【发布时间】:2017-09-06 12:29:08
【问题描述】:
我正在尝试开发一个应用程序,它需要执行实时文档检测,就像在 Office Lens 应用程序中发生的那样。
目前,我可以进行文档检测,但性能很差(3fps),因为我正在尝试将图像旋转到纵向模式。
这里有没有人在 android 上使用过 opencv 并且遇到过同样的问题? 人像模式是必须的。
【问题讨论】:
标签: android performance opencv detection portrait
我正在尝试开发一个应用程序,它需要执行实时文档检测,就像在 Office Lens 应用程序中发生的那样。
目前,我可以进行文档检测,但性能很差(3fps),因为我正在尝试将图像旋转到纵向模式。
这里有没有人在 android 上使用过 opencv 并且遇到过同样的问题? 人像模式是必须的。
【问题讨论】:
标签: android performance opencv detection portrait
经过几天的工作,我认为这很好。
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,但效果很好。
【讨论】: