使用OpenCV更改Android中的图像分辨率

时间:2017-04-21 16:02:06

标签: opencv javacameraview

我正在使用<html> <body> <button>click</button> <div class="darken"> <img id="img" src="http://davidrhysthomas.co.uk/linked/astrid_avatar2.png" /> </div> </body> </html>和OpencCV捕获帧,但我仍然停留在默认的620 * 480分辨率,这不是我的要求我的手机可以支持1280 * 720分辨率,我一直试图找到解决方案很多天,尝试了很多选项,但无法改变默认的图像/帧分辨率。

JavaCameraView

2 个答案:

答案 0 :(得分:1)

如果您的JavaCameraView以横向显示,您可以尝试替换

mOpenCvCameraView.setMaxFrameSize(720,1280);

mOpenCvCameraView.setMaxFrameSize(1280,720);

如果没有,请尝试在 manifest.xml 中更改活动类的方向,如

<activity android:name="CameraActivity"
            android:screenOrientation="landscape" />

之后更改MaxFrameSize:

mOpenCvCameraView.setMaxFrameSize(1280,720);

答案 1 :(得分:0)

打开JavaCameraView.java,然后在InitializeCamera()中手动设置宽度和高度:

...

/* Now set camera parameters */
try {
    Camera.Parameters params = mCamera.getParameters();
    Log.d(TAG, "getSupportedPreviewSizes()");
    List<android.hardware.Camera.Size> sizes = params.getSupportedPreviewSizes();

    if (sizes != null) {
        /* Select the size that fits surface considering maximum size allowed */
        width = 1080;
        height = 1920;
        Size frameSize = calculateCameraFrameSize(sizes, new JavaCameraSizeAccessor(), width, height);

...

就我而言,是肖像。因此,如果您需要景观,请进行切换。不幸的是,这是硬编码,所以请有人来寻求动态解决方案。