我是初学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的情况下自动检测文档?怎么样?
答案 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之外还有其他选择可以自动检测对象