Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR5_Bronnikov_Kornilov.docx
Скачиваний:
0
Добавлен:
22.03.2026
Размер:
9.54 Mб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра ТВ

отчет

по лабораторной работе №5

по дисциплине «Основы телевидения и видеотехники»

Тема: ИЗУЧЕНИЕ МЕТОДА ЦВЕТОКОРРЕКЦИИ ЦИФРОВОЙ КАМЕРЫ И АНАЛИЗ ЕГО ЭФФЕКТИВНОСТИ

Студенты гр. 0182

Корнилов А.М.

Бронников Д.Д.

Преподаватель

Бахвалов М.В.

Санкт-Петербург

2023

Цель работы

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

Теоретические сведения

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

Рис. 1. Кривые смешения для человеческого глаза

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

Человек является трихроматом, то есть воспринимает видимый спектр излучения с помощью трех видов рецепторов. Исходя из трехстимульного представления о зрительной системе человека в качестве основных цветов для колориметрического определения цвета выбраны монохроматические красный, зеленый и синий с длинами волн 700 нм, 546.1 нм и 435.6 нм, соответственно.

Рис. 2. Локус с эллипсами Мак-Адама

Для учета особенностей зрительной системы человека был разработан ряд перцептуальных пространств. Наиболее удачным с точки зрения единообразия цветового восприятия считается разработанное специально для работы с перцептуальным критерием пространство L*a*b*.

Переход из цветового пространства XYZ в пространство CIE L*a*b* выполняется следующим образом:

где

.

Ошибка перехода:

.

Задача корректора состоит в том, чтобы приблизить спектральные свойства камеры к свойствам зрения человека. В рамках лабораторной работы мы будем использовать ColorChecker Macbeth (24 цвета).

Рис. 3. Вид тестовой таблицы ColorChecker Macbeth

Обработка результатов

Бронников, Камера № 2.

Рис. 4. Опорное изображение Рис. 5. Искаженное изображение

Рис. 6. Нормализованная Рис. 7. Цветовая мишень

спектральная чувствительность L, M, S после искажения

Случай, когда выбраны все 24 цвета на цветовой мишени:

Рис. 8. Изображение после коррекции (все 24 цвета на цветовой мишени)

Рис. 9. Коэффициенты (24 цвета) Рис. 10. Локус полной коррекции (24 цвета)

Рис. 11. Столбиковая диаграмма (24 цвета)

Случай, когда выбраны оптимальные цвета, обеспечивающие минимум цветовой ошибки:

Рис. 12. Изображение после коррекции Рис. 13. Цвета ручной корректировки

Рис. 14. Коэффициенты пересчёта Рис. 15. Локус ручной корректировки

Рис. 16. Столбиковая диаграмма

Расчет качества цветокоррекции (домашнее задание)

Опорный и скорректированный цвета в RGB пространстве камеры требуется сначала перевести в XYZ, а затем в L*a*b* цветовое пространство, в котором нужно рассчитать цветовую ошибку.

Для перехода из RGB-пространства камеры в XYZ-пространство воспользуемся следующей формулой:

При преобразовании XYZ -> L*a*b* значения возьмём равными 1, что соответствует равноэнергетическому белому свету.

№ строки

R_before

R_after

R_Ref

G_before

G_after

G_ref

B_before

B_after

B_ref

1

0.00254612

0.00691413

0.00518629

0

0.00613632

0.0297751

0

0.00604883

0.0295568

8

0.00303972

0.00790145

0.00556449

0

0.00712792

0.0318139

0.000303527

0.00699541

0.031896

Для расчёта возьмём две строчки, первую и восьмую:

Автоматизируем процесс расчета, реализовав формулы в Matlab.

clear all

ref = [0.00518629; 0.0297751; 0.0295568];

after = [0.00691413; 0.00613632; 0.00604883];

Matrix=[0.4124564 0.3575761 0.1804375;

0.2126729 0.7151522 0.0721750;

0.0193339 0.1191920 0.9503041];

xyz_ref=Matrix*ref;

xyz_after=Matrix*after;

if xyz_ref(1,1)>0.008856

fx_ref=xyz_ref(1,1)^(1/3);

else

fx_ref=(903.3*xyz_ref(1,1)+16)/116;

end

if xyz_ref(2,1)>0.008856

fy_ref=xyz_ref(2,1)^(1/3);

else

fy_ref=(903.3*xyz_ref(2,1)+16)/116;

end

if xyz_ref(3,1)>0.008856

fz_ref=xyz_ref(3,1)^(1/3);

else

fz_ref=(903.3*xyz_ref(3,1)+16)/116;

end

if xyz_after(1,1)>0.008856

fx_after=xyz_after(1,1)^(1/3);

