我正在为Android操作系统开发应用程序,它可以帮助您在相机的帮助下绘图。应用程序以从相机槽onPreviewFrame(byte[] data, Camera camera)
捕获帧的方式工作,并从此处图片转换为二进制黑/白。一般应用程序工作,但我有以下问题:
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);
有没有办法让图片更快?
我还注意到每一对帧picutre都不一样(不同的直方图),虽然手机完全静止且光线相同。
答案 0 :(得分:0)
我认为你应该按照指出使用NDK。您可能也希望在另一个线程上执行此类处理,而不是在主线程中。
关于你的(2)的小点。直方图有多大不同?大多数相机传感器和处理都会有所不同,由于噪声和3A算法的变化,很难产生精确的直方图。