相机2 ImageReader变形相机预览

时间:2019-10-21 10:43:56

标签: java android android-camera2 image-reader

我正在尝试通过摄像头预览实时扫描PDF417条码。

我遇到一个问题,如果用于相机预览的Textureview的主表面和图像阅读器表面的分辨率不同,则会扭曲纹理视图上的预览。移除图像阅读器表面会消除预览的变形。

目标是在预览中绘制尺寸合适的框架以适合屏幕,但将最大的图像发送到onImageAvailableListener。

我使用YUV_420_888格式,因为性能可以接受。使用JPEG图像格式时,翘曲消失,但是帧速率下降到5-8 fps,有时在我的Samsung J5上冻结几秒钟。

当格​​式为YUV时:

Distorted Image

当格​​式为JPEG时:

Undistored Image

这是图像读取器的设置;

localhost/api/admin/user/add/input

这是预览图面的计算。 choiceOptimalSize是我的一种方法,可以根据自己的喜好进行尺寸计算,它们是来自摄像头设备的有效分辨率。

Size largest = Collections.max(
                Arrays.asList(map.getOutputSizes(ImageFormat.YUV_420_888)),
                new CompareSizesByArea());

        imageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(), ImageFormat.YUV_420_888, 2);

我知道这是可能的,因为我看到它可以在微眨眼id扫描应用程序中工作。我似乎无法弄清楚如何防止变形或帧率问题。任何帮助将不胜感激。

0 个答案:

没有答案