2017-09-25 16 views
1

컬러 이미지를 스캔 한 이미지에 적용하고 싶습니다. 2 아래 그림처럼스캔 한 이미지처럼 컬러 이미지를 조정하는 방법

는 첫번째 이미지는 원본 이미지이고, 둘째 이미지가 조정 화상이며, 효과 제 이미지처럼 만일, 페이지를 다시 텍스트는 사라 :

첫번째 이미지 :

original image

번째 이미지 :

effected image

CoreImage와 CIFilter를 사용하고 싶습니다. 대비와 밝기 외에. 나는 포토샵과 같은 수준으로 조정해야한다고 생각합니다. 하지만 어떻게 조정할 수 있습니까? 또는 다른 방법?

enter image description here

하지만 난 어떻게 해야할지하지 않습니다

내가 포토샵에서이를 조정하기 위해 노력했다,이 효과에 도달 할 수 포토샵의 레벨 함수가 값이 아래의 그림을 보여줍니다 사용이 보인다 이 CIFilter 또는 다른 방법을 사용합니까? 제 3 부분 프레임 워크 또는 소스를 가져 오지 않습니다. iOS 11 Notes APP가이 효과에 도달 할 수 있기 때문에 시스템의 방법과 프레임 워크가이를 수행 할 수 있다고 생각합니다.

+0

무엇을 시도 했습니까? 그랬을 때 무슨 일이 있었 니? – matt

+0

질문에 몇 가지 설명을 추가했습니다. @ matt – Tolecen

답변

1

아래 코드를 시도하십시오.

func getScannedImage(inputImage: UIImage) -> UIImage? { 

    let openGLContext = EAGLContext(api: .openGLES2) 
    let context = CIContext(eaglContext: openGLContext!) 

    let filter = CIFilter(name: "CIColorControls") 
    let coreImage = CIImage(image: filterImage.image!) 

    filter?.setValue(coreImage, forKey: kCIInputImageKey) 
    //Key value are changable according to your need. 
    filter?.setValue(7, forKey: kCIInputContrastKey) 
    filter?.setValue(1, forKey: kCIInputSaturationKey) 
    filter?.setValue(1.2, forKey: kCIInputBrightnessKey) 

    if let outputImage = filter?.value(forKey: kCIOutputImageKey) as? CIImage { 
    let output = context.createCGImage(outputImage, from: outputImage.extent) 
     return UIImage(cgImage: output!) 
    }  
    return nil 
} 

위의 func을 아래와 같이 호출 할 수 있습니다.

filterImage.image = getImage(inputImage: filterImage.image!) 

출력 : (실제 장치에서 출력) Core Image Filter 링크 및 답변 아래 시도에 대한 자세한 이해를 돕기 위하여

enter image description here


. 애플 문서에서

Get UIImage from functionConvert UIImage to grayscale keeping image quality

코어 이미지 필터 참조 : https://developer.apple.com/library/content/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html

참고 :보다 구체적인 요구를 들어 당신은 사용자 정의 필터를 만들어야합니다. 다음 링크는 도움이됩니다 https://spin.atomicobject.com/2016/10/20/ios-image-filters-in-swift/


+0

대단히 감사합니다. 시험해 보겠습니다. – Tolecen

+0

코드가 작동하는지 확인하고 대답을 수락하는지 확인하십시오. – Joe

+0

코드를 보내 주셔서 감사합니다.이 그림에서 작동하므로이 대답을 수락합니다. 그러나 다른 그림을 사용하면 잘 작동하지 않을 수 있습니다. 나는 이런 종류의 그림 대부분을 위해 작동 할 수 있도록 일반적인 솔루션을 개발하기 위해 노력하고 있습니다. 자동 스캔 한 그림을 만듭니다. 그래서 만약 당신이 적절한 해결책을 가지고, 제발 나를 도와주세요. 매우 감사합니다. – Tolecen

0

나는 포토샵과 같은 레벨 조정 기능을 수동으로 구현하기 위해 이미지 프로세싱 분야에 대한 핵심 지식을 이해해야한다.

당신은 시작 지점으로이 Core Image Programming Guide 읽을 수 있습니다 : 당신은 이미 그 돈을 언급 한하지만 당신은 단순히, 타사 프레임 워크를 사용하여 끝낼 수,

https://developer.apple.com/library/content/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_intro/ci_intro.html

또는 타사 라이브러리를 사용하고 싶지 않습니다. 이 경우, 나는 단지의 경우에 GPUImage2, 을 추천하고 싶습니다

https://github.com/BradLarson/GPUImage2

을 마지막으로, 나는 그래서 당신이보고 싶을 수도 있습니다 비슷한 질문을 발견 :

How can I map Photoshop's level adjustment to a Core Image filter?

행운을 빈다.