MATLAB è Simulink íà ðóññêîì

https://hub.exponenta.ru/

Обработка сигналов и изображений\ Image Processing Toolbox

И.М.Журавель "Краткий курс теории обработки изображений"

В оглавление книги \ К предыдущему разделу \ К следующему разделу

Применение методов улучшения изображений при разработке системы видеонаблюдения

В настоящее время существует много различных систем видеонаблюдения. Различия, которые существуют между этими системами, можно объяснить разными условиями наблюдения, степенью надежности, уровнем автоматизации и т.д. Другими словами, задача видеонаблюдения является проблемно-ориентированной, поэтому архитектура и методы, которые реализованы в системе, зависят от особенностей поставленной задачи наблюдения.

В рамках этого материала остановимся на подходах, которые применяются для обработки визуальных данных, которые получены при построении автоматизированной системы видеонаблюдения.

 

Методы улучшения цифровых изображений, сформированных системой видеоналюдения

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

Рассмотрим более детально несколько различных методов, которые применяются в системах видеонаблюдения.

Усиление контрастности

Низкий контраст является одним из наиболее распространенных дефектов фотографических и телевизионных изображений. Причины могут быть самые различные – плохое качество аппаратуры, внешние условия и т.п. Что касается систем видеонаблюдения, то, в этом случае, недостаточно высокое качество регистрируемых изображений объясняется условиями съемки (погодные условия, темное время суток).

Приведем программную реализацию метода повышения локальных контрастов.

Сначала считаем исходное изображение.

L=imread('1.bmp');
figure,imshow(L);title('Исходное изображение');

Исходное изображение

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

Обработка R-цветовой составляющей исходного изображения

L_R=L(:,:,1);
figure,imshow(L_R); title('R-цветовая составляющая исходного изображения');
L_R=im2double(L_R);

R-цветовая составляющая исходного изображения

h=fspecial('unsharp');
L_R_contr=conv2(L_R,h);
L_R_contr=im2uint8(L_R_contr);
figure,imshow(L_R_contr); title('R-цветовая составляющая исходного изображения после контрастирования');

R-цветовая составляющая исходного изображения после контрастирования

Обработка G-цветовой составляющей исходного изображения

L_G=L(:,:,2);
figure,imshow(L_G); title('G-цветовая составляющая исходного изображения');
L_G=im2double(L_G);

G-цветовая составляющая исходного изображения

L_G_contr=conv2(L_G,h);
L_G_contr=im2uint8(L_G_contr);
figure,imshow(L_G_contr); title('G-цветовая составляющая исходного изображения после контрастирования');

G-цветовая составляющая исходного изображения после контрастирования

Обработка B-цветовой составляющей исходного изображения

L_B=L(:,:,3);
figure,imshow(L_B); title('B-цветовая составляющая исходного изображения');
L_B=im2double(L_B);

B-цветовая составляющая исходного изображения

L_B_contr=conv2(L_B,h);
L_B_contr=im2uint8(L_B_contr);
figure,imshow(L_B_contr); title('B-цветовая составляющая исходного изображения после контрастирования');

B-цветовая составляющая исходного изображения после контрастирования

Восстановим результирующее цветное изображение из трех цветовых составляющих.

L(:,:,1)=L_R_contr;
L(:,:,2)=L_G_contr;
L(:,:,3)=L_B_contr;
 
figure,imshow(L);title('Исходное изображение после контрастирования');

Исходное изображение после контрастирования

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

Коррекция динамического диапазона

Рассмотрим еще один метод улучшения изображений – метод коррекции динамического диапазона интенсивностей элементов изображения. Известно, что при недостаточном освещении формируются изображения с ограниченным динамическим диапазоном. Поэтому использование метода коррекции динамического диапазона в системах видеонаблюдения очень актуально, поскольку система должна работать как в светлое, так и в темное время суток.

Считаем исходное изображение

L=imread('3.bmp');
figure,imshow(L);title('Исходное изображение');
k=.25;

Исходное изображение

