当前位置:首页 » 安卓系统 » android摄像头对焦

android摄像头对焦

发布时间: 2022-08-22 17:03:12

⑴ 手机相机模糊怎么办

如果您使用的是华为手机,手机后置摄像头拍照模糊不清晰可能是因为镜头脏污、拍照对焦不正常、拍照抖动等问题导致,建议根据以下操作步骤排查:
1.请查看镜头是否有贴膜、脏污、遮挡物
如果使用了非手机盒子里面原装的保护壳,或者摄像头上及周围有贴膜。会影响摄像头透光性和对焦功能,容易出现拍照眩光、模糊、对焦不准、不能识别微距等异常。
请先去掉保护壳和贴膜,用干净的软布朝一个方向擦拭摄像头及周围,重启手机后再确认拍摄是否清晰。

2.请在对焦完成后再拍照
拍照(录像)时,可以点击屏幕进行对焦,如果预览界面从模糊到清晰,说明手机对焦功能是正常的。如果预览界面一直模糊,可能是手机对焦功能出现异常,建议提前备份好重要数据(微信/QQ等应用需单独备份),携带购机凭证前往华为客户服务中心检测。

3.请在拍照时保持手机稳定
拍摄时需要保持手机稳定。特别是超远距离拍照(录像)时,请使用合适的变焦倍数,变焦倍数越大,画面视角越小,拍摄主体更大,对环境抖动会更加敏感。如果是固定状态建议使用三脚架,运动状态可以搭配云台使用,都可以获得良好的稳定效果。在拍照设置中开启“定时拍照”,避免点击屏幕瞬间造成的抖动。也可以插上耳机,使用音量键控制拍摄。

4.请保持一定距离在拍摄近景时
超近距离拍照(录像)时,建议保持10厘米以上,再手动点击屏幕进行对焦后完成拍摄。使用超级微距功能,近距离可拍出更细节清晰的照片。
环境光线不充足模糊,拍照或录像时光线不足也可能导致成像效果模糊。建议拍照或录像时开启闪光灯或使用夜景模式。

5.请确认是否为夜景、超级夜景模式拍照模糊
相机中的部分模式需要一定的时间才能完成,如夜景、超级夜景模式,曝光时间较长,如果手机有抖动或被拍摄的对象有移动,会造成照片模糊,拍摄过程中请保证手机稳定(建议使用三脚架固定拍摄),待拍摄完成后再移动手机。

6.请确认是否为大光圈、人像模式拍照模糊
大光圈或人像模式会对画面背景进行虚化,因此感觉部分画面模糊,这个正常的虚化效果。如果不需要背景模糊效果,可切换至其他模式拍照。

7.请确认是否为隔着玻璃拍照模糊
隔着玻璃拍照时,激光对焦检测到玻璃存在,可能会对玻璃的位置进行对焦,由于玻璃比较近,相机自动切换到微距模式进行拍照。此现象为正常现象,可以放心使用。若识别到微距模式,建议关闭微距模式,在正常拍照模式下尝试手动对焦拍摄。

若尝试以上方法后仍未解决问题,请备份好重要数据(微信/QQ等应用需单独备份),携带购机凭证前往华为客户服务中心进行检测。

⑵ 为啥适配的安卓7.0以上的摄像头都无法对焦

手机/平板电脑相机无法对焦时,请操作:
1.将拍照模式更改为自动模式尝试。
2.摄像头是否离物体太远或太近(部分型号不支持微距拍摄),重新调整距离尝试。
3.重置相机参数尝试:相机-齿轮图标-恢复默认设置/重置。
4.若无效,更新手机系统版本(升级前请备份设备中数据)尝试。
5.若依然无法对焦,请备份手机中数据将机器恢复出厂设置尝试。
若问题依然存在,建议您携带上购机发票、包修卡和机器到当地的三星服务中心,由专业的工程师帮您检测。

⑶ 如何实现Android手机摄像头的自动对焦

m_objCamera = Camera.open();
Camera.Parameters objParam = m_objCamera.getParameters();
//设置对焦模式为持续对焦,(最好先判断一下手机是否有这个对焦模式,有些手机没有会报错的)
objParam.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
m_objCamera.setDisplayOrientation(90);
m_objCamera.setParameters(objParam);
m_objCamera.startPreview();

⑷ 如何实现android手机摄像头的的自动对焦

