- •Міністерство освіти і науки україни
- •Теоретический материал Яркость точки и гистограммы изображения.
- •Изменения яркости и контрастности
- •Изменение цветности (бинаризация, оттенки серого, негатив).
- •Наложение шума
- •Фильтрация
- •Методы выделения границ
- •Шумоподавляющая фильтрация
- •Требования к программе курсовой работы по дисциплине «Обработка сигналов и изображений»
Міністерство освіти і науки україни
ДОНЕЦЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
МЕТОДИЧНІ ВКАЗІВКИ
ДО ВИКОНАННЯ КУРСОВОЇ РОБОТИ З ДИСЦИПЛІНИ
«ОБРОБКА СИГНАЛІВ ТА ЗОБРАЖЕНЬ»
Галузь знань: 0501 «Інформатика та обчислювальна техніка»
Напрям підготовки: 6.050102 «Комп’ютерна інженерія»
Спеціальність: „Спеціалізовані комп’ютерні системи”
Розглянуто на засіданні кафедри
«Автоматизовані системи управління»
Протокол № 2 від 9 вересня__ 2011 р.
Донецьк 2011
Методичні вказівки до курсової роботи з дисципліни "Обробка сигналів та зображень" для студентів спеціальності 6.091503 «Спеціалізовані комп'ютерні системи» (КСД). / Склали: Меркулова К.В.- Донецьк: ДНТУ, 2011. – 44 с.
Методичні вказівки містять короткі теоретичні відомості, методичні рекомендації і завдання до виконання лабораторних робіт з дисципліни «Обробка сигналів та зображень» з використанням технології MATLAB. IMAGE PROCESSING TOOLBOX.
Укладачі: доц. Меркулова К.В.
Рецензент: _________________
Відповідальний за випуск: зав. каф. АСУ Скобцов Ю.О.
Теоретический материал Яркость точки и гистограммы изображения.
Яркость точки находится по формуле, коэффициенты которой определяются свойствами человеческого зрения:
Гистограммой в данном случае называется так или иначе представленная (например, в виде столбчатой диаграммы) зависимость числа повторений того/иного значения яркости на всём изображении от этого самого значения (то есть сколько раз встречается абсолютно чёрная точка, абсолютно белая и др.). Иными словами, один столбец гистограммы показывает, сколько пикселей текущего уровня яркости присутствует на всем изображении. При этом можно рассматривать 4 гистограммы: по 3 каналам и по вычисленной яркости.
Изменения яркости и контрастности
Эти изменения можно обобщить выражением «изменение баланса изображения», так как оба понятия – и яркость, и контрастность, – схожи и относятся к сфере восприятия изображения человеком.
Повышение/снижение яркости – это, соответственно, сложение/вычитание значения каждого канала с некоторым фиксированным значением (в пределах от 0 до 255); при этом обязательно необходимо контролировать выход нового значения канала за пределы диапазона 0..255.
Коррекцию можно выполнять при помощи такой функции:
int CorrectColor(int C)
{
if (C > 255)
{
return 255;
}
else if (C < 0)
{
return 0;
}
else return C;
}
Преобразование яркости выглядит так:
//toAdd - значение, на которое необходимо увеличить яркость изображения
for (i = 0; i < bmp.Width; i++)
{
for (j = 0; j < bmp.Height; j++)
{
//Считываем уровни яркости RGB каждого пикселя
R = bmp.GetPixel(i, j).R;
G = bmp.GetPixel(i, j).G;
B = bmp.GetPixel(i, j).B;
//Прибавляем к полученному значению фиксированный коэффициент
R = R + toAdd;
G = G + toAdd;
B = B + toAdd;
//Выполняем корректировку цвета
R = CorrectColor(R);
B = CorrectColor(B);
G = CorrectColor(G);
//Заменяем значения в пикселе
rezultImage.SetPixel(i, j, Color.FromArgb(R, G, B));
}
}
Повышение/снижение контрастности – это, соответственно, умножение/деление значения каждого канала на некоторое фиксированное значение (в том числе действительное), что приводит к изменению соотношений между цветами и, соответственно, к более чётким цветовым границам. На практике же существует такой принцип: изменение контрастности не должно приводить к изменению средней яркости по изображению, поэтому пользуются следующей формулой:
В этой формуле NewY – новое значение одного из каналов, K – коэффициент контрастности (K=(0…1) – снижение, K>1 – повышение контрастности), OldY – текущее значение того же канала, AveY – среднее значение того же канала по изображению (таким образом, алгоритм фактически является двухпроходовым). Обязательна всё та же коррекция нового значения при выходе его за границы 0...255.
Преобразование яркости выглядит так:
AveR = 0;
AveG = 0;
AveB = 0;
for (i = 0; i < bmp.Width; i++)
{
for (j = 0; j < bmp.Height; j++)
{
//Находим сумму цветовых каналов для всего изображения
AveR = AveR + bmp.GetPixel(i, j).R;
AveG = AveG + bmp.GetPixel(i, j).G;
AveB = AveB + bmp.GetPixel(i, j).B;
}
}
//Находим среднее значение
AveR = AveR / (bmp.Width * bmp.Height);
AveG = AveG / (bmp.Width * bmp.Height);
AveB = AveB / (bmp.Width * bmp.Height);
for (i = 0; i < bmp.Width; i++)
{
for (j = 0; j < bmp.Height; j++)
{
R = bmp.GetPixel(i, j).R;
G = bmp.GetPixel(i, j).G;
B = bmp.GetPixel(i, j).B;
//Применяем формулу изменения контраста
//К - коэффициент преобразования
R = (int)((R - AveR) * K) + AveR;
G = (int)((G - AveG) * K) + AveG;
B = (int)((B - AveB) * K) + AveB;
R = CorrectColor(R);
G = CorrectColor(G);
B = CorrectColor(B);
rezultImage.SetPixel(i, j, Color.FromArgb(R, G, B));
}
}