Доступ к изображениям из "Все фото" - PullRequest
0 голосов
/ 16 июня 2020

Как я могу передать все изображения из альбома «Все фотографии» в мою функцию?

Я хочу получить все изображения из фотогалереи, передать их в функцию обнаружения, которая классифицирует фотографию в одном из двух предопределенных классов.

Впоследствии я хочу создать два новых альбома классов и сохранить предсказанные результаты в уважаемом альбоме классов

func detect(image: CIImage) 
  {
    // Load the ML model through its generated class
    guard let model = try? VNCoreMLModel(for: ScreenshotClassifier_3().model) else {
        fatalError("can't load ML model")
    }
    print(model)
    let request = VNCoreMLRequest(model: model) { request, error in
        guard let results = request.results as? [VNClassificationObservation],
            let topResult = results.first
            else {
                fatalError("unexpected result type from VNCoreMLRequest")
        }

        if topResult.identifier.contains("Whatsapp") {
            DispatchQueue.main.async {
                self.navigationItem.title = "Whatsapp!"
                self.navigationController?.navigationBar.barTintColor = UIColor.green
                self.navigationController?.navigationBar.isTranslucent = false
            }
        }
        else {
            DispatchQueue.main.async {
                self.navigationItem.title = "LinkedIn!"
                self.navigationController?.navigationBar.barTintColor = UIColor.red
                self.navigationController?.navigationBar.isTranslucent = false
            }
        }
    }

    let handler = VNImageRequestHandler(ciImage: image)

    do {
        try handler.perform([request])
    }
    catch {
        print(error)
    }
}

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

    if let image = info[.originalImage] as? UIImage {

        imageView.image = image
        imagePicker.dismiss(animated: true, completion: nil)
        guard let ciImage = CIImage(image: image) else {
            fatalError("couldn't convert uiimage to CIImage")
        }
        detect(image: ciImage)
    }
}


@IBAction func cameraTapped(_ sender: Any) {

    imagePicker.sourceType = .photoLibrary
    imagePicker.allowsEditing = false
    present(imagePicker, animated: true, completion: nil)
}

}

...