카테고리 없음
안드로이드 영상처리 링크들
깡죠
2015. 6. 18. 01:15
안드로이드폰 영상처리
영상처리(컴퓨터비전) 기술은 우리와 얼마나 가까워지고 있는가
http://readme.skplanet.com/?p=8137
스마트폰에서의 영상처리를 위한 GPU 활용
http://image.inha.ac.kr/paper2/KICS12Park.pdf
복잡하게 할 것도 없이 영상만 뿌려주고 sync를 맞출 필요가 없다면,
간단한 socket 연결을 통해 A단말에서 영상 정보를 보내고 B 단말에서 받아 ImageView만 바꿔주시면 됩니다.
// A 단말에서 카메라 정보 구하는 예제로 send 쪽은 직접 구현 해주셔야 합니다.
mCamera.setPreviewCallback(new Camera.PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {
int w = params.getPreviewSize().width;
int h = params.getPreviewSize().height;
int format = params.getPreviewFormat()
send(w, h, format, data);
}
}
// B단말에서 정보를 받았을 때의 예제입니다.
private void updateImage(byte[] data, Camera.Parameters params , int w, int h)
{
YuvImage image = new YuvImage(data, format, w, h, null);
ByteArrayOutputStream out = new ByteArrayOutputStream();
Rect area = new Rect(0, 0, w, h);
image.compressToJpeg(area, 50, out);
bitmap = captureImg = BitmapFactory.decodeByteArray(out.toByteArray(), 0, out.size());
mImageView.setImageBitmap(bitmap);
}
단지 onPreviewFrame쪽의 경우 카메라 용이라 1초에 10fps 정도만 지원가능할겁니다.
다른 방법으로 http://developer.android.com/reference/android/media/MediaRecorder.html 의 C쪽 코드를 수정해서 파일로 떨궈지는 것을 http로 쏘게 하고 대상 단말에서 mediaplayer를 통해 재생하는 방식도 좋긴 한데, C쪽 코드는 제조사마다 조금씩 달라질 수 있어서, 단말특성을 탈 수 있습니다. 그래도 졸작이니. 대상 단말을 정해서 시도해보시는 것도 괜찮을 듯 하네요.