2016-03-24 4 views
4

Я работаю над приложением, которое обнаруживает идентификационные карты, и я пытаюсь использовать CIDetector, встроенный в ios, для обнаружения объектов прямоугольной формы в режиме предварительного просмотра. Я использую решение описано в данном руководстве здесь CoreImage DetectorsКак обрезать обнаруженный прямоугольник в изображении с помощью CIDetector и Swift

я получаю протекающий результат image

Мой вопрос: есть ли способ извлечь и обрезать обнаруженную прямоугольник?

ответ

5
func cropBusinessCardForPoints(image: CIImage, topLeft: CGPoint, topRight: CGPoint, bottomLeft: CGPoint, bottomRight: CGPoint) -> CIImage { 

    var businessCard: CIImage 
    businessCard = image.imageByApplyingFilter(
     "CIPerspectiveTransformWithExtent", 
     withInputParameters: [ 
      "inputExtent": CIVector(CGRect: image.extent), 
      "inputTopLeft": CIVector(CGPoint: topLeft), 
      "inputTopRight": CIVector(CGPoint: topRight), 
      "inputBottomLeft": CIVector(CGPoint: bottomLeft), 
      "inputBottomRight": CIVector(CGPoint: bottomRight)]) 
    businessCard = image.imageByCroppingToRect(businessCard.extent) 

    return businessCard 
} 
0

Swift 3, простое решение

пусть faceScanningArea = CGRect (х: 0, у 0, ширина: 50, высота: 50)

theFaceFrame.image = UIImage (cgImage (orginalImage .image? .cgImage) !. cropping (to: faceScanningArea)!)

 Смежные вопросы

  • Нет связанных вопросов^_^