我的目标是获得尽可能高的FPS。我会很满意BW的小型框架,但FPS应该是最大的。 HTC WildFire S上的 getSupportedPreviewFpsRange
返回(9,30)。但是当我尝试使用最简单的处理来绘制预览图像时,它的视觉效果最高可达12-15 FPS。 设置参数和startPreview()
方法调用后,我这样做:获得实时计算机视觉处理高FPS的方法
camera.setPreviewCallback(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] bytes, Camera camera) {
Bitmap bitmap = Bitmap.createBitmap(size.width, size.height, Bitmap.Config.ARGB_8888);
int[] colors = new int[size.width * size.height];
for (int i=0; i < colors.length; i++){
colors[i] = getBWColor(bytes[i]);
}
bitmap.setPixels(colors, 0, size.width, 0, 0, size.width, size.height);
secondView.setImageBitmap(bitmap);
}
});
}
private static int getBWColor(byte b){
int res = 255;
for(int i=0;i<3;i++){
res = (res << 8) + b;
}
return res;
}
有没有办法得到它尽可能快的? =(
有人建议“你可以给媒体记录器提供插口,并且它会写入实时数据 - 这样你就可以在保存数据之前捕获数据(但它已经被压缩了)”但我并不真正了解去做吧。 – 2011-12-27 22:19:16