Как я могу преобразовать вход камеры (cvPixelBuffer) в UImage? - PullRequest
0 голосов
/ 07 апреля 2020

Проблема

Я пытаюсь преобразовать входной видеосигнал из iphone в UIImage, однако он выглядит полностью белым.

Дополнительная информация

В приведенном ниже коде я удалил все ненужные коды, поэтому может показаться немного странным.

версия xcode 11.4

Код

class ViewController: UIViewController {
    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var previewView: UIView!

    private var videoCapture: VideoCapture!

    var currentCameraType: CameraType = .front(true)
    private let serialQueue = DispatchQueue(label: "")

    private var videoImage: CIImage?
    override func viewDidLoad() {
        super.viewDidLoad()

        videoCapture = VideoCapture(cameraType: currentCameraType,
                                    preferredSpec: nil,
                                    previewContainer: previewView.layer)

        videoCapture.syncedDataBufferHandler = { [weak self] videoPixelBuffer, depthData, face in
            guard let self = self else { return }

            self.videoImage = CIImage(cvPixelBuffer: videoPixelBuffer)

            DispatchQueue.main.sync {

                let image = self.previewView.getCaptureImageFromView() // using the function
                self.imageView.image = image //appears to be white, should be video Image

            }
        }
        videoCapture.setDepthFilterEnabled(filterSwitch.isOn)
    }

extension UIView {

func getCaptureImageFromView() -> UIImage? {

        let contextSize = self.frame.size

        UIGraphicsBeginImageContextWithOptions(contextSize, false, 0.0)      
        self.drawHierarchy(in: self.bounds, afterScreenUpdates: false)
        let captureImage = UIGraphicsGetImageFromCurrentImageContext()        
        UIGraphicsEndImageContext()                                         

        return captureImage

    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...