大家好,最近几天我遇到了Camera Preview Callback的问题,我想扫描每一帧
在添加的PreviewCallback中,我有设备(motorola g)给我30 fps。 <下面是
预览回调中的代码。
private PreviewCallback previewCallback = new PreviewCallback() {
/**
* {@inheritDoc}
*/
@Override
public void onPreviewFrame(byte[] data, Camera cam)
{
if (data == null) throw new NullPointerException();
Camera.Size size = cam.getParameters().getPreviewSize();
if (size == null) throw new NullPointerException();
int width = size.width;
int height = size.height;
// maximum value of the range of sum (Red) values in each frame 1/10 part of every 5th
// pixel red value sum ( if all pixels consider the red(255) then max value of sum of r)
final double analysisFrameSize = (((width * height)/100)/5f)* 255;
ImageProcessing.setMaxPixelPerFrame(analysisFrameSize);
ImageProcessModel model = ImageProcessing.decodeYUV420SPtoRedAvg(data.clone(), width, height);
List<Integer> furtherAnaylisList = model.getmFurtherAnalysisList();
final int frameSize = (((width * height)/100)/5);
int redAvg = (furtherAnaylisList.get(0) / frameSize);
int green = (furtherAnaylisList.get(1) / frameSize);
int blue = (furtherAnaylisList.get(2) / frameSize);
Log.println(TAG,String.format("AvgRed:%2d,AvgGree:%2d,AvgBlue:%2d",redAvg,green,blue));
}
};
程序是否会降低预览回调中的帧速率,因为在写入代码后它将fps 30 fps减速到22 fps,我没有22 fps的问题,但它不是常数。
我可以设置相机给我22或30 fps恒定。
提前谢谢。
答案 0 :(得分:1)
我可以设置相机给我22或30 fps恒定。
不,但您可以将图像处理工作移到后台线程,这样就可以停止减慢相机速度。