| 간략한 설명 | |
|---|---|
|
파일:
\examples\Processing\HDR_ImageComposition\HighDynamicRange\HDR_CRC_Bayer.vad |
|
|
기본 플랫폼: mE5-MA-VCL, imaFlex CXP-12 Quad |
|
|
간단한 설명 Debevec와 Malik에 따른 HDR 알고리즘 및 Reinhard 외 연구진과 Fattal 외 연구진에 따른 LDR 알고리즘. |
|
High Dynamic Range(HDR) 이미지는 넓은 범위의 명도를 재현합니다. 따라서 매우 어두운 디테일과 매우 밝은 디테일이 하나의 이미지에 결합됩니다. 대부분의 사진 기법에서는 단 한 번의 Exposure Time으로 이처럼 넓은 범위의 명도를 구현하는 것이 불가능합니다. 따라서 HDR 이미지는 서로 다른 Exposure Time으로 촬영한 이미지들을 결합하여 생성됩니다. 대부분의 디스플레이에서는 HDR 이미지를 직접 표시할 수 없습니다. 그러므로 HDR 이미지를 표시하려면 Low Dynamic Range(LDR) 이미지에 맞추어 밝기 대비를 비례 축소해야 합니다. 이러한 과정을 톤 매핑(Tone Mapping)이라고도 합니다. 이 VisualApplets 예제에서는 Debevec와 Malik[Deb97]의 HDR 알고리즘이 구현되어 있습니다. LDR 알고리즘은 Reinhard[Rei02] 및 Fattal[Fat02]을 따릅니다. 아래에서는 두 알고리즘에 대해 간단히 설명합니다.
픽셀 값
픽셀 좌표가
및
인 이미지 i에서의 값은 조도 값
및
Exposure Time
:
다음과 같이 정의할 때
다음이 성립합니다:
여기서 우리는
을(를) 응답 곡선(Response Curve)이라고 부릅니다.
이는 Exposure Time
에 대한 픽셀 값
을(를) 장면 조도와 연결하며
.
은(는) 모든 픽셀에 대해 일정하다고 가정합니다.
알고 있는 경우,
및
,
은(는) 특이값 분해(Singular Value Decomposition) 방법을 사용하여 계산할 수 있습니다 [Deb97].
이제 다음 표현식을 사용하여 HDR 이미지를 생성할 수 있습니다 [Deb97]:
여기서
은(는) 결과 HDR 이미지의 x,y 픽셀에서의 로그 조도 값(밑
)입니다. 컬러 이미지의 경우
은(는) 빨강, 초록, 파랑 값이며
(
,
및
).
즉, Equation 34 은(는) 빨간색, 초록색, 파란색 값에 대해 각각 개별적으로 계산되어야 합니다.
은(는) 노출 횟수입니다.
여기서 Equation 34
은(는) 가중치 함수입니다:
HDR 이미지를 표시하려면 밝기 대비를 줄여야 합니다. Reinhard 외 [Rei02]에 따르면 LDR 휘도
는 다음과 같이 계산할 수 있습니다:
여기서
은(는) 스케일링된 HDR 휘도입니다:
파라미터는
은(는) 표시되는 LDR 이미지의 밝기를 조절합니다.
일반적인 값은 0.09에서 0.72 사이입니다 [Rei02]. 이른바 상대적 "world" 휘도
는 HDR 색상으로부터 다음과 같이 계산됩니다:
,
및
:
평균값
은(는) 이 예제에서 다음과 같이 계산됩니다:
Fattal 외 [Fat02]에 따르면 LDR 색상 성분
,
및
은(는) 이제 다음과 같이 재구성될 수 있습니다:
LDR 이미지 값은
디스플레이 출력을 위한 그레이스케일 이미지의 경우 다음과 같이 계산할 수 있습니다.
여기서
다음 항목에 따른 HDR 처리 결과입니다. Equation 34.
출력 이미지의 밝기를 조절하는 데 사용할 수 있는 매개변수 상수입니다.
매우 어두운 객체와 매우 밝은 객체가 포함된 매우 넓은 조도 범위의 장면을 촬영하기 위한 HDR/LDR 알고리즘은 VisualApplets에서 그레이스케일("HDR_CRC_Gray.vad"), 베이어("HDR_CRC_Bayer.vad") 및 컬러("HDR_CRC_Color.vad") 카메라 이미지용으로 구현되어 있습니다. 모든 장면의 객체가 적절하게 표시되는 이미지가 PC로 전송됩니다. 디자인 "HDR_CRC_Bayer.vad"의 기본 구조는 그림 347에 나와 있습니다. 모든 예시는 동일한 원리를 따릅니다. 베이어 패턴 로우 이미지의 경우, 모든 이미지 픽셀에 대한 빨간색, 초록색, 파란색 값이 Bayer HierarchicalBox 내에서 Bayer5x5Linear 오퍼레이터를 사용하여 계산됩니다. 이 박스는 "HDR_CRC_Bayer.vad" 예시의 유일한 콘텐츠입니다. ImageSequence 박스에서는 3개의 이미지 시퀀스가 버퍼링됩니다. 3개의 이미지는 HDR-LDR 처리를 위해 서로 다른 3개의 Exposure Time을 가져야 합니다. Exposure Time은 이미지 시퀀스의 이미지 중 적어도 하나에서는 모든 이미지 픽셀이 과소 노출이나 과다 노출되지 않도록 선택해야 합니다. 이 시간은 HierarchicalBox Trigger 내의 SignalWidth width1 ~ width3 오퍼레이터를 사용하여 설정할 수 있습니다(그림 348 참조). 시간 단위는 8 ns의 시스템 클럭 틱임을 유의하십시오. Generate-Period 오퍼레이터는 SignalWidth width1 ~ width3 오퍼레이터의 가장 긴 시간보다 큰 값으로 설정해야 합니다. 또한 카메라 매뉴얼에서 Generate-Period 오퍼레이터의 최소 주기 길이를 참조하십시오. 3개의 이미지는 앞서 설명한 Debevec 및 Malik[Deb97]에 따른 HDR 알고리즘을 사용하여 결합됩니다. 이는 HierarchicalBox HDR(그림 347)에 구현되어 있습니다. 그레이스케일, 베이어 및 컬러 이미지에 대한 구현 방식은 동일합니다. LDR 알고리즘은 LDR에 구현되어 있습니다. 컬러/베이어 이미지와 그레이스케일 이미지에 대한 구현은 서로 다릅니다(섹션 및 참조). 결과 RGB 이미지의 색상은 HierarchicalBox OutputToPC에서 병합됩니다. 이 박스는 "HDR_CRC_Gray.vad" 예시에는 존재하지 않습니다. SourceSelector 오퍼레이터를 사용하면 처리된 HDR-LDR 이미지 또는 (베이어 디모자이킹된) 카메라 이미지 중 하나를 DMA 전송하도록 선택할 수 있습니다.
그림 349 에서 다음 HierarchicalBox의 내용을 확인할 수 있습니다. HDR. 버퍼링된 이미지 시퀀스의 3개 이미지에 대해, 첫 번째 이미지부터 세 번째 이미지까지의
분자 및 분모의 항이
의 멤버 Equation 34 빨간색, 초록색, 파란색 색상별로 각각 계산됩니다(HierarchicalBox Image1 (으)로 Image3).
그림 350 에서 이미지 1의 빨간색 색상에 대한 이 계산을 확인할 수 있습니다(다음 HierarchicalBox 내: Red
박스 내 Image1)을 예로 듭니다. 모든 이미지의 모든 색상은 동일한 방식으로 처리됩니다. 카메라 응답 곡선(CRC)의 로그 값은 HierarchicalBox 내의 룩업 테이블을 사용하여 (빨강/초록/파랑) 픽셀 값에 할당됩니다. over127 픽셀 값이 127보다 높거나 박스 내에 있는 경우
underequal127 픽셀 값이 127 이하인 경우. 이러한 룩업 테이블의 콘텐츠는 gO127 및 g_ueq_127 빨강, 초록, 파랑 색상의 경우 Debevec와 Malik의 코드를 기반으로 한 Matlab 프로그램 모듈 "HDR_CRC.m", "sample.m", "gsolve.m"(\examples\Processing\Advanced\HighDynamicRange\ 아래)을 사용하여 계산할 수 있으며,Deb97], 부분적으로는 M. Eitz의 예제[Eit07]를 기반으로 합니다. 코드 사용 방법에 대한 자세한 지침은 "HDR_CRC.m"의 짧은 매뉴얼을 참조하십시오. 다음을 사용하여 CONST operator LNdt1
(그리고 유사하게 LNdt2 및 LNdt3 (이미지 2 및 3의 경우)) 노출 시간의 로그(밑: e) 값을 설정할 수 있습니다. 이 값은 16개의 소수부 비트로 인해
를 곱해야 합니다. 해당 시간 기준(Time Base)은 파라미터인 LNTimeBase를 통해 선택할 수 있습니다. 값은
,
또는
시간 단위를 초, 밀리초 또는 마이크로초로 설정합니다. 룩업 테이블에서 weight 그림 350 의 가중치 함수 Equation 35
가 구현되어 있습니다. Matlab 프로그램 모듈인 "HDR_CRC.m", "sample.m", "Weight.m"을 사용하여 가중치 테이블 "Weights.txt"를 생성할 수 있습니다.
자세한 지침은 "HDR_CRC.m"
(또는 그레이스케일 이미지의 경우 "HDR_CRC_Gray.m")의 간편 설명서를 참조하십시오. HierarchicalBox의 최종 출력 Red (그리고 유사하게 초록색 및
Blue) 상자 내부 Image1 (그리고 유사하게 Image2 및 Image3)은 다음 작업이 수행됩니다
및
.
그림으로 돌아가서 349 상자의 내용으로서 HDR.
HDR 색상 컴포넌트의 로그 값 계산은
,
및
다음을 따릅니다
Equation 34 상자에서 수행됩니다 Red, 초록색 및 Blue. 분자
및
분모의
값에 대한 모든 컴포넌트의 합산과 최종 나눗셈이 여기서 구현됩니다
(예: 그림의 351 빨간색 참조).
상자 Lw 그림 349 에는 로그 값으로부터의
,
및
HDR 색상 값 계산이 포함됩니다.
지수 함수는 룩업 테이블로 구현됩니다. 상대적 "world" 휘도 "Lw"는 다음과 같이 HDR 색상 컴포넌트로부터 계산됩니다 Equation 38.
에 따른 그 평균값은 식 39 는 상자 내에서 계산됩니다 Lw_d 모듈 내에서 LDR (기본 설계 구조는 그림 참조.
347). 의 전체 내용은 LDR 그림에 나와 있다. 352.
이 모듈 Ls 다음에 따라 스케일링된 휘도 계산이 포함되어 있습니다. 식 37 상대적인 “세계” 휘도의 비율과 그 평균값에
“밝기 매개변수”를 곱한 값 a. 이 매개변수 값을 변경하면 최종 처리된 이미지의 밝기를 조절할 수 있습니다. 이 매개변수에 대한
적절한 값은 VA 설계의 주석 상자에서 확인할 수 있으며, 더 자세한 내용이 궁금하신 경우 [Rei02]. LDR_휘도 다음에 따라
LDR 휘도를 계산합니다. 식 36. 이 값은 마지막으로
HierarchicalBox의 출력값과 곱해집니다. HDRColor
,
및
적색, 녹색, 청색 색상 성분 각각에 대해. 그 결과로 LDR의 적색, 녹색, 청색 색상 성분이 산출됩니다.
[Fat02] 처리된 출력 이미지의.
HierarchicalBox의 콘텐츠 LDR 그레이스케일 이미지에 대한 내용은 그림에 나와 있습니다. 353.
HierarchicalBox에서 Exp_Ln
은(는) 다음으로부터 계산됩니다.
해당 로그 값
HDR 처리 결과로 (Equation 34).
박스에서 SQRT 제곱근은 섹션의 알고리즘에 따라 추출됩니다. . 결과는 자기 자신으로 나뉩니다.
더하기
. 의 값
그리고 이를 통해 출력 이미지의 밝기를 연산자로 설정할 수 있습니다.
ShiftLeft_Brightness.











이전