else

fx_after=(903.3*xyz_after(1,1)+16)/116;

end

if xyz_after(2,1)>0.008856

fy_after=xyz_after(2,1)^(1/3);

else

fy_after=(903.3*xyz_after(2,1)+16)/116;

end

if xyz_after(3,1)>0.008856

fz_after=xyz_after(3,1)^(1/3);

else

fz_after=(903.3*xyz_after(3,1)+16)/116;

end

L_ref=116*fy_ref-16;

L_after=116*fy_after-16;

a_ref=500*(fx_ref-fy_ref);

a_after=500*(fx_after-fy_after);

b_ref=200*(fy_ref-fz_ref);

b_after=200*(fy_after-fz_after);

Error_after=sqrt((L_ref-L_after)^2+(a_ref-a_after)^2+(b_ref-b_after)^2);

В результате получим для первой строки:

Для второй:

ref = [0.00556449; 0.0318139; 0.031896];

after = [0.00790145; 0.00712792; 0.00699541];

Программа для расчёта средней ошибки по всем значениям из файла:

clear all

path(path, 'C:\Users\danya\OneDrive\Рабочий стол\LABS')

R_ref = xlsread('CHISLA.xlsx', 'C2:C541')';

G_ref = xlsread('CHISLA.xlsx', 'F2:F541')';

B_ref = xlsread('CHISLA.xlsx', 'I2:I541')';

R_after = xlsread('CHISLA.xlsx', 'B2:B541')';

G_after = xlsread('CHISLA.xlsx', 'E2:E541')';

B_after = xlsread('CHISLA.xlsx', 'H2:H541')';

ref = [R_ref; G_ref; B_ref];

after = [R_after; G_after; B_after];

Matrix=[2.61107 -0.684828 0.134581;

-0.460615 1.56275 -0.360073;

-1.14337 -0.564008 6.15508];

xyz_ref=Matrix*ref;

xyz_after=Matrix*after;

for i = 1:540

if xyz_ref(1,i)>0.008856

fx_ref(i) = xyz_ref(1,1)^(1/3);

else

fx_ref(i) = (903.3*xyz_ref(1,i)+16)/116;

end

if xyz_ref(2,i)>0.008856

fy_ref(i) = xyz_ref(2,i)^(1/3);

else

fy_ref(i) =(903.3*xyz_ref(2,i)+16)/116;

end

if xyz_ref(3,1)>0.008856

fz_ref(i) = xyz_ref(3,i)^(1/3);

else

fz_ref(i) = (903.3*xyz_ref(3,i)+16)/116;

end

if xyz_after(1,i)>0.008856

fx_after(i) = xyz_after(1,i)^(1/3);

else

fx_after(i) = (903.3*xyz_after(1,i)+16)/116;

end

if xyz_after(1,i)>0.008856

fy_after(i) = xyz_after(2,i)^(1/3);

else

fy_after(i) = (903.3*xyz_after(2,i)+16)/116;

end

if xyz_after(1,i)>0.008856

fz_after(i) = xyz_after(3,i)^(1/3);

else

fz_after(i) = (903.3*xyz_after(3,i)+16)/116;

end

L_ref(i) = 116*fy_ref(i)-16;

L_after(i) = 116*fy_after(i)-16;

a_ref(i) = 500*(fx_ref(i)- fy_ref(i));

a_after(i) = 500*(fx_after(i)- fy_after(i));

b_ref(i) = 200*(fy_ref(i)- fz_ref(i));

b_after(i) = 200*(fy_after(i)- fz_after(i));

Error_after(i)=sqrt((L_ref(i)- L_after(i))^2+(a_ref(i)- a_after(i))^2+(b_ref(i)- b_after(i))^2);

end

Error = mean(Error_after)

Средняя ошибка E = 108,92

Корнилов, камера NIKON DX1.

Рис. 17. Опорное изображение Рис. 18. Искаженное изображение

Рис. 19. Нормализованная Рис. 20. Цветовая мишень

спектральная чувствительность L, M, S после искажения

Случай, когда выбраны все 24 цвета на цветовой мишени:

Рис. 21 Изображение после коррекции (все 24 цвета на цветовой мишени)

Рис. 22 Коэффициенты (24 цвета) Рис. 23 Локус полной коррекции (24 цвета)

Рис. 24. Столбиковая диаграмма (24 цвета)

Случай, когда выбраны оптимальные цвета, обеспечивающие минимум цветовой ошибки:

Рис. 25. Изображение после коррекции Рис. 26. Цвета ручной корректировки

Рис. 27. Коэффициенты пересчёта Рис. 28. Локус ручной корректировки

Рис. 29. Столбиковая диаграмма

Соседние файлы в предмете Основы телевидения