2017-05-28 14 views
0

私のアプリのデザインでは、ライブカメラのフィードの周りのフレームを、ライブカメラの真ん中のピクセルの正確な色に変更したいと思います。私のアプリの目的のために、これは重要であり、些細な配色ではありません。AVCaptureSessionまたはAVCaptureVideoPreviewLayerのピクセルカラーを取得

私はUIImageまたはUIViewのバイトを通過するコードを持っており、特定の座標のピクセルの色を見つけます。ただし、これはAVCaptureSessionまたはAVCaptureVideoPreviewLayerでは機能していないようです。

私が持っている最善の回避策は、バックグラウンドでキューを実行して、0.1秒ごとにオフスクリーンで保存されたイメージを描画し、そのようにピクセルの色を見つけることです。私はこれが最良の方法ではないことを知っています!誰かが役に立つリソースに向けることができるかどうか疑問に思っていました。

答えて

0

AVFoundationからカメラフレームを取得し、フレームイメージバッファを分析して色を知ることができます。

すでにAVCaptureVideoDataOutputの設定がある場合は、AVCaptureVideoDataOutputSampleBufferDelegateの方法を使用してカメラフレームを取得します。

optional func captureOutput(_ captureOutput: AVCaptureOutput!, 
     didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, 
         from connection: AVCaptureConnection!) 

このデリゲートは、画像バッファa.k.a CMSampleBufferのみを提供することに注意してください。したがって、このバッファをUIImageに変換し、あなたのケースでピクセルの色を見つける必要があります。

以下は、あなたに役立ついくつかの答えです。

関連する問題