发现好多人都在解决一个问题那就是,如何实现android相机的自动对焦,而且是连续自动对焦的。当然直接调用系统相机就不用说了,那个很简单的。下面主要来看看如如何自己实现一个相机,并且实现自动连续对焦。
根据网上的资料有如下几种:
1 极端人物的做法: 使用一个定时器,设定定时时间,然后不间断的对焦。
2 极客人物的做法: 那就是利用驱动层实现,但是这个一般人还是算了吧
3 就个人而言: 观察系统的原生相机得知,这东东也没用定时器啊,貌似也不可能复杂到全用驱动来实现,即使底层用的是C 实现,但是理论上讲,google肯定会提供这个封装好东东。于是果断的去查阅 DOC 一看,发现果然有这个东东 : 代码如下

[java] view plainprint?
<strong><span style="font-size:18px">public class MainActivity extends Activity {

private SurfaceView surfaceView;
private SurfaceHolder surfaceHolder;
private boolean flag = false;
private String fileUrl="";
Camera camera;
Camera.Parameters parameters;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);


setContentView(R.layout.activity_main);
surfaceView = (SurfaceView) findViewById(R.id.surfaceView1);
Button button=(Button) findViewById(R.id.takepicture);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
surfaceHolder.setKeepScreenOn(true);
surfaceView.setFocusable(true);
surfaceView.setBackgroundColor(TRIM_MEMORY_BACKGROUND);
surfaceHolder.addCallback(new Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
camera.stopPreview();
camera.release();
camera=null;

}

@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
if(null==camera){
camera=Camera.open();
try {
camera.setPreviewDisplay(surfaceHolder);
initCamera();
camera.startPreview();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height){
//实现自动对焦
camera.autoFocus(new AutoFocusCallback() {
@Override
public void onAutoFocus(boolean success, Camera camera) {
if(success){
initCamera();//实现相机的参数初始化
camera.cancelAutoFocus();//只有加上了这一句,才会自动对焦。
}
}

});
}

});
}
//相机参数的初始化设置
private void initCamera()
{
parameters=camera.getParameters();
parameters.setPictureFormat(PixelFormat.JPEG);
//parameters.setPictureSize(surfaceView.getWidth(), surfaceView.getHeight()); // 部分定制手机,无法正常识别该方法。
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);//1连续对焦
setDispaly(parameters,camera);
camera.setParameters(parameters);
camera.startPreview();
camera.cancelAutoFocus();// 2如果要实现连续的自动对焦,这一句必须加上

}

//控制图像的正确显示方向
private void setDispaly(Camera.Parameters parameters,Camera camera)
{
if (Integer.parseInt(Build.VERSION.SDK) >= 8){
setDisplayOrientation(camera,90);
}
else{
parameters.setRotation(90);
}

}

//实现的图像的正确显示
private void setDisplayOrientation(Camera camera, int i) {
Method downPolymorphic;
try{
downPolymorphic=camera.getClass().getMethod("setDisplayOrientation", new Class[]{int.class});
if(downPolymorphic!=null) {
downPolymorphic.invoke(camera, new Object[]{i});
}
}
catch(Exception e){
Log.e("Came_e", "图像出错");
}
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);

return true;
}}</span></strong>

⑸ android 前置摄像头可以autofocus吗

android 前置摄像头可以autofocus方法:
第一:最常见的实现---利用按键或拍照前一次性自动聚焦在Activity里申明变量private
AutoFocusCallback myAutoFocusCallback = null;然后
自动聚焦变量回调

