如何实现Android手机摄像头的摄像头自动对焦好还是手动好

查了一些资料都没有找到,手機摄像头对选定的区域对焦的方法就像小米照相机一样,点击哪哪里显示就特别清晰的那个功能,求大神 支招 怎么做到这个功能。。

对焦这个问题早期版本未能解决。安卓4.0新增的Camera类有一个setFocusAreas方法可以设置焦距。

早起SDK因为手机品种不齐有些缺乏硬件支持,所以没囿一个统一的对焦接口新的SDK里已经出现了。

这个是要硬件支持的不是所有camera都可以。

最近在从零开始写一个移动端的AR系统坑实在是太多了!!!整个项目使用了OpenCV第三方库,但对于摄像机来说和原生Camera的方法基本相同。

init()函数是自定义的初始化函数可以茬onCreate时使用。由于这里需要使用OpenCV库所以本项目是在加载完OpenCV库并判断成功后才调用init()函数的。

然后它分别判断该设备的相机是否支持设置对焦区域和测光区域,如果支持就分别为parameters设置之前计算好的聚焦和测光区域

最后,让Camera摄像头自动对焦好还是手动好

    这个函数主要实现从屏幕坐标系到对焦坐标系的转换。由MotionEvent.getRowX()得到的是以屏幕坐标系(即屏幕左上角为原点右下角为你的当前屏幕分辨率,单位是一个像素)为准的坐标而setFocusAreas接受的List<Area>中的每一个Area的范围是(-1000,-1000)到(1000 1000),也就是说屏幕中心为原点左上角为(-1000,-1000)右下角为(1000,1000)注意,如果超絀这个范围的话会报setParemeters failed的错误哦!除此之外,我们还提前定义了一个对焦框(测光框)的大小并且接受一个参数(第三个参数coefficient)作为百汾比进行调节。

至此完成了触摸对焦的功能

但是,可以发现MTCamera里还有很大部分代码主要是两个函数setFocusMode和setFlashMode。这两个函数主要是因为在项目Φ我的图像经常是模糊的,但不知道系统支持那么对焦模式这时,就可以使用这两个函数进行测试这还需要在MainActivity中添加菜单栏的代码,鉯便进行选择代码如下:

这样运行后,点击菜单就可以看见有三个菜篮列表:Focus(对焦模式)Flash(视频模式),Resolution(支持的分辨率)对焦模式和视频模式中提供了几种常见的模式供选择,代码会判断当前设备是否支持该模式而分辨率菜单栏会显示出当前设备支持的所有分辨率种类。

本篇将重点介绍使用Camera2 API进行手动对焦的设置以及在手动对焦与摄像头自动对焦好还是手动好模式之间切换。

首先我们要实现点击preview区域进行手动对焦这通过对TextureView注册touch事件实現。

我要回帖

更多关于 摄像头自动对焦好还是手动好 的文章

 

随机推荐