L_R=L(:,:,1);
figure,imshow(L_R); title('R-цветовая составляющая исходного изображения');

R-цветовая составляющая исходного изображения

L_R=im2double(L_R);
Lmin=min(min(L_R));
Lmax=max(max(L_R));
L_R_stretch=((L_R-Lmin)./(Lmax-Lmin)).^k;
L_R_stretch1=medfilt2(L_R_stretch);
L_R_stretch1=im2uint8(L_R_stretch1);
figure,imshow(L_R_stretch); title('R-цветовая составляющая после коррекции динамического диапазона');

R-цветовая составляющая после коррекции динамического диапазона

На изображении, которое получено после коррекции динамического диапазона, видно присутствие импульсной шумовой составляющей. Ее желательно устранить с помощью медианной фильтрации. Аналогично поступим со всеми цветовыми составляющими изображения.

figure,imshow(L_R_stretch1);
title('R-составляющая после коррекции динамического диапазона (медианная фильтрация)');

R-составляющая после коррекции динамического диапазона (медианная фильтрация)

L_G=L(:,:,2);
figure,imshow(L_G); title('G-цветовая составляющая исходного изображения');

G-цветовая составляющая исходного изображения

L_G=im2double(L_G);
Lmin=min(min(L_G));
Lmax=max(max(L_G));
L_G_stretch=((L_G-Lmin)./(Lmax-Lmin)).^k;
L_G_stretch1=medfilt2(L_G_stretch);
L_G_stretch1=im2uint8(L_G_stretch1);
figure,imshow(L_G_stretch); title('G-цветовая составляющая после коррекции динамического диапазона');

G-цветовая составляющая после коррекции динамического диапазона

figure,imshow(L_G_stretch1);
title('G-составляющая после коррекции динамического диапазона (медианная фильтрация)');

G-составляющая после коррекции динамического диапазона (медианная фильтрация)

L_B=L(:,:,3);
figure,imshow(L_B); title('B-цветовая составляющая исходного изображения');

B-цветовая составляющая исходного изображения

L_B=im2double(L_B);
Lmin=min(min(L_B));
Lmax=max(max(L_B));
L_B_stretch=((L_B-Lmin)./(Lmax-Lmin)).^k;
L_B_stretch1=medfilt2(L_B_stretch);
L_B_stretch1=im2uint8(L_B_stretch1);
figure,imshow(L_B_stretch); title('B-цветовая составляющая после коррекции динамического диапазона');

B-цветовая составляющая после коррекции динамического диапазона

figure,imshow(L_B_stretch1);
title('B-составляющая после коррекции динамического диапазона (медианная фильтрация)');

B-составляющая после коррекции динамического диапазона (медианная фильтрация)

L(:,:,1)=L_R_stretch;
L(:,:,2)=L_G_stretch;
L(:,:,3)=L_B_stretch;
 
L1(:,:,1)=L_R_stretch1;
L1(:,:,2)=L_G_stretch1;
L1(:,:,3)=L_B_stretch1;
 
 
figure,imshow(L);title('Исходное изображение после коррекции динамического диапазона');

Исходное изображение после коррекции динамического диапазона

figure,imshow(L1);
title('Исходное изображение после коррекции динамического диапазона (медианная фильтрация)');

Исходное изображение после коррекции динамического диапазона (медианная фильтрация)

Разностный метод

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

Приведем один из вариантов метода подчеркивания границ.

L=imread('1.bmp');
figure,imshow(L);title('Исходное изображение');
k=1.4;

Исходное изображение

L_R=L(:,:,1);
figure,imshow(L_R); title('R-цветовая составляющая исходного изображения');

R-цветовая составляющая исходного изображения

L_R=im2double(L_R);
Lser=mean(mean(L_R));
L_R_sharp=Lser+k*(L_R-Lser);
L_R_sharp=im2uint8(L_R_sharp);
figure,imshow(L_R_sharp); title('R-цветовая составляющая после подчеркивания границ');

R-цветовая составляющая после подчеркивания границ

