我需要为我 future 的项目提供一些建议。我正在为一些 ID 文档开发 OCR 项目,为此我已经集成了 card.io 和 tess-two 并为我的项目覆盖了这个源。但我的主要目的是关于相机。我使用已经在card.io源中实现的Camera1。但说到google开发者,他们强烈推荐Camera2。当我尝试阅读我的文档时,我遇到了一些有关聚焦、模糊部分等问题。我的算法的大部分都在 native 端。如果有人已经体验过这些技术,您可以推荐什么?如果我将我的代码从camera1集成到camera2,我可以获得更好的结果吗?感谢您阅读我的大问题;)
最佳答案
我不会向您介绍如何使用 Camera2 API,您应该自行阅读并尝试。
一般方法:
实现OnImageAvailableListener 相机管理器类中的接口(interface)
public final class CameraManager implements ImageReader.OnImageAvailableListener {
@Override
public synchronized void onImageAvailable(ImageReader reader) {
Image image = reader.acquireLatestImage();
if (image != null) {
analyzeFrame(image);
}
}
创建 ImageReader 并在相机打开之前初始化
private ImageReader imageReader;
private void initialize() {
//I'm using YUV_420_888 for streaming
//you may use any supported format from:
//https://developer.android.com/reference/android/graphics/ImageFormat.html
imageReader = ImageReader.newInstance(PREVIEW_WIDTH, PREVIEW_HEIGHT, ImageFormat.YUV_420_888, 1);
imageReader.setOnImageAvailableListener(this, null);
}
将imageReader
的表面添加到CaptureRequest.Builder 相机打开后
Surface imageSurface = imageReader.getSurface();
//...
previewRequestBuilder.addTarget(imageSurface);
在analyzeFrame
方法中处理每个帧
private void analyzeFrame(Image image) {
//...<-- image processing
image.close();
}
Which Camera api you use?
If i integrate my codes from camera1 to camera2, can i get better results?
简短的回答是否,您将得到相同的帧来处理
If anyone have already experienced with these technologies, what could you recommend?
我建议您使用 tess-two ,关注OcrRecognizeAsyncTask
关于android - OCR 集成到 Camera2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43774940/