2017-11-06 25 views
1

takePhoto의 Raw 콜백은 신뢰할 수 없으므로 JPEG 콜백을 사용해야합니다 ... 기본적으로 가져 오는 것은 JPEG 데이터 형식의 모든 정보를 보유하는 바이트 배열입니다. 이제 어떻게 든이 값을 0-255의 값을 갖는 각 픽셀의 회색 음영 정보로 가져와야합니다. ...JPEG 바이트 데이터를 원시 그레이 스케일 바이트 정보로 변환하는 가장 빠른 방법은 무엇입니까?

BitmapFactory.decodeByteArray를 사용하여 jpeg 데이터 배열을 비트 맵으로 변환하고 꽤 나쁜 성능 현명한 getPixel()을 사용하여 비트 맵을 그레이 스케일로 변환합니다. ...

아무도이 경험이 있습니까?

+1

그레이 스케일 ColorMatrix는 어떻습니까? –

+0

OpenCV를 사용하면 이미지를 그레이 스케일로 변환하는 일부 C++ 방법을 사용할 수 있지만 안드로이드에서는 매우 복잡한 방법입니다 ... – npace

+0

저는 BoofCV를 사용하기로 이미 약속했습니다 ... 불행히도 어떤 일을 할 수있는 함수가 없습니다 내가해야 할 일은 ... – 1resu

답변

2

이론상 가장 빠른 방법은 Y 구성 요소를 디코딩하고 스트림의 Cb 및 Cr을 무시하는 것입니다.

+0

어떻게 이 y 구성 요소가 JPEG 배열로 코딩 되었습니까? 내가 볼 수있는 자원이 있니? 나는 많은 것을 주위에 인터넷 검색했고 couldnt는 무엇이라도 발견한다. .. – 1resu

+1

https://www.amazon.com/Compressed-Image-File-Formats-JPEG/dp/0201604434/ref=pd_bxgy_14_img_2?_encoding=UTF8&psc=1&refRID=VPB1FTFQG5PJH1AFZ51M – user3344003