无法使用JavaCameraView在OpenCV Android项目中设置setPictureSize

时间:2016-06-11 17:02:43

标签: camera

我试图设置图片大小来改变使用JavaCameraView的Android OpenCV项目中相机的图像捕获分辨率。我从支持的分辨率中选择最佳分辨率并尝试设置它。但无论我尝试哪种解决方案,它都无法奏效。我的分辨率设置代码是这样的 -

            List<Camera.Size> supportedSizes = params.getSupportedPictureSizes();
            if(supportedSizes!=null && supportedSizes.size()>0) {
                int maxSupportedWidth = 0, maxSupportedHeight = 0;
                for(int i=0; i<supportedSizes.size(); i++) {
                    if(supportedSizes.get(i).width >= maxSupportedWidth)
                        maxSupportedWidth = supportedSizes.get(i).width;
                }

                for(int i=0; i<supportedSizes.size(); i++) {
                    if(supportedSizes.get(i).width == maxSupportedWidth &&
                            supportedSizes.get(i).height>=maxSupportedHeight) {
                        maxSupportedHeight = supportedSizes.get(i).height;
                    }
                }
                Log.d(TAG, "Setting image capture resolution to "+maxSupportedWidth+"x"+maxSupportedHeight);
                params.setPictureSize(maxSupportedWidth, maxSupportedHeight);
            }
            mCamera.setParameters(params);

我尝试在JavaCameraView的initializeCamera()函数中调用此代码,然后在onCameraViewStarted回调函数中调用此代码,然后在调用takePicture()函数之前调用此代码,但似乎并没有在任何地方工作。对于某些手机,它会自动捕获大尺寸图像,但对于其他手机则不会。我目前正在使用Android版4.4.4 KTU84P的Redmi手机。我尝试使用SurfaceView和Android Camera类制作一个不使用OpenCV的不同应用程序。我添加了相同的功能来设置最大分辨率,它工作得很好。

请帮忙。关于这个主题的任何想法都将不胜感激。

0 个答案:

没有答案