【问题标题】:Image stabilization when i move phone - Android移动手机时的图像稳定 - Android
【发布时间】:2012-12-10 09:10:31
【问题描述】:

我正在为 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. 我还注意到,虽然手机完全静止且光线相同,但每几帧图片都不相同(不同的直方图)。

【问题讨论】:

标签: android camera preview


【解决方案1】:

我认为您应该按照所指出的那样使用 NDK。您可能还想在另一个线程上进行这种类型的处理,而不是在主线程中。

关于您的 (2) 的小问题。直方图有何不同?大多数相机传感器和处理会有所不同,并且由于 3A 算法的噪声和变化,很难生成精确的直方图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    相关资源
    最近更新 更多