我试图设置图片大小来改变使用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的不同应用程序。我添加了相同的功能来设置最大分辨率,它工作得很好。
请帮忙。关于这个主题的任何想法都将不胜感激。