Повышение качества изображения недостаточной освещенности

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

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

  • Шаг 1: Инвертируйте изображение недостаточной освещенности.

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

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

Улучшите Изображение Недостаточной освещенности с помощью Алгоритма Dehazing

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

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

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

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

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

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

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

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

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

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

B = imcomplement(BInv);

Отобразите оригинальное изображение и улучшенные изображения, рядом друг с другом.

montage({A,B});

Figure contains an axes object. The axes object 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 object. The axes object contains an object of type image.

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

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

A = imread('lowlight_21.jpg');

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

AInv = imcomplement(A);

Примените dehazing алгоритм.

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

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

B = imcomplement(BInv);

Отобразите оригинальное изображение и улучшенные изображения, рядом друг с другом.

montage({A,B});

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

Уменьшайте искажение цвета при помощи различного цветового пространства

Преобразуйте входное изображение от цветового пространства RGB до L*a*b* цветовое пространство.

Lab = rgb2lab(A);

Инвертируйте L*a*b* изображение.

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

Dehaze перевернутое изображение с помощью imreducehaze функция.

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

Увеличьте насыщение.

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

Преобразуйте изображение назад в RGB, отображают и отображают оригинал и улучшенное изображение, рядом друг с другом.

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

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

Улучшите результаты Используя шумоподавление

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

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

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

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

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

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

A = imread('lowlight_21.jpg');

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

AInv = imcomplement(A);

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

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

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

T = imcomplement(TInv);

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

tiledlayout(1,2)
nexttile
imshow(A)
title('Lowlight Image')
nexttile
imshow(T)
title('Illumination Map')
colormap(hot)

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

Ограничения

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

Ссылки

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

Ссылки

[1] Dong, X., Г. Ван, И. Пан, В. Ли, Дж. Вэнь, В. Мэн и И. Лу. "Быстро эффективный алгоритм для улучшения низкого видео подсветки". Продолжения IEEE® Международная конференция по вопросам Мультимедиа и Экспо (ICME). 2011, стр 1–6.

Смотрите также

| | | |