Skip to content

Instantly share code, notes, and snippets.

@niorad
Created January 1, 2019 15:55
Show Gist options
  • Save niorad/4819f2f37f5d0b07636531b22e9c0ad0 to your computer and use it in GitHub Desktop.
Save niorad/4819f2f37f5d0b07636531b22e9c0ad0 to your computer and use it in GitHub Desktop.
Swift Core Image Perspective Correction POC
import Cocoa
let context = CIContext()
let lidimg = NSImage(named: "lid")?.cgImage(forProposedRect: nil, context: nil, hints: nil)
let originalCIImage = CIImage(cgImage: lidimg!)
func perspFilter(_ input: CIImage) -> CIImage?
{
let persFilter = CIFilter(name:"CIPerspectiveCorrection")
persFilter!.setValue(input, forKey: "inputImage")
persFilter!.setValue(CIVector(x: 1000, y: 2000), forKey: "inputTopLeft")
persFilter!.setValue(CIVector(x: 3654, y: 2000), forKey: "inputTopRight")
persFilter!.setValue(CIVector(x: 700, y: 300), forKey: "inputBottomLeft")
persFilter!.setValue(CIVector(x: 4000, y: 250), forKey: "inputBottomRight")
return persFilter!.outputImage
}
let sepiaCIImage = perspFilter(originalCIImage)
var rep: NSCIImageRep = NSCIImageRep(ciImage: sepiaCIImage!)
var nsImage: NSImage = NSImage(size: rep.size)
nsImage.addRepresentation(rep)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment