2017-05-01 39 views
0

원래의 카메라 미리보기를 잘라내어 작은 표면에 맞게 만들려고합니다.카메라 2 자르기 영역 전체 화면

schematic

빨간색 : 카메라 미리보기

검은 색 : 블루 라인에 누워 표면 미리보기

모든 점은 검은 색 표면의 비율을 존중해야한다. 빨간 표면을 크기의 사각형 (w/h * H, H)으로 자르면 화면에 잘 들어 맞아야합니다. ...

captureRequestBuilder.set(CaptureRequest.SCALER_CROP_REGION, new Rect(0,0, previewSize.getHeight()*surfaceWidth/surfaceHeight, previewSize.getHeight())); 

그러나 미리보기는 여전히 왜곡

어떻게 SCALER_CROP_REGION을 사용해야합니다

나는 이미지를 자르려면이 사용하고? 감사.

편집 : 문제는, 계산에서하지만 SCALER_CROP_REGION에서되지 않기 때문에 나는 차원이 될하기 위해 사각형을 설정할 때 (0010801920) 내가 사용하고자하는 표면의 크기이다 (전체 화면), 미리보기가 여전히 왜곡됩니다.

편집 2 : 전체 화면에서

미리보기 : enter image description here

일반 모드 : enter image description here

답변

0

지금까지 당신의 계산을 합리적으로 보인다. 왜곡이 어떻게 생겼는지 모르는 경우 문제가 어디인지 알기가 어렵습니다. 왜곡 된 이미지를 제공 할 수 있습니까?

잘린 방법에 대한 좋은 참고 자료는 Camera Documentation에서 찾을 수 있습니다.

카메라의 최대 해상도를 확인 했습니까?

서페이스를 준비하는 코드 (또는 모든 관련 코드)를 제공 할 수 있습니까? 내가 당신의 코드를 모른다는 것에서 나는 어딘가에 setDefaultBufferSize가 있다고 추측 할 수 있습니다. 정확히 CameraDevice API에 따라 설정 되었습니까?

+0

자르기 자유 형식을 지원하지 않습니다. 나는 이미이 링크를 보았고, 나는 그것을 다시 읽게 될 것이다. 어쩌면 나는 뭔가를 놓쳤을 것이다 ... –

+0

여전히 문제를 해결할 수 없다 ... 미리보기가 왜곡되어있다. 누군가 이런 일이 일어나는 이유를 알고 있는가? –

+0

예 내 카메라는 4160x3120 크기의 사진을 찍을 수 있습니다.위의 계산을 통해 미리보기를 잘라서 1755x3120의 새 크기를 얻고 9:16의 비율을 유지해야합니다. 그렇다면 미리보기가 왜 왜곡되는지 이해하지 못합니다 ... –

1

내가 읽고 경험 한 바에 따르면 SCALAR_CROPPING_REGION에는 미리보기 표면이 아닌 센서 배열의 좌표가 주어져야합니다. 하드웨어가 FreeForm 자르기를 지원하지 않는 경우 센터를 참조하여 min 스칼라 자르기 (센서 배열 및 최대 디지털 줌 기능) 또는 사용자가 제공 한 자르기 영역 중 큰 쪽을 캡처합니다. 링크 참조 : https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.html#SCALER_CROPPING_TYPE https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.html#SCALER_CROP_REGION 내가 유사한 캡처를 할 노력하고 있어요,하지만 하드웨어가 난 그냥 내 질문을 편집