首页 > 解决方案 > Swift - 从实时摄像机中获取静止帧并将它们输入 Vision 框架

问题描述

注意:我对 Swift 几乎是全新的,所以如果这似乎是一个明显的答案,我深表歉意

我正在尝试编写一个应用程序来检测人们在做运动(想想跳千斤顶)并用它来控制一个简单的游戏。我设置了一个摄像头供稿并在屏幕上显示,但我不知道如何从中获取它可以分析的静止图像/帧。我的第二个问题是,即使我知道该怎么做,我也不知道如何将这些图像输入 Vision 框架来分析它们。这是我的代码:

class ViewController2: UIViewController{
    override func viewDidLoad() {
        super.viewDidLoad()
        labelchange()
        //If it says to put it in the viewDidLoad function put it under here
        self.addCameraInput()
        self.showCameraFeed()
        self.captureSession.startRunning()
       
    } //Do any additional setup after loading the view
    @IBOutlet var thingtext : UILabel!
    func labelchange() {

        if typeChosen == "ice" {
            thingtext.text = "You're doing " + exercise + " for an " + typeChosen + " attack!"
        }
        else {
            thingtext.text = "You're doing " + exercise + " for a " + typeChosen + " attack!"
        }
    }
    private let captureSession = AVCaptureSession()
    private func addCameraInput() {
        guard let device = AVCaptureDevice.DiscoverySession(
            deviceTypes: [.builtInWideAngleCamera, .builtInDualCamera, .builtInTrueDepthCamera],
                mediaType: .video,
    

            position: .front).devices.first else {
               fatalError("No back camera device found, please make sure to run SimpleLaneDetection in an iOS device and not a simulator")
        }
        let cameraInput = try! AVCaptureDeviceInput(device: device)
        self.captureSession.addInput(cameraInput)
    }
    
    private lazy var previewLayer = AVCaptureVideoPreviewLayer(session: self.captureSession)
    private func showCameraFeed() {
    self.previewLayer.videoGravity = .resizeAspectFill
        self.view.layer.addSublayer(self.previewLayer)
        self.previewLayer.frame = self.view.frame
    }
    
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        self.previewLayer.frame = self.view.frame

    }
    

}

如果有人可以帮助我,将不胜感激。

标签: iosswiftcomputer-vision

解决方案


推荐阅读