类CameraBridgeViewBase的方法setMaxFrameSize在OpenCV Java中到底做了什么?

类CameraBridgeViewBase的方法setMaxFrameSize在OpenCV Java中到底做了什么?,java,android,image-processing,camera,opencv4android,Java,Android,Image Processing,Camera,Opencv4android,我目前正在android应用程序中使用CameraBridgeViewBase类的方法setMaxFrameSize,用于下调我的主摄像头捕获的帧。在我的用例中,我需要非常低的分辨率,因为需要良好的性能。我想知道这个方法是否只调节输出帧,而不调节被不同过滤器改变的内部捕获帧 因此,我的问题是:这种方法是在捕获后立即获取帧并对其进行更改,以便整个处理过程使用更改后的帧,还是仅在帧显示在显示器上之前对其进行更改 你能告诉我在哪里能找到这个问题的答案吗?或者你在哪里找到的 以下是一个最低要求: @Ov

我目前正在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()用于从特定于设备的列表(由返回)中查找最佳预览帧分辨率

例如,我们设置了setMaxFrameSize(200200),我们有176x152和320x240大小。将选择大小为176x152的预览帧


如果您的大小太小,JavaCameraView将尝试设置PreviewSize(0,0),并且在大多数设备上都会失败。

欢迎!请在你的问题中加入一个答案。干杯如果您的应用程序需要良好的性能-opencv摄像头不是您应该使用的。@DmitriiZ。你会用什么来代替?@RichChurcher谢谢!:)像这样?@Pm740 native android camera+GLES用于渲染帧。所以预览分辨率是显示在屏幕上的分辨率,而不是我正在处理的分辨率,显示处理后的图像?不,这正是您从相机获得的分辨率。你不会得到更多(或更少)的像素。对于显示,图片可以放大或缩小以适应“窗口”。但是您的onCameraFrame()回调获取的inputFrame的宽度和高度不允许超过您选择的MaxFrameSize(宽度-240,高度-180)。那么180p预览帧的性能应该比720p预览帧更好,对吗?