L_G=L(:,:,2);
figure,imshow(L_G); title('G-цветовая составляющая исходного изображения');

G-цветовая составляющая исходного изображения

L_G=im2double(L_G);
Lser=mean(mean(L_G));
L_G_sharp=Lser+k*(L_G-Lser);
L_G_sharp=im2uint8(L_G_sharp);
figure,imshow(L_G_sharp); title('G-цветовая составляющая после подчеркивания границ');

G-цветовая составляющая после подчеркивания границ

L_B=L(:,:,3);
figure,imshow(L_B); title('B-цветовая составляющая исходного изображения');

B-цветовая составляющая исходного изображения

L_B=im2double(L_B);
Lser=mean(mean(L_B));
L_B_sharp=Lser+k*(L_B-Lser);
L_B_sharp=im2uint8(L_B_sharp);
figure,imshow(L_B_sharp); title('B-цветовая составляющая после подчеркивания границ');

B-цветовая составляющая после подчеркивания границ

L(:,:,1)=L_R_sharp;
L(:,:,2)=L_G_sharp;
L(:,:,3)=L_B_sharp;
 
 
figure,imshow(L);title('Исходное изображение после подчеркивания границ');

Исходное изображение после подчеркивания границ

Выравнивание гистограммы

Изображения, которые формируются в системе видеонаблюдения, довольно часто бывают или слишком темными, или слишком светлыми. Это можно объяснить тем, что изображения могут формироваться в различное время суток и при различных погодных условиях. Для улучшения визуального качества таких изображений может применяться метод выравнивания гистограммы. Приведем один из вариантов его реализации.

L=imread('3.bmp');
figure,imshow(L);title('Исходное изображение');

Исходное изображение

L_R=L(:,:,1);
figure,imshow(L_R); title('R-цветовая составляющая исходного изображения');

R-цветовая составляющая исходного изображения

L_R=im2double(L_R);
L_R_sharp=histeq(L_R);
L_R_sharp1=medfilt2(L_R_sharp,[7 7]);
L_R_sharp=im2uint8(L_R_sharp1);
figure,imshow(L_R_sharp); title('R-цветовая составляющая после выравнивания гистограммы');

R-цветовая составляющая после выравнивания гистограммы

L_G=L(:,:,2);
figure,imshow(L_G); title('G-цветовая составляющая исходного изображения');

G-цветовая составляющая исходного изображения

L_G=im2double(L_G);
L_G_sharp=histeq(L_G);
L_G_sharp1=medfilt2(L_G_sharp,[7 7]);
L_G_sharp=im2uint8(L_G_sharp1);
figure,imshow(L_G_sharp); title('G-цветовая составляющая после выравнивания гистограммы');

G-цветовая составляющая после выравнивания гистограммы

L_B=L(:,:,3);
figure,imshow(L_B); title('B-цветовая составляющая исходного изображения');

B-цветовая составляющая исходного изображения

L_B=im2double(L_B);
L_B_sharp=histeq(L_B);
L_B_sharp1=medfilt2(L_B_sharp,[7 7]);
L_B_sharp=im2uint8(L_B_sharp1);
figure,imshow(L_B_sharp); title('B-цветовая составляющая после выравнивания гистограммы');

B-цветовая составляющая после выравнивания гистограммы

L(:,:,1)=L_R_sharp;
L(:,:,2)=L_G_sharp;
L(:,:,3)=L_B_sharp;

figure,imshow(L);title('Исходное изображение после выравнивания гистограммы');

Исходное изображение после выравнивания гистограммы

Таким образом, в рамках данного материала нами рассмотрен набор методов улучшения изображений, которые могут применяться при построении автоматизированной системы видеонаблюдения. В основном, методы улучшения были направлены на коррекцию динамического диапазона изображений, а также устранение шумов. Как уже отмечалось, эти недостатки изображения можно объяснить недостаточным освещением в темное время суток и погодными условиями.

В оглавление книги \ К предыдущему разделу \ К следующему разделу


Поиск по сайту:


Система Orphus