[swift] Core Image를 사용하여 이미지 가장자리 검출하는 방법은?
먼저 이미지를 로드하고, CIContext 및 CIFilter를 사용하여 가장자리를 검출하는 것이 일반적인 절차입니다.
아래는 Core Image를 사용하여 이미지 가장자리를 검출하는 예제 코드입니다.
import UIKit
import CoreImage
func detectEdges(in image: UIImage) -> UIImage? {
// 1. 이미지를 CIImage로 변환합니다.
guard let ciImage = CIImage(image: image) else { return nil }
// 2. CIContext를 생성합니다.
let context = CIContext()
// 3. CIFilter를 사용하여 가장자리를 검출합니다.
if let edgeFilter = CIFilter(name: "CIEdges") {
edgeFilter.setValue(ciImage, forKey: kCIInputImageKey)
if let edgeOutput = edgeFilter.outputImage {
// 4. CIContext를 사용하여 결과를 이미지로 변환합니다.
if let cgImage = context.createCGImage(edgeOutput, from: edgeOutput.extent) {
let resultImage = UIImage(cgImage: cgImage)
return resultImage
}
}
}
return nil
}
이 코드는 UIImage를 입력으로 받아 가장자리가 검출된 새로운 UIImage를 반환합니다. 이를 실행하면 가장자리가 검출된 이미지를 확인할 수 있습니다.
참고 자료:
- Core Image - Apple Developer Documentation
- CIContext - Apple Developer Documentation
- CIFilter - Apple Developer Documentation
위 코드와 설명을 통해 Core Image를 활용하여 이미지의 가장자리를 검출하는 방법에 대해 이해할 수 있을 것입니다.