我正在从事一个项目,Images
从那时Preview Images
起Camera
我必须计算Blue
图像中的平均计数,我已经快速从相机中拍摄了图像(As Preview Images
)。图像格式是NV21
(真的不是图像格式专家,所以我不知道他们为什么使用它)
这就是我从Camera Preview Callback
public void onPreviewFrame(byte[] data, Camera camera) {
Camera.Parameters parameters = camera.getParameters();
Size size = parameters.getPreviewSize();
YuvImage image = new YuvImage(data, ImageFormat.NV21, size.width,
size.height, null);
Rect rectangle = new Rect();
rectangle.bottom = size.height;
rectangle.top = 0;
rectangle.left = 0;
rectangle.right = size.width;
ByteArrayOutputStream out2 = new ByteArrayOutputStream();
image.compressToJpeg(rectangle, 100, out2);
byte[] d = out2.toByteArray();
Bitmap bitmap = BitmapFactory.decodeByteArray(d, 0, d.length);
}
正如你所看到的,我Bitmap
现在有,我打算通过读取Bitmap
像素然后处理来确定图像中的蓝色Pixel by Pixel
,但是同事说这种方式在某些情况下很重而且很慢而且 不准确,我必须得到图像中的蓝色作为硬件本身的矩阵,并且不确定从哪里开始(顺便说一句,我的同事在 iOS 版本上工作),任何帮助将不胜感激。