我目前在Android应用程序中使用类CameraBridgeViewBase的setMaxFrameSize
方法来下调我主摄像头的捕获帧。在我的用例中,我需要一个非常低的分辨率,因为需要良好的性能。我想知道这种方法是否只调节输出帧,而不是由不同滤波器改变的内部捕获帧。
所以我的问题是:这个方法是否在捕获后立即占用帧并更改它以便整个处理过程使用更改的帧,或者它只是在显示在显示器上之前改变帧?
你能告诉我在哪里可以找到这个问题的答案,或者你找到它的地方吗?
这是一个最小的:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
javaCameraView =(JavaCameraView) findViewById(R.id.java_camera_view);
javaCameraView.setMaxFrameSize(240, 180);
javaCameraView.setVisibility(SurfaceView.VISIBLE);
javaCameraView.enableFpsMeter();
javaCameraView.setCvCameraViewListener(this);
}
setMaxFrameSize()用于从特定于设备的列表中找到最佳预览帧分辨率(由Camera.getSupportedPreviewSizes()返回)。
举个例子 - 我们设置setMaxFrameSize(200,200),我们有176x152和320x240大小。预览框将选择176x152尺寸。
如果您的大小太小,JavaCameraView将尝试setPreviewSize(0,0),并且在大多数设备上它将失败。