捕捉的相机图像正在模糊 [英] Captured camera image is looking blurry

查看:114
本文介绍了捕捉的相机图像正在模糊的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题拍摄的图像在寻找我的应用程序,其中模糊作为与设备摄像头组件捕获的图像看起来不错 - 在拍摄按钮的东西自动变焦效果是怎么回事,一旦用户点击。可有一个人帮我实现这个场景如何和我应该在哪里申请

这里是code:

 公共无效surfaceChanged(SurfaceHolder架,INT格式,诠释的宽度,高度INT){
    //现在,尺寸是已知的,设置相机参数,并开始
    //将preVIEW。
    Camera.Parameters参数= camera.getParameters();
    版本整数=的Integer.parseInt(Build.VERSION.SDK);
    如果(版本> Build.VERSION_ codeS.ECLAIR_MR1)
    {
        Log.d(TAG,------>版本比2.1 eclari更大);
        清单<尺寸和GT;大小= parameters.getSupported previewSizes();
        大小optimalSize = getOptimal previewSize(尺寸,宽,高);
        parameters.set previewSize(optimalSize.width,optimalSize.height);
    }
    其他
    {
        Log.d(TAG,------>版本低于2.1 eclari);
        parameters.set previewSize(ApplicationInitiator.screenW,ApplicationInitiator.screenH);
    }    清单<串GT; focusModes = parameters.getSupportedFocusModes();
    如果(focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO))
    {
        parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
    }    parameters.setJpegQuality(100);
    camera.setParameters(参数);
    camera.start preVIEW();
}


解决方案

好了,你的文字你谈论捕获的图像,但我没有看到你的code任何事情拍照,无论如何,如果你想获得一个集中的照片,你必须做的是注册一个AutoFocusCallback拍照获得焦点时:

  Camera.AutoFocusCallback mAutoFocusCallback =新Camera.AutoFocusCallback(){
    @覆盖
    公共无效onAutoFocus(布尔成功,相机摄像头){
        camera.takePicture(NULL,NULL,mPictureCallbackRaw);
    }
};Camera.PictureCallback mPictureCallbackRaw =新Camera.PictureCallback(){
    公共无效onPictureTaken(字节[]数据,相机C){
        //(...)
    }
};公共无效takeFocusedPicture(){
    mCamera.autoFocus(mAutoFocusCallback);
}

My issue captured image is looking blurry in my application where as the image that is captured with the device camera component is looking good - something auto zoom effect is going once user click on capture button. can some one help me to achieve this scenario how and where should i apply.

here is the code:

public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {
    // Now that the size is known, set up the camera parameters and begin
    // the preview.
    Camera.Parameters parameters = camera.getParameters();
    Integer version = Integer.parseInt(Build.VERSION.SDK);
    if(version > Build.VERSION_CODES.ECLAIR_MR1)
    {
        Log.d(TAG, "------> version greater than eclari 2.1");
        List<Size> sizes = parameters.getSupportedPreviewSizes();
        Size optimalSize = getOptimalPreviewSize(sizes, width, height);
        parameters.setPreviewSize(optimalSize.width, optimalSize.height);
    }
    else
    {
        Log.d(TAG, "------> version less than eclari 2.1");
        parameters.setPreviewSize(ApplicationInitiator.screenW,ApplicationInitiator.screenH); 
    }

    List<String> focusModes = parameters.getSupportedFocusModes();
    if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO))
    {
        parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
    }

    parameters.setJpegQuality(100);
    camera.setParameters(parameters);
    camera.startPreview();
}

解决方案

Well, on your text you talk about capturing a image, but I don't see anything in your code about taking a picture, Anyway, if you want to obtain a focused photo, what you have to do is register a AutoFocusCallback to take a picture when focus is obtained:

Camera.AutoFocusCallback mAutoFocusCallback = new Camera.AutoFocusCallback() {
    @Override
    public void onAutoFocus(boolean success, Camera camera) {
        camera.takePicture(null, null, mPictureCallbackRaw);
    }
};

Camera.PictureCallback mPictureCallbackRaw = new Camera.PictureCallback() {  
    public void onPictureTaken(byte[] data, Camera c) { 
        // (...)            
    }  
};

public void takeFocusedPicture() {
    mCamera.autoFocus(mAutoFocusCallback);
}

.

这篇关于捕捉的相机图像正在模糊的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