使用OpenCv进行文档检测,在Android中形成性能下降

时间:2017-01-13 06:10:21

标签: android opencv camera android-camera opencv4android

我是初学OpenCv的android。我正在尝试创建一个使用OpenCv自动检测文档的应用程序 - 2.4.13。在我的应用程序中,有一个检测文档的功能(像Scanbot应用程序),然后将其转换为文档。 到目前为止,我能够在横向模式下使用opencv检测文档。 我需要的是以纵向模式显示应用程序。因为默认情况下OpenCv for android在横向模式下工作,我想要它在纵向模式。 我已经完成了很多解决方案,它也有效但是性能下降问题(比如相机框架慢下来)。 到目前为止我经历的是:   Rotate camera preview to Portrait Android OpenCV Camera

Rotating Android Camera to Portrait

但是,我可以在纵向中更改相机方向,但会出现一些性能下降问题

是否有人成功完成此操作?

我也在寻找自动检测OpenCv以外文档的其他选项。我不知道是否可以在没有OpenCv的情况下

是否可以在没有OpenCv的情况下自动检测文档?怎么样?

1 个答案:

答案 0 :(得分:0)

我遇到了与opencv相同的问题,经过数小时的研究后我终于找到了解决方案。您必须在默认的opencv类中进行更改 请遵循以下步骤: 1)在CameraBridgeViewBase类中添加以下代码

('A', 'B', 'D')

2)现在在drawbitmap方法中用 mCacheBitmap 替换上面的位图,如下所示

2175            for (j=i+1 ; j<r ; j++)
2176                indices[j] = indices[j-1] + 1;

3)现在,在 JavaCameraView 类中,在 initializeCamera 方法中替换以下代码(更改纵向模式的高度,宽度)

Matrix matrix = new Matrix();
matrix.setRotate(90f);
Bitmap bitmap = Bitmap.createBitmap(mCacheBitmap, 0, 0, mCacheBitmap.getWidth(), mCacheBitmap.getHeight(), matrix, true);

你完成了!

我不认为除了OpenCv之外还有其他选择可以自动检测对象