可以更改Android中相机预览的对比度吗?我一直在寻找怎么做,但我只看到如何改变图像的对比度。
答案 0 :(得分:1)
除曝光补偿和白平衡外,您实际上可以设置对比度参数本身。检查参数"对比"支持相机参数扁平阵列,并根据您可以做出决定。以下是一个这样的例子,
Camera.Parameters camParams = mCamera.getParameters();
String parmListStr = camParams.flatten();
String[] parms = parmListStr.split(";");
int maxContrast = 0, curContrast = 0, newContrast = 0;
for(String str:parms){
if(str.contains("max-contrast=")){
String[] values = str.split("=");
maxContrast = Integer.getInteger(values[1]);
} else if (str.contains("contrast=")){
String[] values = str.split("=");
curContrast = Integer.getInteger(values[1]);
}
}
if (maxContrast > 0 && curContrast >= 0){
//calculate contrast as per your needs and set it to camera parameters as below
newContrast = (curContrast + 1) < maxContrast? (curContrast + 1): maxContrast;
camParams.set("contrast", newContrast);
mCamera.setParameters(camParams);
}
在上面的例子中&#34;对比&#34;和&#34; max-contrast&#34;是相机参数键(来自nexus4)。这些不是标准的,它们可能会从一个设备更改为另一个设备。但根据我的观察,这些是所有制造商使用的常用密钥。也许你可以对不同的设备做更多的研究,以完成整套密钥并根据它编写逻辑。
答案 1 :(得分:0)
控制白平衡和曝光有两种方法,除非您使用第三方库,否则直接控制对比度是不可用的。最受认可的是OPENCV for Android
以下是两种方法,可以作为相机参数传递
setWhiteBalance() or setExposureCompensation()