Android 中的 Camera VIew OpenCV 无法安装
Camera VIew OpenCV in Android Cannot FIt
我在 android 上的 cameraview opencv 有问题,在 android 设备类型上三星相机视图不适合在 android 设备上有如图 1 的黑色切口输入 xiaomi 和 realme 它是安全的,如图 2。我从 supportPreviewSize 中获取中间分辨率并将 maxFrameSize 设置为 1:1 的比例,相机视图大小如何与当前所有 android 设备兼容?这纯粹是因为我的代码仍然错误还是 android 设备本身的相机设置?
Picture 1 Device Samsung A51
Picture 2 Device Realme 3
设置分辨率() :
mCamera = android.hardware.Camera.open();Camera.Parameters params = mCamera.getParameters();
List<Camera.Size> listSizes = params.getSupportedPreviewSizes();
List<Camera.Size> listCapture = params.getSupportedPictureSizes();
int midResolution = listSizes.size() / 2;
cameraSize = listSizes.get(midResolution);
params.setPictureSize(cameraSize.width, cameraSize.height);
params.setVideoStabilization(true);
params.setPreviewSize(cameraSize.width, cameraSize.height);
mCamera.setParameters(params);
mCamera.startPreview();
设置最大帧大小:
jCameraView.setResolution();
Camera.Size sizeMaxFrame = jCameraView.getSizeCamera();
jCameraView.setMaxFrameSize(sizeMaxFrame.height, sizeMaxFrame.height);
我使用 setResolution() 方法中的高度值将 maxFrameSize 值设置为相同的值
抱歉,如果我的语言或问题不容易理解
这是因为您使用的 Camera2
框架。使用该框架并为所有设备提供支持真的很痛苦。为了解决这个问题,Android 团队提出了同样的新库,即 CameraX
。
同样的文档在这里:
它为大多数设备提供了丰富的支持。并且有很多额外的功能,这些功能被称为供应商扩展,您可以在上面 link 找到更多关于它的信息。这个框架建立在 Camera/Camera2 框架之上。因此,您应该考虑 migrating
到 CameraX
,以便使用相同的代码更好地支持更多设备。或者您需要使用当前框架满足个别设备集的需求。
我在 android 上的 cameraview opencv 有问题,在 android 设备类型上三星相机视图不适合在 android 设备上有如图 1 的黑色切口输入 xiaomi 和 realme 它是安全的,如图 2。我从 supportPreviewSize 中获取中间分辨率并将 maxFrameSize 设置为 1:1 的比例,相机视图大小如何与当前所有 android 设备兼容?这纯粹是因为我的代码仍然错误还是 android 设备本身的相机设置?
Picture 1 Device Samsung A51
Picture 2 Device Realme 3
设置分辨率() :
mCamera = android.hardware.Camera.open();Camera.Parameters params = mCamera.getParameters();
List<Camera.Size> listSizes = params.getSupportedPreviewSizes();
List<Camera.Size> listCapture = params.getSupportedPictureSizes();
int midResolution = listSizes.size() / 2;
cameraSize = listSizes.get(midResolution);
params.setPictureSize(cameraSize.width, cameraSize.height);
params.setVideoStabilization(true);
params.setPreviewSize(cameraSize.width, cameraSize.height);
mCamera.setParameters(params);
mCamera.startPreview();
设置最大帧大小:
jCameraView.setResolution();
Camera.Size sizeMaxFrame = jCameraView.getSizeCamera();
jCameraView.setMaxFrameSize(sizeMaxFrame.height, sizeMaxFrame.height);
我使用 setResolution() 方法中的高度值将 maxFrameSize 值设置为相同的值
抱歉,如果我的语言或问题不容易理解
这是因为您使用的 Camera2
框架。使用该框架并为所有设备提供支持真的很痛苦。为了解决这个问题,Android 团队提出了同样的新库,即 CameraX
。
同样的文档在这里:
它为大多数设备提供了丰富的支持。并且有很多额外的功能,这些功能被称为供应商扩展,您可以在上面 link 找到更多关于它的信息。这个框架建立在 Camera/Camera2 框架之上。因此,您应该考虑 migrating
到 CameraX
,以便使用相同的代码更好地支持更多设备。或者您需要使用当前框架满足个别设备集的需求。