【问题标题】:Camera VIew OpenCV in Android Cannot FItAndroid中的Camera VIew OpenCV无法适应
【发布时间】:2021-08-23 06:14:09
【问题描述】:

我在 android 上的 cameraview opencv 有问题,在 android 设备类型上,三星相机视图不适合有一个像图 1 那样的黑色切割,而在 android 设备类型 xiaomi 和 realme 上它像图 2 一样安全。我采取了中间来自supportPreviewSize的分辨率并将maxFrameSize设置为1:1的比例,相机视图大小如何与所有当前的android设备兼容?这纯粹是因为我的代码仍然错误还是Android设备本身的相机设置?

Picture 1 Device Samsung A51

Picture 2 Device Realme 3

setResolution():

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();

setMaxFrameSize :

jCameraView.setResolution();
Camera.Size sizeMaxFrame = jCameraView.getSizeCamera();

jCameraView.setMaxFrameSize(sizeMaxFrame.height, sizeMaxFrame.height);

我使用 setResolution() 方法中的高度值将 maxFrameSize 值设置为相同的值

对不起,如果我的语言或问题不容易理解

【问题讨论】:

    标签: java android opencv javacameraview


    【解决方案1】:

    这是因为您使用的 Camera2 框架。使用该框架并为所有设备提供支持确实很痛苦。为了解决这个问题,Android 团队提出了相同的新库,即CameraX。 相同的文档在这里:

    https://developer.android.com/training/camerax

    它为大多数设备提供了丰富的支持。并且有很多被称为供应商扩展的额外功能,您可以在上面的链接中找到更多信息。该框架建立在 Camera/Camera2 框架之上。所以你应该考虑migratingCameraX,以便更好地支持更多设备,使用相同的代码。或者您需要使用当前框架来满足个别设备的需求。

    【讨论】:

    • 谢谢你的回答,我先注意到我会在这个项目中学习cameraX及其实现
    • 如果需要有关 cameraX 的教程,也可以 ping 入
    猜你喜欢
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多