Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Представление изображения и
цвета изображения в
компьютерной графике
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Изображение
Изображение оптическое – картина, получаемая в результате прохождения
через оптическую систему лучей, распространяющихся от объекта, и
воспроизводящая его контуры и детали.
Компьютерное представление изображения:
Функция интенсивности (яркости) канала
I g ( x, y),{x [ x0 , x1 ], y [ y0 , y1 ]}
Используется дискретное представление
I g (i, j ),{i 1, n, j 1, m}
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Представление изображения
Растр (англ. raster) - отображение вида
f : X Y 2
R2
X Z Y Z
C
2
r
Где 2 - обозначает множество всех подмножеств R 2
C - множество значений атрибутов (как правило, цвет).
f (i, j )
– элемент растра, называемый пикселем
f (i, j ) ( A(i, j ),C (i, j ))
A(i, j ) R 2 – область пикселя
C (i, j ) C – атрибут пикселя
C (i, j ) I (i, j ) – интенсивность (или яркость) пикселя
C (i, j ) {R(i, j ),G(i, j ), B(i, j )}
– цветовые атрибуты
в цветовой модели RGB
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Представление изображения
M ij ( Aij , Cij )
Aij : (i, j )
одна точка
– матричное обозначение элемент растра (пикселя)
Aij : (i, i 1) ( j, j 1)
квадрат
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Представление цвета в машинной графике
Относительная чувствительность колбочек человеческого глаза
Распределение элементов
воспринимающих цвета в
одночиповых решениях
(фотокамерах, видеокамерах и т.п.)
А
Б
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовое восприятие
Яркость
Человеческий глаз обладает тремя типами
фоторецепторов, чувствительных к
красному зеленому и синему свету
Оттенок (тон)
Насыщенность
Человеческий мозг преобразует RGB
на отдельные каналы: яркости и
цветовые компоненты
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Формирование представление изображения
Формирование представление изображения
Формирование представление изображения
Проекция
через линзу
Изображение
объекта
Формирование представление изображения
Проекция на
дискретный
сенсорный массив
Цифровая
камера
Формирование представление изображения
Регистрация
сенсором средних
значений цвета
дискретное
изображение
Выход: дискретный цвет
Формирование представление изображения
Дискретизация
непрерывные цвета
отображаются в
конечном, дискретном
наборе цветов.
Вход: непрерывный цвет
Формирование представление изображения
Пикселизация и Цветовая дискретизация
Sampling and Quantization
Пиксельная
сетка
Original
sampled
quantized
sampled &
quantized
*Пикселизация - разложение изображения на (минимальные) элементы
Дискретизация, квантование - преобразование непрерывной
информации в дискретную
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Представление изображения
(Цифровое изображение)
Сетка состоящая из
квадратов, каждый из
которых содержит
единственный цвет
Цветное изображение
обладает 3-мя значениями
на пиксель; Монохромное - 1
Интенсивности:
красный
зеленый
синий
Каждый такой
квадрат называется
пикселем (элемент
изображения)
Интенсивность
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Представление цвета в машинной графике
Цветовая модель — абстрактная модель описания представления цветов в
виде кортежей чисел, в обычном случае трех или четырех значений,
называемых "цветовыми компонентами " или "цветовыми координатами "
Цветовое пространство представляет собой модель представления
цвета, основанную на использовании цветовых координат
Цветовая палитра - это таблица данных с информацией о коде
закодированного цвета.
Представление цвета в машинной графике
(Цветовая палитра)
Черно-белая палитра - включает в себя
только два цвета черный и белый
Серая палитра (grayscale) - каждый
элемент может иметь один из 256
оттенков серого
8-битная палитра - из всей гаммы
цветов, воспринимаемых человеческим
глазом, выбираются только 256
24-битная палитра (truecolor) - более
16 миллионов оттенков
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Представление цветного изображения
Пикселизация
Синхронная пикселизация
всех каналов цветного
изображения.
Подписи (вверху изображения)
Левый – величина
Правый – цифровая информация
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Представление цветного изображения
Пикселизация
Пикселизация по каналам
цветного изображения:
Красный – Red
Зеленый – Green
Синий – Blue
Подписи (вверху изображения)
Левый – Канал
Правый – цифровая информация
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Представление цветного изображения
Пикселизация
Пикселизация цветного
изображения по каналу
яркости
Подписи (вверху изображения)
Левый – величина
Правый – цифровая информация
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Представление цветного изображения
Пикселизация
Пикселизация цветного
изображения компоненте
цветности
Подписи (вверху изображения)
Левый – Величина
Правый – цифровая информация
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
16× Пикселизация
Представление цветного изображения
Пикселизация
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая система CIE XYZ
X k I () X ()d
Y k I ()Y ()d
Z k I ()Z ()d
где I(λ) - спектральная функция распределения
для представляемого цвета, а k - масштабный
коэффициент, выбираемый исходя из того, какой
цвет принимается за белый и в каком диапазоне
должны лежать значения Y.
k
Ymax
Iбел ()Y ()d
где Iбел(λ) - спектральная функция распределения для
выбранного эталона белого цвета. Функция ρY(λ)
соответствует относительному восприятию
интенсивности света
значения цветности (англ. chromacity values) x, y, z, определяются из X,Y,Z
следующим образом:
x
X
X Y Z
y
Y
X Y Z
z
Z
X Y Z
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая система CIE XYZ и диаграмма цветности
Цветовые модели XYZ и RGB
Если цвет задан таким образом (x, y, Y), то следует, что
Y
x
X
y
Y
Y
Z Y (1 x y )
y
Если базисные RGB-цвета заданы как (xR, yR, YR),
(xG, yG, YG), (xB, yB, YB), получаем следующую формулу
преобразования:
zR=1-xR-yR;
zG=1-xG-yG;
zB=1-xB-yB;
X
Y
Z
YR
xR
yR
YR
YR
zR
yR
YG
xG
yG
YG
YG
zG
yG
XYZ xyY
//X from 0 to 95.047
Y=Y
x = X / ( X + Y + Z ) //Y from 0 to 100.000
y = Y / ( X + Y + Z ) //Z from 0 to 108.883
YB
xB
yB R
YB G
YB B
zB
yB
xyY XYZ
//Y from 0 to 100
X=x×(Y/y)
//x from 0 to 1
Y=Y
Z = ( 1 - x - y ) × ( Y / y ) //y from 0 to 1
Коэффициенты перевода (частный случай)
RGB XYZ
X = 0.431×R+0.342×G+0.178×B
Y = 0.222×R+0.707×G+0.071×B
Z = 0.020×R+0.130×G+0.939×B
XYZ RGB
R = 3.063×X-1.393×Y-0.476×Z
G = -0.969×X+1.876×Y+0.042×Z
B = 0.068×X-0.229×Y+1.069×Z
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели RGBXYZ
var_R = ( R / 255 )
var_G = ( G / 255 )
var_B = ( B / 255 )
//R from 0 to 255
//G from 0 to 255
//B from 0 to 255
if ( var_R > 0.04045 ) var_R = ( ( var_R + 0.055 ) / 1.055 ) ^ 2.4
else
var_R = var_R / 12.92
if ( var_G > 0.04045 ) var_G = ( ( var_G + 0.055 ) / 1.055 ) ^ 2.4
else
var_G = var_G / 12.92
if ( var_B > 0.04045 ) var_B = ( ( var_B + 0.055 ) / 1.055 ) ^ 2.4
else
var_B = var_B / 12.92
var_R = var_R * 100
var_G = var_G * 100
var_B = var_B * 100
X = var_R * 0.4124 + var_G * 0.3576 + var_B * 0.1805
Y = var_R * 0.2126 + var_G * 0.7152 + var_B * 0.0722
Z = var_R * 0.0193 + var_G * 0.1192 + var_B * 0.9505
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели XYZRGB
var_X = X / 100
var_Y = Y / 100
var_Z = Z / 100
//X from 0 to 95.047
//Y from 0 to 100.000
//Z from 0 to 108.883
var_R = var_X * 3.2406 + var_Y * -1.5372 + var_Z * -0.4986
var_G = var_X * -0.9689 + var_Y * 1.8758 + var_Z * 0.0415
var_B = var_X * 0.0557 + var_Y * -0.2040 + var_Z * 1.0570
if ( var_R > 0.0031308 ) var_R = 1.055 * ( var_R ^ ( 1 / 2.4 ) ) - 0.055
else
var_R = 12.92 * var_R
if ( var_G > 0.0031308 ) var_G = 1.055 * ( var_G ^ ( 1 / 2.4 ) ) - 0.055
else
var_G = 12.92 * var_G
if ( var_B > 0.0031308 ) var_B = 1.055 * ( var_B ^ ( 1 / 2.4 ) ) - 0.055
else
var_B = 12.92 * var_B
R = var_R * 255
G = var_G * 255
B = var_B * 255
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая модель LAB
Lab — аббревиатура названия двух разных (хотя и похожих) цветовых пространств.
Более известным и распространенным является CIE LAB (точнее, CIE 1976
L*a*b*), другим — Hunter Lab (точнее, Hunter L, a, b).
Светлота 25 %
Светлота 75 %
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая модель LAB (XYZ -> L*a*b*)
var_X := X / ref_X;
var_Y := Y / ref_Y;
var_Z := Z / ref_Z;
//ref_X = 95.047 Observer= 2°, Illuminant= D65
//ref_Y = 100.000
//ref_Z = 108.883
if ( var_X > 0.008856 ) then
var_X := power(var_X, ( 1/3 ))
else
var_X := ( 7.787 * var_X ) + ( 16 / 116 );
if ( var_Y > 0.008856 ) then
var_Y := power(var_Y, ( 1/3 ))
else
var_Y := ( 7.787 * var_Y ) + ( 16 / 116 );
if ( var_Z > 0.008856 ) then
var_Z := power(var_Z, ( 1/3 ))
else
var_Z := ( 7.787 * var_Z ) + ( 16 / 116 );
L := ( 116 * var_Y ) - 16;
a := 500 * ( var_X - var_Y );
b := 200 * ( var_Y - var_Z );
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая модель LAB (XYZ -> L*a*b*)
var_Y := ( L + 16 ) / 116;
var_X := a / 500 + var_Y;
var_Z := var_Y - b / 200;
if ( power(var_Y,3) > 0.008856 ) then
var_Y := power(var_Y,3)
else
var_Y := ( var_Y - 16 / 116 ) / 7.787;
if ( power(var_X,3) > 0.008856 ) then
var_X := power(var_X,3)
else
var_X := ( var_X - 16 / 116 ) / 7.787;
if ( power(var_Z,3) > 0.008856 ) then
var_Z := power(var_Z,3)
else
var_Z := ( var_Z - 16 / 116 ) / 7.787;
X := ref_X * var_X; //ref_X = 95.047 Observer= 2°, Illuminant= D65
Y := ref_Y * var_Y; //ref_Y = 100.000
Z := ref_Z * var_Z; //ref_Z = 108.883
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели RGB и CMY
RGB
R
C
1
G M 1
B
Y
1
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Работа с изображением RGB
Использование параметра Pixels
объявление переменной цвета, и переменных спектра
Color :Tcolor (cardinal)
CR,CG,CB : Byte
Назначение цвета
Bitmap.Canvas.Pixels[x,y]:=Color
Получение цвета
Color:=Bitmap.Canvas.Pixels[x,y]
Разложение цвета на спектральные компоненты RGB:
CR:=GetRValue(Color)
CG:=GetGValue(Color)
CB:=GetBValue(Color)
Получение цвета на основе спектра RGB
Color:=RGB(CR,CG,CB)
Color:=(CR or (CG shl 8) or (CB shl 16));
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Работа с изображением RGB
через массив записей TRGBTriple
массив записей TRGBTriple = tagRGBTRIPLE;
tagRGBTRIPLE = packed record
rgbtBlue: Byte;
rgbtGreen: Byte;
rgbtRed: Byte;
Задание типа
TRGBArray = ARRAY[0..32767] OF TRGBTriple;
pRGBArray = ^TRGBArray;
Объявление переменной выражающей строку
RowOriginal : pRGBArray;
CR, CG, CB : byte
Color : Tcolor (cardinal)
Для битмапа задание разрядности 24bit=3x8
Bitmap.PixelFormat := pf24bit;
Чтение линии
RowOriginal := Bitmap.ScanLine[N];
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Работа с изображением RGB
через массив записей TRGBTriple
Чтение линий
for i:=0 to Bitmap.Width-1 do
RowOriginal := Bitmap.ScanLine[i];
Обращение к элементам
CR:= RowOriginal [j].rgbtRed
CG:= RowOriginal [j].rgbtGreen
CB:= RowOriginal [j].rgbtBlue
Color:=RGB(RowOriginal[j].rgbtRed,
RowOriginal[j].rgbtGreen,
RowOriginal[j].rgbtBlue);
Занесение значений элементам
RowOriginal[j].rgbtRed:= CR
RowOriginal[j].rgbtGreen := CG
RowOriginal[j].rgbtBlue := CB
RowOriginal[j].rgbtRed:=GetRValue(Color)
RowOriginal[j].rgbtGreen :=GetGValue(Color)
RowOriginal[j].rgbtBlue :=GetBValue(Color)
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели CMY CMYK
//RGB значения [0..255]
CMY и CMYK значения [0..1]
RGB CMY
CMY RGB
C = 1 - ( R / 255 )
M = 1 - ( G / 255 )
Y = 1 - ( B / 255 )
R = ( 1 - C ) × 255
G = ( 1 - M ) × 255
B = ( 1 - Y ) × 255
CMYK CMY
C=(C×(1-K)+K)
M=(M×(1-K)+K)
Y=(Y×(1-K)+K)
var_K = 1
CMY CMYK
if ( C < var_K ) var_K = C
if ( M < var_K ) var_K = M
if ( Y < var_K ) var_K = Y
if ( var_K == 1 ) { //Black
C=0
M=0
Y=0
}
else {
C = ( C - var_K ) / ( 1 - var_K )
M = ( M - var_K ) / ( 1 - var_K )
Y = ( Y - var_K ) / ( 1 - var_K )
}
K = var_K
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая модель HSV
Цветовая модель HSV (англ. Hue, Saturation, Value — тон, насыщенность,
значение) или HSB (англ. Hue, Saturation, Brightness — оттенок, насыщенность,
яркость) — цветовая модель, в которой координатами цвета являются
• Hue — цветовой тон, (например, красный, зелёный или сине-голубой).
Варьируется в пределах 0—360°, однако иногда приводится к диапазону 0—100
или 0—1.
• Saturation — насыщенность. Варьируется в пределах 0—100 или 0—1.
• Value (значение цвета) или Brightness — яркость. Также задаётся в
пределах 0—100 и 0—1.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели RGBHSV
H [0,360)
S ,V , R, G, B [0,1]
MAX — максимальное значение из R, G и B;
MIN — минимальное из них.
0,
GB
60
MAX MIN
GB
H 60
MAX MIN
BR
60
MAX MIN
R G
60
MAX MIN
если MAX MIN
0,
если MAX R и G B
360, если MAX R и G B
0,
S MIN
1 MAX ,
если MAX 0
если MAX 0
V MAX
120, если MAX G
240, если MAX B
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели RGBHSV
{
maxVal = maximum(R,G,B);
minVal = minimum(R,G,B);
V = maxVal;
//Определение светлоты
If ( maxVal == 0 ) S = 0;
//Определение насыщенности
else S = ( maxVal - minVal )/maxVal;
If ( S == 0 ) H = UNDEFINED;
else
{
//Цвет между желтым и пурпурным
if( R == maxVal ) H = (G-B)/(maxVal - minVal );
//Цвет между голубым и желтым
else if ( G == maxVal ) H = 2 + (B-R)/(maxVal - minVal );
//Цвет между пурпурным и голубым
else if ( B == maxVal ) H = 4 + (R-G)/(maxVal - minVal );
H = H * 60;
if( H < 0 )
H = H + 360;
}
}
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели HSVRGB
(Комплементарные цвета )
Sector
H
H
Sector
mod 6 frac
60
60
p V (1 S )
q V (1 frac S )
t V (1 (1 frac) S )
Sector 0 R V
G t
B p
Sector 1 R q
Sector 2 R p
Sector 3 R p
Sector 4 R t
Sector 5 R V
G V
G V
Gq
G p
G p
B p
Bt
B V
B V
Bq
Два цвета называются комплементарными, если при смешивании их в равной
пропорции получается чистый серый цвет.
Вычисление Комплементарного цвета:
H 180,
H '
H 180,
VS
S'
V ( S 1) 1
V ' V ( S 1) 1
если H 180
если H 180
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели HSVRGB
{
if( S == 0 ) {
// находимся на оси симметрии - оттенки серого
R = V;
// если V=0 черный цвет
G = V;
B = V;
}
else {
sector = floor( H / 60 );
// floor(x) возвращает наибольшее целое <= x
frac = H / 60 - sector;
// дробная часть H/60
T = V * ( 1 - S );
P = V * ( 1 - S*frac );
Q = V * ( 1 - S*(1 - frac) );
switch( sector ) {
case 0: R = V; G = Q; B = T; break;
case 1: R = P; G = V; B = T; break;
case 2: R = T; G = V; B = Q; break;
case 3: R = T; G = P; B = V; break;
case 4: R = Q; G = T; B = V; break;
case 5: R = V; G = T; B = P; break;
}
}
}
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая модель HLS (HSL HSB)
Цветовая модель HLS, HSL или HSI (от англ. Нue, Lightness, Saturation - тон,
светлота, насыщенность) схожа с моделью HSV. Следует отметить, что
HSV и HLS — две разные цветовые модели.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели RGBHSL (HLS HSB)
Неопределе но
GB
60
MAX MIN
GB
H 60
360
MAX MIN
BR
60
120
MAX MIN
R G
60
240
MAX MIN
если
MAX MIN
если
MAX R и G B
если
MAX R и G B
если
MAX G
если
0
MAX MIN MAX MIN
2L
MAX MIN
S
MAX MIN MAX MIN
2 2L
2 ( MAX MIN )
1
MAX B
если
если
если
если
H — тон [0; 360]
S — насыщенность [0; 1]
L — яркость [0; 1]
R, G, B — значения цвета
в цветовой модели RGB, в
диапазоне [0; 1]
MAX — максимум из (R, G, B)
MIN — минимум из (R, G, B)
L 0 или MAX MIN
1
0 L
2
1
L 1
2
L 1
1
L ( MAX MIN )
2
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели RGBHSL (HLS HSB)
{
maxVal = maximum(R,G,B);
minVal = minimum(R,G,B);
L = (maxVal + minVal) / 2;
if( maxVal == minVal )
{
S = 0;
H = UNDEFINED;
}
else
{
if( L <= 0.5 ) S = (maxVal - minVal)/(maxVal + minVal);
else S = (maxVal - minVal)/(2 - (maxVal + minVal));
if( R == maxVal ) H = (G - B)/(maxVal - minVal);
else if( G == maxVal ) H = 2 + (B - R)/(maxVal - minVal);
else if( B == maxVal ) H = 4 + (R - G)/(maxVal - minVal);
H = H * 60;
if( H < 0 ) H = H + 360;
}
}
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели HSL (HLS HSB)RGB
L (1.0 S ) если L 0.5
Q
L S L S если L 0.5
P 2.0 L Q
H
H
- приведение к интервалу [0,1])
360
1
1
TR H k
TG H k
TB H k
3
3
если Tc 1 Tc Tc 1.0 для каждого c R, G, B
если Tc 0 Tc Tc 1.0 для каждого c R, G, B
Для каждой компоненты цвета c = R,G,B:
1
P
((
Q
P
)
T
6
.
)
если
T
c
c
6
1
1
Q
если
Tc
Colorc
6
2
2
1
2
P
((
Q
P
)
(
T
)
6
.
)
если
T
c
c
3
2
3
P
иначе
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовые модели HSL (HLS HSB)RGB
{
if( S == 0 ) { R = L; G = L; B = L; }
else
{
if( L <= 0.5 ) M2 = L * (L + S);
else M2 = (L + S) - L * S;
M1 = 2 * L - M2;
R = Value(M1,M2,(H + 120) mod 360);
G = Value(M1,M2,H);
B = Value(M1,M2,(H - 120) mod 360);
}
}
// Вспомогательная функция
Value Value( N1, N2, Hue )
{
if( Hue < 60 ) return N1 + (N2 - N1)*Hue / 60;
else if( Hue < 180 ) return N2;
else if( Hue < 240 ) return N1 + (N2 - N1)*(240 - Hue) / 60;
else return N1;
}
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая модель HSV vs HLS
Сравнение компонентов
HSV_S
HSV_V
HLS_S
HLS_L
оригинал
Hue
(оттенок)
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая модель YUV [PAL]
Цветовая модель YUV
Y - яркостная составляющая, U и V - цветоразностные составляющие
оригинал
Y
U
V
UV
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая модель YUV [PAL]
Цветовая модель YUV
Y - яркостная составляющая, U и V - цветоразностные составляющие
Диапазоны значений в схемах RGB и YUV будут следующими:
R [0...255]
G [0...255]
B [0...255]
Y [0...255]
U [-112...112]
V [-157...157]
.
Перевод цветов из схемы RGB в YUV
Y 0.299 R 0.587 G 0.114 B
U 0.147 R 0.289 G 0.436 B
V 0.615 R 0.515 G 0.100 B
Перевод цветов из схемы YUV в RGB
R Y 1.14 V
G Y 0.395 U 0.581 V
B Y 2.032 U
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая модель YIQ [NTSC ]
Цветовая модель YIQ
Y - яркостная составляющая, I и Q - цветоразностные составляющие
Диапазоны значений в схемах RGB и YIQ будут следующими:
R [0...255]
G [0...255]
B [0...255]
Y [0...255]
I [-152...152]
Q [-134...134]
.
Получение значений каналов YIQ
Y = 0.299×R´ + 0.587×G´ + 0.114×B´
I = 0.596×R´ - 0.27×5G´ - 0.321×B´ = V×cos 33° - U×sin 33° = 0.736×(R´ - Y) - 0.268×(B´ - Y)
Q= 0.212×R´ - 0.523×G´ + 0.311×B´ = V×sin 33° + U×cos 33° = 0.478×(R´ - Y) + 0.413×(B´ - Y)
Y 0.299 0.587
R
0114
.
I
.
596
.
274
.
322
G .
Q 0.211 0.522 0.311 B
Преобразование YIQ RGB
R = Y + 0.956×I + 0.621×Q
G = Y - 0.272×I - 0.647×Q
B = Y - 1.107×I + 1.704×Q
0.623 Y
R 1 0.956
G 1 0.272 0.648 I .
B 1 1..105 0.705 Q
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая модель YCbCr YPbPr
Цветовая модель YCbCr YPbPr
Y - яркостная составляющая, Cr, Pr Cb, Pb - цветоразностные составляющие
Переход от RGB к YPbPr
Y Kr R (1 Kr Kb) G Kb B;
1
1
Pb
( B Y );
2 1 Kb
1
1
Pr
( R Y );
2 1 Kr
Выбор Kb и Kr зависит от того, какая
RGB-модель используется
По стандарту ITU-R BT.601
Kb = 0, 114; Kr = 0, 299.
В последнее время используют
стандарт ITU-R BT.709
Kb = 0, 0722; Kr = 0, 2126,
Переход от RGB к YCbCr
Kg 1 Kr Kb;
Y Ymin (Ymax Ymin ) ( Kr R Kg G Kb B);
Cmin Cmax Cmax Cmin
1
( Kr R Kg G (1 Kb) B);
2
2
1 Kb
C Cmax Cmax Cmin
1
Cr min
((1 Kr ) R Kg G Kb B);
2
2
1 Kr
Cb
В телевидении обычно
Ymin = 16, Ymax = 235,
Cmin = 16, Cmax = 240.
В стандарте сжатия
изображений JPEG :
Ymin = 0, Ymax = 255,
Cmin = 0, Cmax = 255.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая модель YCbCr (JPEG)
Формат обмена файлами JPEG позволяет использовать YCbCr, где
Y, CB и CR имеют полный 8-битный диапазон 0-255
Диапазоны значений в схемах RGB и YCbCr будут следующими:
R [0...255]
G [0...255]
B [0...255]
Y [0...255]
Cb [0...255]
Cr [0...255]
(JPEG)
Y [0...255]
Cb [-127…127]
Cr [-127...127]
(не нормированная форма)
Преобразование RGBYCbCr
Y 0.299 R 0.587 G 0.114 B
Cb 128 0.1168736 R 0.331264 G 0.5 B
Cr 128 0.5 R 0.418688 G 0.081312 B
0.5866
0.1145 R
Y 0.2989
Cb 0.1688 0.33124 0.5000 G .
Cr 0.5000
0.4184 0.0816 B
Преобразование YCbCr RGB
R Y 1.402 (Cr 128)
G Y 0.34414 (Cb 128) 0.71414 (Cr 128)
B Y 1.772 (Cb 128)
R 1 0.0000 1.4022 Y
G 1 0.3456 0.7145 Cb .
B 1 1.7710 0.0000 Cr
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Обработка изображений:
Поэлементная обработка
Работа с гистограммами
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Обработка изображений
Семейство методов и задач, где входной и выходной
информацией являются изображения.
Примеры :
• Улучшение качества изображения
• Устранение шума в изображениях
• Усиления полезной и подавления нежелательной (в контексте
конкретной задачи) информации
• Совмещение изображений
• Сегментация изображений
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Типы обработок изображений
Операция
Характеристика
Выходное значение по заданным
координатам зависит только от
поэлементная
входного значения в тех же
координатах.
сложность
constant
Выходное значение по заданным
координатам зависит от входных
значений некоторой окрестности от
заданных координат
P2
Выходное значение по заданным
Глобальная координатам зависит от всех
входных значений на изображении
N2
Локальная
!!! Сложность определяется количеством операций с пикселями
Размер изображения = N×N;
Окрестность соседей = P×P.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Типы обработок изображений
Гистограмма изображения
Гистограмма изображения (иногда: график уровней или
просто уровни) — гистограмма уровней яркости изображения
(суммарная, или разделённая по цветовым каналам).
Процедура формирования гистограммы
1. Подсчитывается количество точек каждого цвета и заносится в
массив.
2. Рассчитывается коэффициент масштабирования для вывода
гистограммы на экран
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Линейная коррекция
Изменение яркости
оригинал
Малая яркость
Высокая яркость
Добавление к значению яркости каждого пикселя
фиксированного коэффициента коррекции позволяет
повысить яркость изображения
I new I old I corr
Вычитание фиксированного коэффициента коррекции от
значения яркости каждого пикселя позволяет снизить
уровень яркости изображения
I new I old I corr
!!!: при каждом рассчете необходимо следить чтобы значение не вышло за
установленные рамки (пример 0..255)
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Инвертирование, бинаризация
Бинаризация - это преобразование изображения к двухцветному (чёрнобелому). Бинаризация производится следующим образом:
1. выбирается значение порога, относительно которого будет произведена бинаризация.
2. все значения пикселей исходного изображения, лежащие ниже этого порога,
превращаются в основной (чёрный) цвет, а лежащие выше - в цвет фона (белый цвет).
Инвертирование - это замена значения яркости каждого пикселя на его
дополнение до предельно допустимого значения
Пример дополнение до 255 (расчётная формула: Ynew = 255 – Yold)
Оригинал
Инвертированное
изображение
Бинаризованное
изображение
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Линейная коррекция
Изменение контраста
Контраст — это ширина динамического диапазона изображения, который можно
наглядно представить в виде ширины гистограмм .
x xmin
y
( y max y min ) y min
xmax xmin
y (k ( x 127.5)) 127.5
Коррекция с учетом коэффициента
контрастности k относительно
центра диапазона [0..255]
X – значение спектра пикселя оригинального изображения
Y - значение спектра пикселя выходного изображения
Xmin and Xmax – минимальные и максимальные значение спектра пикселя оригинального изображения
Ymin and Ymax – желаемые значения (минимальные и максимальные значение спектра)
Оригинал
Заниженный
контраст
Повышенный
контраст
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Линейная коррекция
Компенсация узкого диапазона яркостей – линейное растяжение:
Линейная коррекция не всегда позволяет добиться желаемого результата!
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Нелинейная коррекция
Нелинейная компенсация недостаточной контрастности
Часто применяемые функции:
• Степенная
• Изначальная цель – коррекция для правильного
отображения на мониторе.
y c x
• Логарифмическая
• Цель – сжатие динамического диапазона при визуализации
данных
y c log(1 x)
Степенное преобразование
Гамма-коррекция
Гамма-коррекция
Изначальная цель – коррекция для правильного отображения на
мониторе. Так называют преобразование вида:
y c x
y c ( x r )
1
x
y 255
255
Графики функции f -1(y)
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Нелинейная коррекция
График корректирующей
функции
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Нелинейная коррекция
Пример
График функции коррекции
Компенсация разности освещения
(пример)
Компенсация разности освещения
Идея:
Формирование изображения:
I (i, j ) l (i, j ) f (i, j )
Плавные изменения яркости относятся к освещению,
резкие - к объектам.
объект f (i, j )
освещение
l (i, j )
Изображение
освещенного
объекта I (i, j )
Выравнивание освещения
• Алгоритм
– Получить приближенное изображение освещения
путем низочастотной фильтрации
l(i, j ) I (i, j ) G
– Восстановить изображение по формуле
I (i, j )
f (i, j )
l (i, j )
Выравнивание освещения
(пример)
Цветовая коррекция
изображений
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая коррекция изображений
Изменение цветового баланса
• Изменение цветового баланса
– Компенсация:
• Неверного цветовосприятия камеры
• Цветного освещения
– Создание эффектов (Старое кино, выцветшее фото и т.п.)
к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич © 2015
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
Оригинал
David Peters, producer, and representatives of the IA, The International Alliance of Theatrical Stage Employees,
Moving Picture Technicians, Artists and Allied Crafts, on the set of Frozen Impact (PorchLight Entertainment, 2003).
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
red =2
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
Оригинал
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
red =0.5
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
Оригинал
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
green =2
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
Оригинал
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
green =0.5
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
Оригинал
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
blue =2
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
Оригинал
Цветовая коррекция изображений
Гамма-коррекция цветовых каналов
blue =0.5
Цветовая коррекция изображений
Изменение насыщенности цветов изображения
Оригинал
Цветовая коррекция изображений
Изменение насыщенности цветов изображения
saturation + 50%
Цветовая коррекция изображений
Изменение насыщенности цветов изображения
Оригинал
Цветовая коррекция изображений
Изменение насыщенности цветов изображения
saturation - 50%
Цветовая коррекция изображений
Изменение оттенка цветного изображения
R→R
Y →Y
G→ G
C→C
B→B
M→ M
original
Цветовая коррекция изображений
Изменение оттенка цветного изображения
R→Y
Y →G
G→ C
C→B
B→M
M→ R
hue + 60°
Цветовая коррекция изображений
Изменение оттенка цветного изображения
R→G
Y →C
G→ B
C→M
B→R
M→ Y
hue + 120°
Цветовая коррекция изображений
Изменение оттенка цветного изображения
R→C
Y →B
G→ M
C→R
B→Y
M→ G
hue + 180°
Цветовая коррекция изображений
Изменение оттенка цветного изображения
R→B
Y →M
G→ R
C→Y
B→G
M→ C
hue + 240°
Цветовая коррекция изображений
Изменение оттенка цветного изображения
R→M
Y →R
G→ Y
C→G
B→C
M→ B
hue + 300°
Цветовая коррекция изображений
Изменение оттенка цветного изображения
R→R
Y →Y
G→ G
C→C
B→B
M→ M
hue + 360° =
original
Цветовая коррекция изображений
Метод (Идеология) «Серый мир»
Предположение:
– Сумма всех цветов на изображении естественной
сцены дает серый цвет;
Метод:
– Посчитать средние яркости по всем каналам:
1
1
1
R G B
R R( x, y); G G( x, y); B B( x, y); Avg
;
N
N
N
3
– Масштабировать яркости пикселей по следующим
коэффициентам:
Avg
Avg
Avg
Rnew Rold
; Gnew Gold
; Bnew Bold
;
R
G
B
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая коррекция изображений
Метод (Идеология) «Серый мир» Примеры
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая коррекция изображений
Метод (Идеология) «Серый мир» Примеры
Цветовая коррекция изображений
Метод (Идеология) «Идеальный отражатель»
• Предположение:
– Наиболее яркие области изображения относятся к
бликам на поверхностях, модель отражения которых
такова, что цвет блика = цвету освещения;
• Метод
– Обнаружить максимальные значения интенсивности по
каждому из каналов цветовой модели:
Rmax ,
Gmax , Bmax
– Произвести масштабирование интенсивности в каждом
канале для пикселей:
255
Rnew Rold
;
Rmax
255
Gnew Gold
;
Gmax
255
Bnew Bold
;
Bmax
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая коррекция изображений
Метод «Autolevels»
• Растяжение контрастности «Autolevels»
– Идея – растянуть интенсивности по каждому из каналов
на весь диапазон;
• Метод:
– Найти минимальные и максимальные значения
интенсивности по каждому из каналов цветовой модели:
Rmin ,
Rmax , Gmin , Gmax , Bmin ,
Bmax
– Преобразовать значения интенсивности каждого канала:
(255 0)
(255 0)
Rnew ( Rold Rmin )
; Gnew (Gold Gmin )
;
( Rmax Rmin )
(Gmax Gmin )
Bnew ( Bold
(255 0)
Bmin )
;
( Bmax Bmin )
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая коррекция изображений
Метод Растяжение контрастности «Autolevels» пример
Цветовая коррекция изображений
Метод Растяжение контрастности «Autolevels» пример
Оригинальное изображение
Обработанное изображение
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая коррекция изображений
Коррекция с опорным цветом
• Предположение
– Пользователь указывает цвет вручную;
• Источник:
– Априорные знания – «облака – белые»
– Хорошая фотография этой же сцены
• Метод
– Преобразовать по каждому из каналов цвета по
формуле:
Rdst
Rnew Rold
;
Rsrc
Gdst
Gnew Gold
;
Gsrc
Bdst
Bnew Bold
;
Bsrc
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цветовая коррекция изображений
Коррекция с опорным цветом пример
Виды шумов
Фильтрация изображений
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Источники шума
– неидеальное оборудование для захвата изображения (ТВ-тюнер,
видеокамера, сканер и т.п.);
– плохие условия съемки (например, сильные шумы, возникающие при
ночной фото/видеосъемке);
– помехи, возникающие при передаче по аналоговым каналам, т. е. наводки
от источников электромагнитных полей, собственные шумы активных
компонентов (усилителей) линии передачи;
– искажение данных при их передаче через цифровые каналы или
повреждение информации на носителе;
– неточности при выделении яркостного и цветоразностных сигналов из
аналогового композитного сигнала и т. п.;
– спекл-шум, возникающий на радиолокационных изображениях и
изображениях ультразвуковой диагностики, вызван энергетическими помехами
из-за беспорядочно распределенных отражателей сигнала, слишком мелких
для того, чтобы их могла отобразить система.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Классификация шума
По способу искажения
аддитивный шум,
мультипликативный шум,
импульсный шум
С точки зрения визуального восприятия
белый шум – сигнал, отсчеты которого не коррелируют друг с другом. Его
разновидностью является белый гауссовский шум.
импульсный шум – случайные изолированные точки на изображении,
значения которых значительно отличаются от значений окружающих их точек
(обычно возникает при передаче по аналоговым каналам)
цветные пятна – характерны для аналогового сигнала (к примеру,
присутствуют в видеоизображении, оцифрованного с носителя стандарта VHS
или аналогов);
биение пикселей – области, точки в которых имеют произвольное значение
в связи с ошибкой декодирования.
шум, вызываемый помехами в электросети;
вертикальные царапины (характерны для старых черно-белых
видеозаписей). Вертикальные царапины возникают при механическом
повреждении эмульсии на пленке.
Цифровой шум
Цифровой шум проявляется в виде случайным образом расположенных
элементов растра (точек), имеющих размеры близкие к размеру пикселя.
Цифровой шум отличается от изображения более светлым или тёмным
оттенком серого и цвета (яркостный шум - luminance noise) и/или по цвету
(хроматический шум - chrominance noise).
Цифровой шум придаёт фотографии неестественный вид — создаётся
ощущение, что на изображение наложена маска из точек различной яркости
и цвета. В особенности, цифровой шум портит восприятие однотонноокрашенных частей изображения (например голубого неба) и объёмное
восприятие объектов заднего плана, находящихся не в фокусе.
Величина шума — характеристика понятийная и мало информативная. Как
принято в электронике, говорить надо об отношении сигнал-шум.
Математический анализ цифрового шума выявляет нелинейную структуру в
фотографическом изображении. Наглядно можно сравнивать шум разных
матриц так: когда две парные тестовые фотографии после ресайза к одному
размеру имеют одинаково заметный шум, и при этом ИСО на одной больше
чем на другой.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Цифрово́й шум
На левой части изображения приведён фрагмент фотографии снятой при
неблагоприятных условиях (длинная выдержка, высокая чувствительность
ISO), шум хорошо заметен.
На правой части изображения — фрагмент фотографии снятой при
благоприятных условиях. Шум практически незаметен
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Подавление шумов
- Фильтры усреднение пикселей по соседям
вычисление среднего арифметического
вычисление среднего геометрического
вычисление среднего гармонического
вычисление среднего контрагорманического
- Фильтры основанные на порядковых статистиках
Медианные фильтры
фильтр максимума/минимума
Фильтр срединной точки
Фильтр усеченного среднего
- Линейные фильтры
Простые сглаживающие фильтры
Фильтр Гаусса
- Нелинейные фильтры
kuwahara Filter
2D Cleaner Filter by Jim Casaburi
Spatial Smoother by Ioura Batugowski
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Принцип линейных фильтров
(Свертка)
m
n
C new ( x, y) Ak ,l C old ( x m / 2 k , y n / 2 l )
k 0 l 0
Cnew , Cold – новые и старые значения пикселей изображения соответственно;
Ak,l – коэффициент, определяющий эффект, который накладывает фильтр;
m, n – константы, задающие размер фильтра.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Принцип линейных фильтров
(Свертка)
(0,0) – Ядро обработки
A
k
A=
l
y
y
x
Cold
x
Cnew ( x, y )
Cnew
r1
r2
A
k r1 l r 2
k ,l
Cold ( x k , y l )
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Усреднение пикселей по соседям
вычисление среднего арифметического
1
f ( x, y )
g ( s, t )
m n ( s ,t )Sxy
Sxy - прямоугольную окрестность (множество координат точек изображения)
размерами тхn с центром в точке (х,у).
g (х,у) – точка оригинального изображения (искаженного изображения)
f (х,у) – точка обработанного изображения
При выполнение в линейной
форме коэффициенты
Ak,l = 1/mn
1
9
1
9
1
9
1
9
1
9
1
9
1
9
1
9
1
9
Ядро усредняющего фильтра 3×3
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Обработка плавающим окном: Пример
Оригинал
Усреднение 3×3
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Обработка плавающим окном: Пример
Оригинал
Усреднение 3×3
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Обработка плавающим окном: Пример
Оригинал
Усреднение 3×3
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Обработка плавающим окном: Пример
Оригинал
Усреднение 3×3
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Средне арифметический фильтр
Рекурсивная реализация
Алгоритм вычислений
для пиксела (x,y) с маской размерностью радиусов r1 r2
Если x=0 то
sumpx , y
r1
r2
C
k r1 l r 2
old
3 2 1 5 7 1
+
(x k, y l)
–
В противном случае
sumpx , y sumpx1, y
r2
C
l r 2
old
( x r1 1, y l )
r2
C
l r 2
old
( x r1, y l )
При выполнении подсчета необходимо проверять
выход за границы изображения
6
+
8
–
+
13
2 3 4
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Усреднение пикселей по соседям
вычисление среднего геометрического
f ( x, y ) g ( s , t )
( s ,t )S xy
1
mn
Sxy - прямоугольную окрестность (множество координат точек изображения)
размерами тхn с центром в точке (х,у).
g (х,у) – точка оригинального изображения (искаженного изображения)
f (х,у) – точка обработанного изображения
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Усреднение пикселей по соседям
вычисление среднего гармонического
m n
f ( x, y )
1
( s ,t )S xy g ( s, t )
Sxy - прямоугольную окрестность (множество координат точек изображения)
размерами тхn с центром в точке (х,у).
g (х,у) – точка оригинального изображения (искаженного изображения)
f (х,у) – точка обработанного изображения
Среднегармонический фильтр хорошо работает в случае униполярного
«белого» импульсного шума (т.е. когда значение шума соответствует
появлению белых точек на изображении), но не работает в случае
униполярного «черного» импульсного шума (когда значение шума
соответствует появлению черных точек). Этот фильтр также хорошо
работает для других типов шума, таких как гауссов шум.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Усреднение пикселей по соседям
вычисление среднего контрагорманического
g ( s, t )
f ( x, y )
Q 1
( s ,t )S xy
g ( s, t )
Q
( s ,t )S xy
Sxy – прямоугольную окрестность (множество координат точек изображения)
размерами тхn с центром в точке (х,у).
g (х,у) – точка оригинального изображения (искаженного изображения)
f (х,у) – точка обработанного изображения
Q – порядок фильтра
Этот фильтр хорошо приспособлен для уменьшения или почти полного
устранения импульсного шума. При положительных значениях Q фильтр
устраняет «черную» часть импульсного шума. При отрицательных
значениях Q фильтр устраняет «белую» часть импульсного шума. Обе
части шума не могут быть устранены одновременно.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Фильтр Гаусса
Функция распределения коэффициентов фильтра Гаусса в
одномерном пространстве принимает вид:
A( x)
1
2
e
x2
2
2
а в двумерном пространстве рассчитывается по формуле:
1
A( x, y )
e
2
2
x2 y2
2 2
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Фильтры основанные
на порядковых статистиках
Медианные фильтры
f ( x, y) medg ( s, t )
( s ,t )S xy
фильтр максимума/минимума
f ( x, y) max g ( s, t )
( s ,t )S xy
f ( x, y) min g ( s, t )
( s ,t )S xy
Sxy – прямоугольную окрестность (множество координат точек изображения)
размерами тхn с центром в точке (х,у).
g() – точки оригинального изображения (искаженного изображения)
f (х,у) – точка обработанного изображения
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Фильтры основанные
на порядковых статистиках
Фильтр срединной точки
1
f ( x, y) max {g ( s, t )} min {g ( s, t )}
( s ,t )S xy
2 ( s ,t )S xy
Фильтр усеченного среднего
1
f ( x, y )
m n d
g ( s, t )
( s ,t )S xy
r
Sxy – прямоугольную окрестность (множество координат точек изображения)
размерами тхn с центром в точке (х,у).
g() – точки оригинального изображения (искаженного изображения)
gr() – оставшиеся точки оригинального изображения после отсечения
f (х,у) – точка обработанного изображения
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Фильтры основанные
на порядковых статистиках
Медианный фильтр с весовыми коэффициентами
1
2
1
2
3
2
1
2
1
3
2
4
7
3
6
8
7
7
Весовые
коэффициенты
6
2, 2, 3, 3, 3, 3, 4, 6, 6, 7, 7, 7, 7, 7, 8
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Фильтры основанные
на порядковых статистиках
Медианные фильтры (сравнение)
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Фильтры основанные
на порядковых статистиках
Многоступенчатый медианный фильтр
R3
R2
R1
m5
R4
Многоступенчатый
медианный фильтр
обладает наилучшим
сохранением деталей
изображения.
mi = med( Ri ), i =1,2,3,4.
Result = med(m1,m2,m3,m4,m5 )
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Вариация ядра фильтров
Классическая реализация
Модификация Де Хааном
Другие возможные виды ядра фильтра
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Kuwahara Filter
ШАГ1 вычисление среднего арифметического значение и дисперсии для областей
a b c d с учётом расширения размерности
1 m n
As
Ak ,l
m n k 0 l 0
…………
1 m n
Ds
Dk ,l
m n k 0 l 0
ШАГ2 выявление области с наименьшей дисперсией
ШАГ3 назначение отклика как наименьшего среднего значения области с
наименьшей дисперсией
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Kuwahara Filter
пример
Оригинал
Kuwahara Filter 7×7
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Фильтр 2D Cleaner Filter by Jim Casaburi
для каждого пикселя изображения рассчитывается значение с учетом
окрестности по формуле:
Px , y
R Ch (Ts, r )
G Ch (Ts, r )
B Ch (Ts, r )
Px,y – пиксель, с окрестностью которого ведется работа; RGB – значения
каналов RGB спектра; Ts – значение порога, характеризующего возможность
обработки; r – ранг окрестности (вид окрестности квадрат со стороной 2·r+1);
Ch(Ts,r) – функция расчета значения канала в спектре
r
r
Sv(i, j )
Ch (Ts, r )
i r j r
r
r
Cc (i, j )
i r j r
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Фильтр 2D Cleaner Filter by Jim Casaburi
Sv(i,j) – функция отсечения значения спектра по порогу; Cc(i,j) – функция
указания пригодности значения спектра по порогу. Эти функции принимают
следующие значения:
sv i , j ,
Sv(i, j )
0 ,
1,
Сс (i, j )
0 ,
если sv i , j sv 0,0 Ts
если sv i , j sv 0,0 Ts
если svi , j sv 0,0 Ts
если svi , j sv 0,0 Ts
где svi,j – значение спектра рассматриваемого цветового канала;
Ts – значение порога.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Фильтр 2D Cleaner Filter by Jim Casaburi
(алгоритмическая реализация)
for (each pixel of the current video frame)
{
GetRGB (source_pixel, r, g, b);
tot_red = tot_green = tot_blue = 0;
count_red = count_green = count_blue = 0;
for (each pixel in the specified radius)
{
GetRGB (neighbour_pixel, r1, g1, b1);
if (abs(r1-r) < Threshold)
tot_red += r1; count_red ++;
if (abs(g1-g) < Threshold)
tot_green += g1; count_green ++;
if (abs(b1-b) < Threshold)
tot_blue += b1; count_blue ++;
}
destination_pixel = RGB (tot_red / count_red, tot_green / count_green , tot_blue /
count_blue );
}
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Spatial Smoother by Ioura Batugowski
(алгоритмическая реализация)
for (i=0; i<=511; ++i) square_tab[i] = (i-255) ^ 2;
for (each pixel of the current video frame)
{
GetRGB (source_pixel, r, g, b);
tot_red = tot_green = tot_blue = 0;
count = 0;
r_tab = square_tab[255 - r]; g_tab = square_tab[255 - g]; b_tab = square_tab[255 - b];
for (each pixel in the specified radius)
{
GetRGB (neighbour_pixel, r1, g1, b1);
square_error = (r_tab[r1] + g_tab[g1] + b_tab[b1]) >> Strength;
if (square_error > 16) square_error =16;
square_error = 16 - square_error ;
tot_red += r1* square_error;
tot_green += g1* square_error;
tot_blue += b1* square_error;
count += square_error;
}
destination_pixel = RGB (tot_red/count, tot_green / count , tot_blue / count);
}
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Технология Retinex
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Общие сведения
В зависимости от обстоятельств (характера отснятой сцены) применение
методов на основе технологии Retinex позволит:
Повысить четкость (так называемый Sharpening)
Путем компенсации размытости связанную с процессом
формирования изображения
Выравнивание цветовых характеристик изображения
Улучшение согласованности выходных данных, с учётом изменения
освещения
сжатия динамического диапазона
Виды алгоритмов на основе технологии Retinex:
Single Scale Retinex (SSR)
Multi-Scale Retinex (MSR)
Multi-Scale Retinex with Color Restoration (MSRCR)
Multi-Scale Retinex with canonical gain/offset
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Single Scale Retinex
Алгоритм SSR (Single-Scale Retinex) выравнивает освещенность изображения,
сохраняя локальный контраст в плохо и ярко освещенных областях.
Коррекция происходит по формуле:
R( x, y, Sigma) logI ( x, y) logI ( x, y) * G( x, y, sigma)
где
G — Гауссиан,
sigma — коэффициента размытия,
"*" — оператор свертки (применение фильтра).
После применения SSR, основная часть полученных пикселей принадлежит
диапазону [-1; 1], для визуализации изображения, значения необходимо
нормализовать по формуле:
I ( x, y) I ret ( x, y) 255 127.5
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Single Scale Retinex
sigma = 8
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Multi Scale Retinex
Алгоритм MSR (Multi-Scale Retinex) — это взвешенная сумма SSR с разными
коэффициентами размытия.
MSR = w1·SSR1 + w2·SSR2 +… + wn·SSRn
причем w1+w2+...+wn=1.
Обычно, на практике n=3
sigma = 8, 20, 40, 120
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Адаптивная
обработка изображений
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Адаптивная бинаризация
Необходима в случае неравномерной яркости фона/объекта.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Принцип адаптивной бинаризации
Необходима в случае неравномерной яркости фона/объекта.
1.
Для каждого пикселя изображения I(x, y):
1. В окрестности пикселя радиуса r высчитывается индивидуальный
для данного пикселя порог T;
2. Если I(x, y) > T + C , результат 1, иначе 0;
Варианты выбора T:
T = mean
T = median
T = (min + max) / 2
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Пример адаптивной бинаризации
Исходное
r=7, C=0
r=7, C=7
r=75, C=10
Адаптивная фильтрация
Необходима для улучшения фильтрации изображения с точки
зрения дальнейшей обработки
Виды адаптаций разнообразных фильтров
Адаптация структуры фильтра
Адаптация размера окна обработки
Адаптация коэффициентов фильтра обработки
Адаптация принципов обработки
*
Адаптации типа фильтрации
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Адаптация структуры фильтра
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Адаптация размера окна и
структуры фильтра
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Адаптация коэффициентов
фильтра обработки
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Критерии адаптивной фильтрации
Виды возможных критериев
Локальная пороговая разность обработки
Динамическая зависимость порога обработки от диапазона спектра
Многоступенчатый выбор порогов обработки
Трех-компонентный порог по динамическому диапазону спектра
Функциональная зависимость порога обработки от локального
диапазона в окрестности R точки обработки
Функциональная зависимость порога обработки от системы
уравнений коррекции в окрестности R точки обработки
Секционное распределение порога обработки по изображению
Объектное распределение порога обработки по изображению
*
Условный пороговый оператор
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Адаптация коэффициентов
фильтра Гаусса
Шаг 1. Проверка на применимость коэффициентов для локальных условий
обработки
Шаг 2. Снижение или обнуление коэффициентов не подпадающих под
локальные условия
Шаг 3. Расчет отклика фильтра Гаусса
Шаг 4. Коррекция отклика фильтра в соответствии с коэффициентом коррекции
вычисляемого по формуле по формуле:
Kkor
1
r
r
Kgauss m,n
m r n r
где Kkor – коэффициент коррекции; m, n – переменные размерности по
горизонтали и вертикали; r – радиус маски фильтра; Kgaussm,n – значение
коэффициента для элемента (m,n) области маски фильтра.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Адаптивная медианная фильтрация
Zmin — минимальное значение яркости в окрестности S;
Zmax — максимальное значение яркости в S;
Zmed — медиана значений яркости в S;
Zxy — значение яркости в точке (х,у)
Smax — максимальный допустимый размер S.
Алгоритм адаптивной медианной фильтрации состоит из двух ветвей,
обозначенных ниже как ветвь А и ветвь Б, и его действие заключается в
следующем.
Ветвь А:
А1 = Zmed - Zmin
А2 = Zmed — Zmax
если А1 > 0 и А2 < 0, перейти к ветви Б; иначе увеличить размер окрестности;
если размер окрестности <= Smax повторить ветвь А; иначе результат равен Zxy
Ветвь Б:
В1 = Zxy - Zmin
В2 = Zxy - Zmax
если В1 > 0 и B2 < 0, результат равен Zxy иначе результат равен Zmed
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич
Модифицированная Адаптивная
медианная фильтрация
Шаг 1.
Считывание данных из окна обработки (маски фильтра).
Шаг 2.
Изменение структуры на основе динамического порога
1 3N 3N
T ( x, y )
I (i, j ) I ( x, y ) 1.2
9 N i j
Шаг 3. Упорядочивание значений пикселей, покрываемых новой маской
фильтра.
Шаг 4. Если идет 2х кратное превышение порога то проводим одномерную
фильтрацию Гаусса для элементов в радиусе (N-1)/2 от центрального элемента.
© к.т.н. доцент каф. ИВТ Зотин Александр Геннадьевич