Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_k_kursovomu_Kondratov.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
129.29 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ДОНЕЦЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ

МЕТОДИЧНІ ВКАЗІВКИ

ДО ВИКОНАННЯ КУРСОВОЇ РОБОТИ З ДИСЦИПЛІНИ

«ОБРОБКА СИГНАЛІВ ТА ЗОБРАЖЕНЬ»

Галузь знань: 0501 «Інформатика та обчислювальна техніка»

Напрям підготовки: 6.050102 «Компютерна інженерія»

Спеціальність: „Спеціалізовані комп’ютерні системи”

Розглянуто на засіданні кафедри

«Автоматизовані системи управління»

Протокол № від __________20__ р.

Затверджено на засіданні

учбової – видавничої ради ДОННТУ

Протокол № ___ від ___ ________ 20__ р.

Донецьк ДНТУ 2011

Методичні вказівки до курсової роботи з дисципліни "Обробка сигналів та зображень" для студентів спеціальності 7.091503 «Спеціалізовані комп'ютерні системи» (КСД). / Склали: Меркулова К.В.- Донецьк: ДНТУ, 2011. – 40 с.

Методичні вказівки містять короткі теоретичні відомості, методичні рекомендації і завдання до виконання лабораторних робіт з дисципліни «Обробка сигналів та зображень» з використанням технології MATLAB. IMAGEPROCESSINGTOOLBOX.

Укладачі: доц. Меркулова К.В.

Рецензент: _________________

Відповідальний за випуск: зав. каф. АСУ Скобцов Ю.О.

Теоретический материал Яркость точки и гистограммы изображения.

Яркость точки находится по формуле, коэффициенты которой определяются свойствами человеческого зрения:

Гистограммой в данном случае называется так или иначе представленная (например, в виде столбчатой диаграммы) зависимость числа повторений того/иного значения яркости на всём изображении от этого самого значения (то есть сколько раз встречается абсолютно чёрная точка, абсолютно белая и др.). Иными словами, один столбец гистограммы показывает, сколько пикселей текущего уровня яркости присутствует на всем изображении.При этом можно рассматривать 4 гистограммы: по 3 каналам и по вычисленной яркости.

Изменения яркости и контрастности

Эти изменения можно обобщить выражением «изменение баланса изображения», так как оба понятия – и яркость, и контрастность, – схожи и относятся к сфере восприятия изображения человеком.

Повышение/снижение яркости – это, соответственно, сложение/вычитание значения каждого канала с некоторым фиксированным значением (в пределах от 0 до 255); при этом обязательно необходимо контролировать выход нового значения канала за пределы диапазона 0..255.

Коррекцию можно выполнять при помощи такой функции:

int CorrectColor(int C)

{

if (C >255)

{

return255;

}

elseif (C <0)

{

return0;

}

elsereturn 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));

}

}