exponenta event banner

Улучшение изображения с низким уровнем освещенности

Изображения, запечатленные в наружных сценах, могут сильно ухудшаться из-за плохих условий освещения. Эти изображения могут иметь низкие динамические диапазоны с высокими уровнями шума, которые влияют на общую производительность алгоритмов компьютерного зрения. Чтобы сделать алгоритмы компьютерного зрения устойчивыми в условиях низкой освещенности, используйте улучшение изображения с низкой освещенностью для улучшения видимости изображения. Гистограмма пиксельной инверсии изображений с низким светом или HDR-изображений очень похожа на гистограмму туманных изображений. Таким образом, вы можете использовать методы удаления помутнения, чтобы улучшить изображения с низким светом.

Использование методов удаления помутнения для улучшения изображений с низким светом включает три этапа:

  • Шаг 1: Инвертировать изображение с низким уровнем освещенности.

  • Шаг 2: Примените алгоритм удаления помутнения к перевернутому малосветному изображению.

  • Шаг 3: Инвертировать улучшенное изображение.

Улучшить изображение с низким освещением с помощью алгоритма дегазирования

Импорт изображения RGB, снятого при слабом освещении.

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

Figure contains an axes. The axes contains an object of type image.

Переверните изображение и обратите внимание на то, что области с низким освещением на исходном изображении выглядят туманными.

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

Figure contains an axes. The axes contains an object of type image.

Уменьшите помутнение с помощью imreducehaze функция.

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

Figure contains an axes. The axes contains an object of type image.

Инвертируйте результаты, чтобы получить улучшенное изображение.

B = imcomplement(BInv);

Отображение исходного изображения и улучшенных изображений бок о бок.

figure, montage({A, B});

Figure contains an axes. The axes contains an object of type image.

Дальнейшее улучшение результатов с помощью imreducehaze Дополнительные параметры

Чтобы получить лучший результат, позвоните imreducehaze снова на инвертированном изображении, на этот раз указывая некоторые необязательные параметры.

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

Figure contains an axes. The axes contains an object of type image.

Другой пример улучшения плохо освещенного изображения

Импорт изображения RGB, снятого при слабом освещении.

A = imread('lowlight_21.jpg');

Инвертируйте изображение.

AInv = imcomplement(A);

Примените алгоритм замедления.

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

Инвертируйте результаты.

B = imcomplement(BInv);

Отображение исходного изображения и улучшенных изображений бок о бок.

figure, montage({A, B});

Figure contains an axes. The axes contains an object of type image.

Уменьшение искажений цвета с помощью другого цветового пространства

Преобразование входного изображения из цветового пространства 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});

Figure contains an axes. The axes contains an object of type image.

Улучшение результатов с помощью Denoising

Изображения с низким уровнем света могут иметь высокий уровень шума. Усиление малосветовых изображений может увеличить этот уровень шума. Деноизирование может быть полезным этапом последующей обработки.

Используйте imguidedfilter функция для удаления шума из улучшенного изображения.

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

Figure contains an axes. The axes contains an object of type image.

Оценить карту освещения

Импорт изображения RGB, снятого при слабом освещении.

A = imread('lowlight_21.jpg');

Инвертируйте изображение.

AInv = imcomplement(A);

Примените алгоритм замедления к изображению.

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

Инвертируйте улучшенное изображение.

T = imcomplement(TInv);

Отображение исходного изображения рядом с расчетной картой освещения в ложном цвете.

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

Figure contains 2 axes. Axes 1 with title Lowlight Image contains an object of type image. Axes 2 with title Illumination Map contains an object of type image.

Ограничения

Этот метод может потерять некоторые детали или стать чрезмерно усовершенствованным из-за плохой адаптируемости темного канала в условиях низкого освещения.

Ссылки

Дун, Сюань и др. «Быстрый эффективный алгоритм для улучшения видео с низким освещением». Мультимедиа и Экспо (ICME), 2011 Международная конференция IEEE по. IEEE, 2011.

Ссылки

[1] Донг, X., G. Wang, Y. Pang, W. Li, J. Wen, W. Meng и Y. Lu. «Быстрый эффективный алгоритм для улучшения видео с низким освещением». Материалы Международной конференции IEEE ® по мультимедиа и экспо (ICME). 2011, стр 1–6.

См. также

| | | |