Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
NIRS9_Tereschenko_v3.docx
Скачиваний:
28
Добавлен:
04.06.2015
Размер:
2 Мб
Скачать
☆
  1. Загрузка изображения

Для загрузки изображения и последующей работы с ним в классе ImgPreProcessing, предоставляемого разработанной библиотекой, служит конструктор с параметром (параметр - путь к файлу). При создании нового объекта класса с помощью конструктора, заполняются его поляimg,dst,img_hsvиdst_hsv. Вimgиimg_hsv заносится загружаемое изображение в цветовых моделяхRGBиHSV. Соответственно, поляdstиdst_hsvизначально содержат копии оригинальных изображений.

  1. Линейное усреднение пикселей по соседним

Для выполнения линейного усреднения пикселей по соседним (т.н. "сглаживание", "размытие") предназначена функция Blur.

Определение функции:

void Blur(int appSize = 3);

  • appSize – размер матрицы свертки фильтра. Целое, неотрицательное, нечетное число (1, 3, 5, …). Параметр по умолчанию: 3.

Фильтрация выполняется обходом изображения сканирующим окном размера appSize x appSize. Каждый пиксель на выходе является средним арифметическим пикселей в области.

Рисунок 9. Исходное изображение.

Рисунок 10. Результат применения функции Blur(19)

  1. Медианная фильтрация

Для выполнения медианной фильтрации изображения предназначена функция Median.

Определение функции:

void Median(int appSize = 3);

  • appSize – размер матрицы свертки фильтра. Целое, неотрицательное, нечетное число (1, 3, 5, …). Параметр по умолчанию: 3.

Фильтрация выполняется обходом изображения сканирующим окном размера appSize x appSize. Каждый пиксель на выходе является медианой пикселей в этой области.

Рисунок 11. Исходное изображение.

Рисунок 12. Результат применения функции Median(11).

  1. Размытие по Гауссу

Для применения фильтра Гаусса к изображению предназначена функция Gaussian.

Определение функции:

void Gaussian(int appSize = 3);

  • appSize – размер матрицы свертки фильтра. Целое, неотрицательное, нечетное число (1, 3, 5, …). Параметр по умолчанию: 3.

Фильтрация выполняется обходом изображения сканирующим окном размера appSize x appSize. Значение центрального пикселя в области становится средне взвешенным на основе нормального распределения, остальных – в зависимости от веса (Гауссова значения).

Рисунок 13. Исходное изображение.

Рисунок 14. Результат применения функции Gaussian(9).

  1. Математическая морфология

Операции математической морфологии представлены базовыми операциями "Наращивание" (функция Dilation) и "Эрозия" (функцияErosion). Кроме того, были реализованы производные операции: "Замыкание" (функцияMathClosing) и "Размыкание" (функцияMathOpening), представляющие собой комбинации базовых.

Определение функций:

void Dilation(int appSize = 3);

void Erosion(int appSize = 3);

void MathOpening (int appSize = 3);

void MathClosing(int appSize = 3);

  • appSize – размер структурного элемента фильтра. Целое, неотрицательное, нечетное число (1, 3, 5, …). Параметр по умолчанию: 3.

В ходе операций осуществляется сканирование изображения структурным элементом квадратной формы размера appSize x appSize. Способ преобразования пикселей, попавших в область, зависит от выбранной операции.

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

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

Операция размыкания представляет собой последовательное выполнение эрозии и наращивания, операция замыкания – наращивания и эрозии.

Рисунок 15. Исходное изображение.

Рисунок 16. Результат применения функции Dilation(15).

Рисунок 17. Результат применения функции Erosion(15).

Рисунок 18. Результат применения функции MathOpening(15).

Рисунок 20. Результат применения функции MathClosing(15).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]