2016-09-18 19 views
5

私はAVFoundationを使ってテキストを認識し、OCRを実行しています。オートフォーカスを追加するには?ユーザーが画面をタップすると、黄色の四角形が表示されないようにするために、私はそのオブジェクトに自動的にフォーカスを合わせたいとします。例えば、クレジットカードです。AVCaptureSessionにオートフォーカスを追加するには? SWIFT

ここに私のセッションコードがあります。私6Sで

func setupSession() { 
    session = AVCaptureSession() 
    session.sessionPreset = AVCaptureSessionPresetHigh 

    let camera = AVCaptureDevice 
    .defaultDeviceWithMediaType(AVMediaTypeVideo) 

    do { input = try AVCaptureDeviceInput(device: camera) } catch { return } 

    output = AVCaptureStillImageOutput() 
    output.outputSettings = [ AVVideoCodecKey: AVVideoCodecJPEG ] 

    guard session.canAddInput(input) 
    && session.canAddOutput(output) else { return } 

    session.addInput(input) 
    session.addOutput(output) 

    previewLayer = AVCaptureVideoPreviewLayer(session: session) 

    previewLayer!.videoGravity = AVLayerVideoGravityResizeAspect 
    previewLayer!.connection?.videoOrientation = .Portrait 

    view.layer.addSublayer(previewLayer!) 

    session.startRunning() 

} 

答えて

7

は、デフォルトのカメラのフォーカスモードは、連続的ビジョンのカメラのフィールドのほとんどを取っているものは何でもに焦点を当てて.ContinuousAutoFocus、です。それがあなたの望むものなのです。

お使いのカメラがそうのようなオートフォーカスをサポートしているかどうかをチェックすることができます:

camera.isFocusModeSupported(.ContinuousAutoFocus) 

、それがすでに設定されていない場合は、そのように設定します。ここでは

try! camera.lockForConfiguration() 
camera.focusMode = .ContinuousAutoFocus 
camera.unlockForConfiguration() 
3

は私がやったことです:

//get instance of phone camera 
let captureDevice = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) 
//try to enable auto focus 
if(captureDevice!.isFocusModeSupported(.continuousAutoFocus)) { 
    try! captureDevice!.lockForConfiguration() 
    captureDevice!.focusMode = .continuousAutoFocus 
    captureDevice!.unlockForConfiguration() 
} 
関連する問題