CameraBridgeViewBase类的方法setMaxFrameSize在OpenCV Java中的作用是什么?

时间:2017-12-17 18:37:06

标签: java android image-processing camera opencv4android

我目前正在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);
}

1 个答案:

答案 0 :(得分:0)

setMaxFrameSize()用于从特定于设备的列表中找到最佳预览帧分辨率(由Camera.getSupportedPreviewSizes()返回)。

  

作为示例 - 我们设置setMaxFrameSize(200,200),我们有176x152和320x240大小。预览框将以176x152尺寸选择。

如果您的尺寸太小, JavaCameraView 将尝试setPreviewSize(0,0),并且在大多数设备上它将失败。