を使用してカメラから画像を取得していAVCaptureVideoDataOutput
ます。私は自分のcaptureOutputでpixelBufferを調べます:
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection {
CVImageBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
pixelBuffer に必要なものが見つかったら、後で画像処理するためにこの画像を保存します。
3 つのオプションが表示されますが、どれを使用するのが最適かを考えています。
- 保存
sampleBuffer
またはコピーできます - 保存
pixelBuffer
またはコピーできます CGImage
fromを作成しpixelBuffer
て保存し、後で画像処理が必要になったときに、CGBitmapContextGetData()
操作するビットマップを取得するために使用できます。ここには、不要なコピーがたくさんあるようです。
後で処理するためにビットマップを保存するための推奨される方法はどれですか? ビットマップを数分以上保存する必要はありません。つまり、ファイル システムに保存する必要はありません。答えが 1 または 2 の場合、バッファをそのまま保持できますか、それとも and を実行してコピーする必要がmalloc
ありmemcpy
ますか?