簡體   English   中英

三星設備上的 Android 相機 API 圖像模糊

[英]Android camera API blurry image on Samsung devices

在為 inApp 相機實現 camera2 API 后,我注意到在三星設備上,圖像看起來很模糊。 在搜索之后,我找到了 Sasmung 相機 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_MACRO(您是否正在驗證設備列表是否支持此 AF 模式?)您需要等待AF_STATE_FOCUSED_LOCKED才能保證圖像穩定且清晰。 (如果 AF 算法無法達到清晰對焦,您也可能會收到 NOT_FOCUSED_LOCKED,這可能是因為物體離鏡頭太近,或者場景太混亂)

在大多數現代設備上,建議使用CONTINUOUS_PICTURE而不必擔心觸發 AF,除非您真的想鎖定一段時間的焦點。 在該模式下,設備將不斷嘗試盡其所能集中注意力。 首先,我不確定所有設備都支持 MACRO。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM