이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

저조도 영상 향상하기

실외 장면에서 촬영한 영상은 부실한 조명 조건 때문에 품질이 크게 저하될 수 있습니다. 이러한 영상은 동적 범위가 낮고 잡음 수준이 높아 컴퓨터 비전 알고리즘의 전반적인 성능에 영향을 줄 수 있습니다. 컴퓨터 비전 알고리즘이 저조도 조건에서도 제대로 작동하게 하려면 저조도 영상 향상 기능을 사용하여 영상의 가시성을 높이십시오. 저조도 영상 또는 HDR 영상의 픽셀별 반전 히스토그램은 연무가 있는 영상의 히스토그램과 매우 비슷합니다. 따라서 저조도 영상을 향상하는 데 연무 제거 기법을 사용할 수 있습니다.

연무 제거 기법을 사용하여 저조도 영상을 향상하는 과정은 다음 3단계로 구성됩니다.

  • 1단계: 저조도 영상을 반전합니다.

  • 2단계: 반전된 저조도 영상에 연무 제거 알고리즘을 적용합니다.

  • 3단계: 향상된 영상을 반전합니다.

연무 제거 알고리즘을 사용하여 저조도 영상 향상하기

낮은 조도에서 촬영한 RGB 영상을 가져옵니다.

A = imread('lowlight_11.jpg');
figure, imshow(A);

영상을 반전하고, 원본 영상의 저조도 영역이 어떻게 흐리게 나타나는지 확인합니다.

AInv = imcomplement(A);
figure, imshow(AInv);

imreducehaze 함수를 사용하여 연무를 제거합니다.

BInv = imreducehaze(AInv);
figure, imshow(BInv);

그 결과를 반전하여 향상된 영상을 얻습니다.

B = imcomplement(BInv);

원본 영상과 향상된 영상을 나란히 표시합니다.

figure, montage({A, B});

imreducehaze 선택적 파라미터를 사용하여 더 향상된 결과 얻기

더 나은 결과를 얻으려면 반전된 영상에서 다시 imreducehaze를 호출하십시오. 이번에는 몇 가지 선택적 파라미터를 지정합니다.

BInv = imreducehaze(AInv, 'Method','approx','ContrastEnhancement','boost');
BImp = imcomplement(BInv);
figure, montage({A, BImp});

저조도 영상을 개선하는 또 다른 예제

낮은 조도에서 촬영한 RGB 영상을 가져옵니다.

A = imread('lowlight_21.jpg');

영상을 반전합니다.

AInv = imcomplement(A);

연무 제거 알고리즘을 적용합니다.

BInv = imreducehaze(AInv, 'ContrastEnhancement', 'none');

결과를 반전합니다.

B = imcomplement(BInv);

원본 영상과 향상된 영상을 나란히 표시합니다.

figure, montage({A, B});

다른 컬러스페이스를 사용하여 색 왜곡 줄이기

입력 영상을 RGB 컬러스페이스에서 L*a*b* 컬러스페이스로 변환합니다.

Lab = rgb2lab(A);

L*a*b* 영상을 반전합니다.

LInv = imcomplement(Lab(:,:,1) ./ 100);

imreducehaze 함수를 사용하여 반전된 영상에서 연무를 제거합니다.

LEnh = imcomplement(imreducehaze(LInv,'ContrastEnhancement','none'));

채도를 높입니다.

LabEnh(:,:,1)   = LEnh .* 100;
LabEnh(:,:,2:3) = Lab(:,:,2:3) * 2; % Increase saturation

영상을 다시 RGB 영상으로 변환하고 원본 및 향상된 영상을 나란히 표시합니다.

AEnh = lab2rgb(LabEnh);
figure, montage({A, AEnh});

잡음 제거로 결과 향상하기

저조도 영상은 잡음 수준이 높을 수 있습니다. 저조도 영상을 향상하면 이 잡음 수준이 증가할 수 있습니다. 잡음 제거는 유용한 후처리 단계입니다.

향상된 영상에서 잡음을 제거하려면 imguidedfilter 함수를 사용하십시오.

B = imguidedfilter(BImp);
figure, montage({BImp, B});

조도 맵 추정하기

낮은 조도에서 촬영한 RGB 영상을 가져옵니다.

A = imread('lowlight_21.jpg');

영상을 반전합니다.

AInv = imcomplement(A);

영상에 연무 제거 알고리즘을 적용합니다.

[BInv, TInv] = imreducehaze(AInv, 'Method', 'approxdcp', 'ContrastEnhancement', 'none');

향상된 영상을 반전합니다.

T = imcomplement(TInv);

원본 영상을 가색상(false color)에서 추정한 조도 맵 옆에 표시합니다.

figure,
subplot(1,2,1);
imshow(A), title('Lowlight Image');
subplot(1,2,2);
imshow(T), title('Illumination Map');
colormap(gca, hot(256));

제한 사항

이 방법은 저조도 조건에 있는 어두운 채널이 제대로 순응하지 못해 일부 세부 정보가 사라지거나 과하게 향상될 수 있습니다.

참고 문헌

Dong, Xuan, et al. "Fast efficient algorithm for enhancement of low lighting video." Multimedia and Expo (ICME), 2011 IEEE International Conference, IEEE, 2011.

참고 문헌

[1] Dong, X., G. Wang, Y. Pang, W. Li, J. Wen, W. Meng, and Y. Lu. "Fast efficient algorithm for enhancement of low lighting video." Proceedings of IEEE® International Conference on Multimedia and Expo (ICME). 2011, pp. 1–6.

참고 항목

| | | |