| 간략한 설명 | |
|---|---|
|
파일:
\examples\Processing\HDR_ImageComposition\HighDynamicRange\HDR_CRC_Bayer.vad |
|
|
기본 플랫폼: mE5-MA-VCL, imaFlex CXP-12 Quad |
|
|
요약 설명 Debevec과 Malik이 제안한 HDR 알고리즘과 Reinhard 등 및 Fattal 등이 제안한 LDR 알고리즘. |
|
HDR(High Dynamic Range) 이미지는 넓은 명도 범위를 재현합니다. 따라서 매우 어두운 부분과 매우 밝은 부분의 디테일이 모두 하나의 이미지에 결합됩니다. 대부분의 사진 촬영 기법으로는 단 한 번의 노출 시간으로 이토록 넓은 명도 범위를 구현할 수 없습니다. 따라서 HDR 이미지는 서로 다른 노출 시간을 가진 이미지들을 조합하여 생성됩니다. HDR 이미지는 대부분의 디스플레이에서 직접 표시할 수 없습니다. 따라서 HDR 이미지를 표시하기 위해서는 밝기를 조정하여 저동적 범위(LDR) 이미지와 대비를 줄이는 과정이 필요합니다. 이 과정을 톤 매핑이라고도 합니다. 이 VisualApplet 예제에서는 Debevec과 Malik[Deb97]의 HDR 알고리즘이 구현되어 있습니다. LDR 알고리즘은Reinhard [Rei02]와Fattal [Fat02]의 방법을 따릅니다. 다음에서 두 알고리즘에 대해 간략히 설명하겠습니다.
픽셀 값
픽셀 좌표가 포함된 이미지 i에서
및
조도 값의 함수로 표현될 수 있다
그리고
노출 시간
:
우리가 다음을 정의할 때
다음과 같이 이어집니다:
여기서 우리는 다음을 호출합니다
응답 곡선.
이는 픽셀 값과
노출 시간
장면의 조도
.
모든 픽셀에 대해 일정하다고 가정합니다.
이를 알고
및
,
특이값 분해
방법을 사용하여 계산할 수 있습니다 [Deb97].
이제 다음 식을 사용하여 HDR 이미지를 생성할 수 있습니다 [Deb97]:
여기서
대수적 조도 값(기수
) 생성된 HDR 이미지의 x, y 픽셀 위치에서
. 컬러 이미지의 경우
빨강, 초록
및 파랑 값은
(
,
및
).
즉, 식 34 빨강, 초록, 파랑 값에 대해 각각 별도로 계산해야 합니다.
는 노출 횟수입니다.
에서 식 34
는 가중치 함수입니다:
HDR 이미지를 표시하려면 밝기 대비를 낮춰야 합니다. Reinhard 등 [Rei02] LDR 휘도
다음과 같이 계산할 수 있습니다:
여기서
다음은 스케일링된 HDR 휘도입니다:
함수에 전달되는
표시된 LDR 이미지의 밝기를 조정합니다.
일반적인 값은 0.09에서 0.72 사이입니다 [Rei02]. 소위 상대적 “세계” 휘도
HDR 색상을 바탕으로 계산됩니다:
,
및
:
평균값
이 예제에서는 다음과 같이 계산됩니다.
Fattal 등 [Fat02] LDR의 색상 성분
,
및
이제 다음과 같이 재구성할 수 있다.
LDR 이미지 값
디스플레이에 출력할 그레이스케일 이미지의 경우 다음과 같이 계산할 수 있습니다:
여기서
다음에 따른 HDR 처리의 결과입니다. 식 34.
이는 출력 이미지의 밝기를 조정하는 데 사용할 수 있는 매개변수 상수입니다.
매우 어두운 물체와 매우 밝은 물체가 혼재된, 명도 범위가 매우 넓은 장면을 촬영하기 위한 HDR/LDR 알고리즘이 VisualApplets 에 그레이스케일("HDR_CRC_Gray.vad"), 베이어("HDR_CRC_Bayer.vad") 및 컬러("HDR_CRC_Color.vad") 카메라 이미지에 대해 구현되었습니다. 이미지가 PC로 전송되며, 이 이미지에서는 장면 내의 모든 피사체가 올바르게 표시됩니다. "HDR_CRC_Bayer.vad" 설계의 기본 구조는 그림 347에 나와 있습니다. 모든 예제는 동일한 원리를 따릅니다. 베이어 패턴 원시 이미지의 경우, 각 이미지 픽셀에 대한 적색, 녹색 및 청색 값은 HierarchicalBox Bayer 를 사용하여 Bayer5x5Linear연산자를 사용하여 계산됩니다. 이 박스는 예제 “HDR_CRC_Bayer.vad”의 내용만을 포함합니다. 이 박스는 예제 “HDR_CRC_Bayer 연산자를 사용하여 계산됩니다. 이 박스는 “HDR_CRC_Bayer.vad” 예제의 유일한 구성 요소입니다. “ ImageSequence 상자에는 세 장의 이미지 시퀀스가 버퍼링됩니다. 이 세 장의 이미지는 HDR-LDR 처리를 위해 서로 다른 세 가지 노출 시간을 가져야 합니다. 노출 시간은 각 이미지 픽셀이 노출 시퀀스 중 적어도 한 장의 이미지에서 과다 노출되거나 노출 부족되지 않도록 선택해야 합니다. 이러한 시간은 SignalWidth width1 부터 width3 HierarchicalBox 내의 트리거 (그림 348 참조). 시간 척도는 8 ns 단위의 시스템 클럭 틱임을 유의하십시오. 연산자 Generate-Period 는 최소한 다음 연산자들의 가장 긴 시간보다 큰 값으로 설정되어야 합니다. 연산자들 SignalWidth width1 부터 width3까지입니다. 또한 연산자 Generate-Period 의 최소 주기 길이에 대해서도 카메라 설명서를 참조해 주십시오. 세 장의 이미지는 앞서 설명한 Debevec과 Malik [Deb97]의 HDR 알고리즘을 사용하여 합성됩니다. 이 알고리즘은 HierarchicalBox HDR (그림 347)에 구현되어 있습니다. 그레이스케일, 베이어 및 컬러 이미지의 경우 구현 방식은 동일합니다. LDR 알고리즘은 LDR에 구현되어 있습니다. 컬러/베이어 이미지와 그레이스케일 이미지에 대한 구현 방식은 서로 다릅니다( 및 절 참조). 결과 RGB 이미지의 색상은 HierarchicalBox OutputToPC에서 병합됩니다. 이 박스는 예제 "HDR_CRC_Gray.vad"에는 존재하지 않습니다. 연산자 SourceSelector 연산자는 처리된 HDR-LDR 이미지 또는 (베이어 디모자이징 처리된) 카메라 이미지 중 하나를 DMA 전송 대상으로 선택할 수 있게 해줍니다.
그림에서 349 HierarchicalBox의 내용을 확인할 수 있습니다 HDR. 버퍼링된
이미지 시퀀스의 세 장의 이미지에 대해, 분자의 가산항들은
그리고 분모
멤버는 식 34 은
이미지 1~3에 대해 계산됩니다 (HierarchicalBox 이미지1 에서 이미지3) 빨강, 초록, 파랑 색상에 대해 각각.
그림에서 350 HierarchicalBox 내의 이미지 1에 대해 빨간색에 대한 이 계산 과정을 확인할 수 있습니다. Red
상자 안에 이미지1)를 예로 들어보겠습니다. 모든 이미지의 모든 색상은 동일한 방식으로 처리됩니다. 카메라 응답 곡선
(CRC)의 로그 값은
HierarchicalBox 내의 조회 테이블을 통해 (적색/녹색/청색) 픽셀 값에 할당됩니다. 127 이상 픽셀 값이 127보다 크거나 상자 안에 있는 경우
underequal127 픽셀 값이 127 이하인 경우. 이 조회 테이블의 내용은 gO127 및 g_ueq_127 왜냐하면
빨강, 초록, 파랑 색상은 Matlab 프로그램 모듈인 "HDR_CRC.m", "sample.m" 및 "gsolve.m"(
\examples\Processing\Advanced\HighDynamicRange\)을 사용하여 계산할 수 있으며, 이 모듈들은
Debevec과 Malik의 코드를 기반으로 하고 있기 때문이다 [Deb97] 및 부분적으로는 M. Eitz의 사례를 바탕으로 [Eit07].
코드 사용 방법에 대한 자세한 안내는 “HDR_CRC.m” 파일에 포함된 간단한 설명서를 참고하시기 바랍니다.
다음을 사용하여 CONST 연산자 LNdt1
(그리고 아날로그 LNdt2 및 LNdt3 (그림 2 및 3의 경우)
노출 시간의 로그(기수: e) 값을 설정할 수 있습니다. 이 값에 다음을 곱해야 한다는 점에 유의하십시오.
16개의 분수 비트 때문입니다.
해당 시간 기준은 매개변수를 통해 선택할 수 있습니다. LNTimeBase. 의 값은
,
또는
시간 단위를 초, 밀리초 또는
마이크로초로 설정합니다. 조회 테이블에서 무게 에서 350 의 가중치 함수 식 35
구현되어 있습니다. Matlab 프로그램 모듈인 "HDR_CRC.m", "sample.m" 및 "Weight.m"을 사용하면 가중치 테이블 "Weights.txt"를
생성할 수 있습니다. 자세한 지침은 “HDR_CRC.m”
(또는 그레이스케일 이미지의 경우 “HDR_CRC_Gray.m”)에 포함된 간단한 설명서를 참조하십시오. HierarchicalBox의 최종 출력 결과는 Red (그리고 아날로그 Green 및
Blue) 상자 안에 이미지1 (그리고 아날로그 이미지2 및 이미지3)는 그 다음에
및
.
다시 그림으로 돌아가서. 349 상자 내용물로서 HDR.
HDR 색상 구성 요소의 로그값 계산
,
및
~에 따르면
식 34 상자 안에서 수행됩니다 Red, Green 및 Blue. 분자의 모든 성분에 대한 합계
그리고
분모
여기에서 값과 최종 나눗셈이 구현됩니다
(그림에서 빨간색 부분 참조) 351 (예를 들어).
상자 Lw 에서 349 HDR 색상 값의 계산 과정이 포함되어 있습니다
,
및
로그 값을 바탕으로.
지수 함수는 조회 테이블을 사용하여 구현됩니다. 그런 다음 상대적 “월드” 휘도 “Lw”는
HDR 색상 성분을 바탕으로 다음 공식에 따라 계산됩니다. 식 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 처리의 결과로 (식 34).
상자 안에는 SQRT 제곱근은 ~절에 제시된 알고리즘에 따라 구해집니다. . 그 결과를 그 자체에 더한 값으로 나눈다
그리고
. 의 값은
이를 통해 운영자가 출력 이미지의 밝기를 설정할 수 있습니다.
ShiftLeft_밝기.











이전