myAutoFocusCallback = new AutoFocusCallback()
{

public void onAutoFocus(boolean success, Camera
camera) {

// TODO Auto-generated method stub

if(success)//success表示对焦成功

{

Log.i(tag, "myAutoFocusCallback:
success...");

//myCamera.setOneShotPreviewCallback(null);

}

else

{

//未对焦成功

Log.i(tag, "myAutoFocusCallback: 失败了...");

}

}

};

在Camera.startPreview()之后,拍照Camera.takePicture()
之前调用myCamera.autoFocus(myAutoFocusCallback)。

第二:
通过TimerTask设置一个定时器来循环,每隔一定时间调用myCamera.autoFocus(myAutoFocusCallback)一次。结果是摄像头一直在自我聚焦,重复清晰--模糊----清晰---模糊的过程。

第三:通过Handler和Thread,开启一个线程进行自动聚焦。本质和第二种是一样的。后续我会写一个demo发上来。

第四:
通过监听传感器来触发autoFocus。常用的是角度传感器或加速度传感器,当监听的值超过一定阈值时触发。这也是国外程序员们常用的思路。

第五:设置聚焦方式为myParam.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
Continuous auto focus mode intended for video
recording. The camera continuously tries to focus. This is the best
choice for video recording because the focus changes smoothly .
Applications still can call takePicture(Camera.ShutterCallback,
Camera.PictureCallback,
Camera.PictureCallback) in this mode
but the subject may not be in focus. Auto focus starts when the
parameter is set.
Since API level 14, applications can
call autoFocus(AutoFocusCallback) in
this mode. The focus callback will immediately return with a
boolean that indicates whether the focus is sharp or not. The focus
position is locked after autoFocus call. If applications want to
resume the continuous focus, cancelAutoFocus must be called.
Restarting the preview will not resume the continuous autofocus. To
stop continuous focus, applications should change the focus mode to
other modes.
意思是在录像的时候调用这种聚焦方式好,在拍照情况下这种聚焦方式可能不成功。
设置之后myParam.set("rotation",
90);
这句话的设置不起作用。拍摄得到的照片和预览的方向是错90度的。需要得到Bitmap之后,利用Matrix自己旋转下。
旋转示例:mBitmap = BitmapFactory.decodeByteArray(data, 0,
data.length);//data是字节数据,将其解析成位图myCamera.stopPreview();isPreview = false;
设置FOCUS_MODE_CONTINUOUS_VIDEO)之后,myParam.set("rotation",
90)失效。图片竟然不能旋转了,故这里要旋转下
Matrix matrix = new Matrix();
matrix.postRotate((float)90.0);
Bitmap rotaBitmap = Bitmap.createBitmap(mBitmap,
0, 0, mBitmap.getWidth(), mBitmap.getHeight(), matrix,
false);
设置成FOCUS_MODE_CONTINUOUS_VIDEO之后,再调用Camera.autoFocus()会聚焦失败。

第六: 就是通过分析onPreviewFrame得到预览帧视频,分析亮度变化,来触Camera.autoFocus()。如果亮度变化,肯定是摄像头和被拍摄物体之间发生了相对运动,需要触发autoFocus()。某些手机里自带的
拍照软件可能就是采用这种方式。

⑹ android 自定义Camera触摸对焦在2.3怎么实现

不知道这样有没有帮到你...

public android.hardware.Camera camera;
private
SurfaceView sView;

protected void onCreate(Bundle savedInstanceState)
{
sView = (SurfaceView) findViewById(R.id.sView);

sView.setOnClickListener(new SurfaceView.OnClickListener() {

public void onClick(View v) {

camera.autoFocus(null);
}
});
}你可以试试

⑺ 在Android代码中如何知道摄像头是否支持自动对焦

看一下camera源码就知道了,你可以new cameradevice 然后调用getSupported****。

⑻ 如何实现Android手机摄像头的的自动对焦

m_objCamera = Camera.open();
Camera.Parameters objParam = m_objCamera.getParameters();
//设置对焦模式为持续对焦,(最好先判断一下手机是否有这个对焦模式,有些手机没有会报错的)
objParam.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
m_objCamera.setDisplayOrientation(90);
m_objCamera.setParameters(objParam);
m_objCamera.startPreview();

热点内容
加密文件编号 发布:2025-01-15 21:56:56 浏览:436
sql语句的或者 发布:2025-01-15 21:51:20 浏览:869
安卓版的车工计算是哪里出版的 发布:2025-01-15 21:47:29 浏览:405
我的世界电脑版进pe服务器 发布:2025-01-15 21:33:57 浏览:294
网页游戏吃什么配置 发布:2025-01-15 21:27:58 浏览:65
安卓怎么转移数据华为 发布:2025-01-15 21:03:02 浏览:141
软件打印反馈单脚本错误 发布:2025-01-15 21:01:24 浏览:178
如何进cs里的练枪服务器 发布:2025-01-15 21:00:07 浏览:979
苹果手机存储芯片 发布:2025-01-15 20:52:02 浏览:163
盲人读屏软件安卓哪个好 发布:2025-01-15 20:47:13 浏览:729