当前位置: 首页 > 知识库问答 >
问题:

YUV输出目标分辨率上的CameraX alpha5错误?

郑哲彦
2023-03-14
val imageCaptureConfig = ImageCaptureConfig.Builder().apply {
            setLensFacing(CameraX.LensFacing.FRONT)
            setCaptureMode(CaptureMode.MAX_QUALITY)
            setBufferFormat(ImageFormat.YUV_420_888)
            setTargetResolution(Size(3264, 2448))
            // We request aspect ratio but no resolution to match preview config but letting
            // CameraX optimize for whatever specific resolution best fits requested capture mode
            setTargetAspectRatio(Rational(3,4))
            // Set initial target rotation, we will have to call this again if rotation changes
            // during the lifecycle of this use case
            setTargetRotation(viewFinder.display.rotation)
        }.build()
imageCapture.takePicture(object : ImageCapture.OnImageCapturedListener() {
             override fun onCaptureSuccess(image: ImageProxy?, rotationDegrees: Int) {
                        println("captureSuccess h: ${image?.height} w: ${image?.width}")
                    }
             override fun onError(imageCaptureError: ImageCapture.ImageCaptureError, message: String, cause: Throwable?) {
                        println(message)
             }
          })

以上是我为三星S8美国版捕获图像设置的代码,我想使用最大输出分辨率为3264*2448的YUV格式。但是,我得到的结果是1440*1080。我在S9和S8亚洲版上尝试过,代码在两款手机上都可以正常工作。很奇怪,当我将格式设置为JPEG时,它会在这款手机上工作。

我也试过S7和pixel 2,pixel 2可以以支持的最大分辨率输出YUV(不是上面的代码),但S7不能,也会给我1080*1440。

这是CameraX bug吗?如果是,除了使用back-to-Camera2外,还有什么其他解决方法吗?

谢谢

共有1个答案

蒲功
2023-03-14

我没有具体的设备来验证这一点,但相机能够产生比YUV更好的Jpeg分辨率并不罕见。另一方面,请参见此相关问题的答案。

 类似资料:
  • 我试图通过给Camerax的图像分析提供一个480x360的图像来提高人脸检测率。然而,下面的代码生成640x480图像,这将检测减少到10 fps。如果我给出480x360,我可以将速率提高到20。 > 如何获得较小的目标分辨率和分辨率 是否有显示图像分析我得到的图像作为prweview。与预览使用相反。这使得人脸检测总体上不会与预览有很大的滞后。 ImageAnalysis ImageAnal

  • 好的,这里有一个奇怪的问题,我有问题(用gcc btw编译) 下面是用于命令提示的Mandelbrot分形生成器的源代码。我以前做过这项工作,我想加快自己的测试速度,看看我能以多快的速度生成命令提示符中实际生成Mandelbrot分形所需的代码。我经常这样做是为了给自己找点乐子 不管怎样,我遇到了一个新问题,我不太明白问题是什么。当分形呈现时,无论我设置了多少次迭代或什么转义值,它都将始终显示为椭

  • 功能介绍 获取百度移动统计平台的全部屏幕分辨率列表 接口 https://openapi.baidu.com/rest/2.0/mtj/svc/config/getScreenList?access_token={ACCESS_TOKEN} 请求参数 参数名 类型 描述 样例 access_token string 用户登入后获取的token 1.a6b7dbd428f731035f771b8d

  • iPhone 分辨率汇总 机型分辨率 iPhone型号 pt scale px 宽高比 statusBar tabBar iPhone 4s 320 * 480 2 1.5 20 49 iPhone 5 320 * 568 2 1.775 ↑ ↑ iPhone 5s 320 * 568 2 1.775 ↑ ↑ - - - - - - - iPhone 6/7/8 375 * 667 2 1.778

  • Android设备具有mdpi、hdpi、xhdpi、xxhdpi等屏幕分辨率。在Android系统中编程时,我会用这些分辨率为手机编写不同的代码。但Flutter是android和ios的开发环境。我需要为不同分辨率的android和ios手机分别编程吗?ios中是否有mdpi、hdpi、xhdpi等分辨率?

  • 我想使用CameraX库捕获具有固定分辨率(即)的照片。 因此,根据文档,我可以为设置目标分辨率: 文档描述方法如下: 设置预期的输出目标分辨率。 目标分辨率试图为图像分辨率建立一个最小界限。实际图像分辨率将是尺寸上最接近的可用分辨率,该分辨率不小于目标分辨率,如相机实现所确定的。但是,如果不存在等于或大于目标分辨率的分辨率,则将选择小于目标分辨率的最接近的可用分辨率。 如果我错了,请更正我,但是