Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to crop detected rectangle in Image with CIDetector and Swift

I am working on an app that detect id cards and i am trying to use CIDetector built in ios to detect rectangle shape objects on live preview. i am using the solution explained in this tutorial here CoreImage Detectors

i am getting the flowing result image

My question : is there a way to extract and crop the detected rectangle ?

like image 659
Ayoub Avatar asked Mar 24 '16 09:03

Ayoub


1 Answers

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
}
like image 160
Henry P. Avatar answered Oct 04 '22 21:10

Henry P.