RectangleDetector.swift 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. //
  2. // RectangleDetector.swift
  3. // WeScan
  4. //
  5. // Created by Boris Emorine on 2/13/18.
  6. // Copyright © 2018 WeTransfer. All rights reserved.
  7. //
  8. import Foundation
  9. import AVFoundation
  10. /// Class used to detect rectangles from an image.
  11. struct RectangleDetector {
  12. /// Detects rectangles from the given image.
  13. ///
  14. /// - Parameters:
  15. /// - image: The image to detect rectangles on.
  16. /// - Returns: The biggest detected rectangle on the image.
  17. static func rectangle(forImage image: CIImage) -> CIRectangleFeature? {
  18. let rectangleDetector = CIDetector(ofType: CIDetectorTypeRectangle, context: CIContext(options: nil), options: [CIDetectorAccuracy: CIDetectorAccuracyHigh])
  19. guard let rectangleFeatures = rectangleDetector?.features(in: image) as? [CIRectangleFeature] else {
  20. return nil
  21. }
  22. guard let biggestRectangle = rectangleFeatures.biggest() else {
  23. return nil
  24. }
  25. return biggestRectangle
  26. }
  27. }