2016-08-16 2 views
12

코어 이미지를 통해 HDR 이미지를 처리 ​​(필터링) 할 수 있습니까? 이것에 대한 많은 문서를 찾을 수 없었기 때문에 누군가가 대답을 할 수 있는지 궁금해하고있었습니다. CIContext을 초기화 할 때 RGBAh으로 작업 공간 계산을 수행 할 수 있다는 것을 알고 있으므로 부동 소수점 이미지 형식으로 계산을 수행 할 수 있다면 가능해야한다고 생각했습니다.Core Image를 통한 HDR 이미지?

불가능합니다. iOS에서 HDR 효과를 만들고 싶다면 대안이 있습니까?

편집 : 나는 조금 더 간결 해 지려고 노력했다. HDR 이미지는 픽셀 값을 클램핑하여 .jpg, .png 및 기타 이미지 형식으로 클램프되고 저장 될 수 있음을 이해합니다. 그러나 아직 변환되지 않은 HDR 이미지에서 코어 이미지를 통해 톤 매핑을 수행하는 데 관심이 있습니다. 문제는 .hdr 확장을 사용하여 CIImage를 HDR 이미지로 인코딩하는 것입니다.

EDIT2 CGDataProviderCreateWithFilename과 함께 CGImageCreate을 사용하면 유용할까요?

답변

3

HDR 작동 원리에 대한 기본적인 이해를 바랍니다. HDR 파일은 서로 다른 노출로 두 개 이상의 이미지를 캡처하고 결합하여 생성됩니다. 따라서 .HDR 파일과 같은 것이 있더라도 하나 이상의 jpg가있는 컨테이너 형식이됩니다. 전문적으로 두 이미지 파일을 일반 CIFilter에 대한 입력으로 동시에 제공 할 수는 없습니다.

그리고 iOS에서는 HDR의 원본 사진 세트에 액세스하는 것이 아니라 최종 출력물을 처리하는 것을 기억합니다. 가능한 경우라도 CIFilter에 제공하기 전에 HDR 프로세스를 수동으로 수행하고 단일 HDR png/jpg를 생성해야합니다.

+0

한 번 결합해도 결과 파일을 픽셀 정보를 제공하는 데 사용할 수 없습니까? 아마도 우리는 외부에서 이와 같은 파일을 가지고있을 것입니다. 따라서 .hdr 확장자는 톤 매핑을위한 샘플 MATLAB 코드에서 사용되었습니다.이 파일을 단순히 제공하고 결과 이미지를 CIImage로 인코딩 할 수 없습니까? HDR 이미지에서 톤 매핑을 수행하는 것이 Core Image의 목적이 아닌 것일 수 있습니까? 그러나 기술적으로는 사용자 지정 필터를 사용하여 가능합니다. –

+0

@DavidSacco 첫 번째 문제는 iOS에서 노출이 다른 원래 캡처 된 이미지 배열에 액세스 할 수 없다는 것입니다. 그리고 일단 최종 HDR이 처리되면 소스 파일의 픽셀 정보를 보유하지 못합니다. 기술적으로는 3 개의 RGB 채널에 이러한 데이터를 저장할 수 없기 때문입니다. iOS에서 "HDR"이라는 레이블이 붙은 이미지는 이미 JPEG가 아닌 다른 노출로 여러 사진을 사용하여 이미 처리되었습니다. – sleepwalkerfx

+0

고마워, 그래, 내 자신의 google - fu에서 이것은 또한 내가 배운 것입니다. .RAW 이미지와 관련된 새로운 iOS 10 요소가 도움이 될지 궁금합니다. 사실, HDR 이미지를 부동 소수점에 저장할 수 있다는 것도 알게되었습니다.고강도가 보존 될 수있는 TIFF 파일의 경우 톤 매핑을 사용하려면 사용자가 상기 이미지를 제공해야합니다. 여러분의 컨텍스트가'kCIContextWorkingFormat' 옵션으로 부동 소수점 정밀도로 계산되도록하는 것이 더 가능합니다. –

1

CI HDR 알고리즘을 요구하는 사람들이 있기 때문에 github에서 코드를 공유하기로 결정했습니다. 그것은 로버트슨 HDR 알고리즘

https://github.com/schulz0r/CoreImage-HDR

, 그래서 당신은 RAW 이미지를 사용할 수 없습니다를 참조하십시오. 카메라 응답을 얻고 hdr 이미지를 얻는 방법을 알고 싶다면 단위 테스트를보십시오. CoreImage는 픽셀 값을 [0.0 ... 1.0] 외부에서 포화 시키므로 HDR은 상기 간격으로 조정됩니다. 금속으로 코드를 작성하면 항상 지저분한 코드가 발생하므로 프로젝트에 포함해야하는 MetalKitPlus를 사용하기로 결정했습니다. 당신은 여기에서 찾을 수 있습니다

https://github.com/LRH539/MetalKitPlus

난 당신이 dev에/V2.0.0 지점을 확인해야한다 생각합니다. 나는이 것을 앞으로 주인으로 합병 할 것이다.

관련 문제