三星设备上的Android摄像头API模糊图像



在为inApp摄像头实现camera2 API后,我注意到在三星设备上,图像看起来很模糊。经过搜索,我找到了Sasmug相机SDK(http://developer.samsung.com/galaxy#camera)。因此,在三星Galaxy S7上实现SDK后,图像现在很好,但在Galaxy S6上仍然模糊。有人在三星设备上遇到过这种问题吗?

编辑:补充@rcsumners的评论。我正在使用设置自动对焦

mPreviewBuilder.set(SCaptureRequest.CONTROL_AF_TRIGGER, SCaptureRequest.CONTROL_AF_TRIGGER_START);
mSCameraSession.capture(mPreviewBuilder.build(), new SCameraCaptureSession.CaptureCallback() {
            @Override
            public void onCaptureCompleted(SCameraCaptureSession session, SCaptureRequest request, STotalCaptureResult result) {
                isAFTriggered = true;
            }
        }, mBackgroundHandler);

这是一种长曝光图像,用户必须拍摄静止不动物体的图像。为此,我使用CONTROL_AF_MODE_MACRO

mCaptureBuilder.set(SCaptureRequest.CONTROL_AF_MODE, SCaptureRequest.CONTROL_AF_MODE_MACRO);

如果可用,我也会启用自动闪光

requestBuilder.set(SCaptureRequest.CONTROL_AE_MODE,
                SCaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);

我不是API方面的专家,我主要使用SDK示例应用程序。

可能有许多问题导致了此问题。一个突出的问题是输出图像的尺寸我运行了Camera2 API,预览很清楚,但输出很模糊

        val characteristics: CameraCharacteristics? = cameraManager.getCameraCharacteristics(cameraId)
        val size = characteristics?.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)?.getOutputSizes(ImageFormat.JPEG) // The issue
        val width = imageDimension.width
        val height = imageDimension.height
        if (size != null) {
            width = size[0].width; height = size[0].height
        }
        val imageReader = ImageReader.newInstance(width, height, ImageFormat.JPEG, 5)

下面的代码返回的尺寸约为245*144,太小了,无法发送到图像读取器。一些输出是如何拉伸图像使其最终变得模糊的。因此,我删除了下面的这一行。

val size = characteristics?.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP)?.getOutputSizes(ImageFormat.JPEG) // this was returning a small

手动设置宽度和高度解决了此问题。

您正在为一帧设置AF触发器,但您正在等待AF完成吗?对于AF_MODE_MRO(您是否正在验证设备列表是否支持此AF模式?),您需要等待AF_STATE_FOCUSED_LOCKED,然后才能保证图像稳定清晰。(如果AF算法无法达到清晰的焦点,可能是因为物体离镜头太近,或者场景太混乱,您也可能收到NOT_FOCUSED_LOCKED)

在大多数现代设备上,建议使用CONTINUOUS_PICTURE,不要担心AF触发,除非你真的想锁定焦点一段时间。在该模式下,设备将不断尝试尽其所能进行聚焦。首先,我不确定所有的设备都支持MACRO。

相关内容

  • 没有找到相关文章

最新更新