移动手机时的图像稳定功能 - Android

时间:2012-12-10 09:10:31

标签: android camera preview

我正在为Android操作系统开发应用程序,它可以帮助您在相机的帮助下绘图。应用程序以从相机槽onPreviewFrame(byte[] data, Camera camera)捕获帧的方式工作,并从此处图片转换为二进制黑/白。一般应用程序工作,但我有以下问题:

  1. onPreviewFrame捕获图像非常慢。现在我跳过帧但方法仍然很慢。

    YuvImage yuvImage = new YuvImage(data, ImageFormat.NV21, width, height, null);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    yuvImage.compressToJpeg(new Rect(0,0,width, height), 100, baos);
    byte [] imageData = baos.toByteArray();
    Bitmap bmp = BitmapFactory.decodeByteArray(imageData , 0, imageData .length);
    bmp = Bitmap.createScaledBitmap(bmp, surfaceView.getMeasuredHeight(), surfaceView.getMeasuredWidth(), false);
    Bitmap bmps = ImageHelper.rotate(bmp, kot);
    

    有没有办法让图片更快?

  2. 我还注意到每一对帧picutre都不一样(不同的直方图),虽然手机完全静止且光线相同。

1 个答案:

答案 0 :(得分:0)

我认为你应该按照指出使用NDK。您可能也希望在另一个线程上执行此类处理,而不是在主线程中。

关于你的(2)的小点。直方图有多大不同?大多数相机传感器和处理都会有所不同,由于噪声和3A算法的变化,很难产生精确的直方图。