camresponse

Оцените функцию отклика камеры

Описание

пример

crf = camresponse(files) оценивает функцию отклика камеры от набора пространственно зарегистрированных изображений низкого динамического диапазона (LDR), перечисленных в files.

пример

crf = camresponse(imds) оценивает функцию отклика камеры от ряда пространственно зарегистрированных изображений LDR, сохраненных как ImageDatastore объект, imds.

пример

crf = camresponse(___,'ExposureTimes',expTimes) задает выдержку для каждого изображения во входном наборе с помощью пары "имя-значение". Можно задать эту пару "имя-значение" в дополнение к входному параметру от любого из предыдущих синтаксисов.

Примеры

свернуть все

Оцените функцию отклика камеры от набора шести цветных изображений низкого динамического диапазона (LDR) и их времена воздействия, считанные из метаданных EXIF. Постройте предполагаемые выходные значения как кривую.

Укажите, что набор шесть пространственно указал изображения LDR. Эти изображения LDR имеют те же значения f-остановки и различные времена воздействия.

files = ["office_1.jpg","office_2.jpg","office_3.jpg",...
         "office_4.jpg","office_5.jpg","office_6.jpg"];

Оцените функцию отклика камеры от набора заданных изображений.

crf = camresponse(files);

Укажите диапазон уровней яркости во входных изображениях.

range = 0:length(crf)-1;

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

figure,
hold on
plot(crf(:,1),range,'--r','LineWidth',2);
plot(crf(:,2),range,'-.g','LineWidth',2);
plot(crf(:,3),range,'-.b','LineWidth',2);
xlabel('Log-Exposure');
ylabel('Image Intensity');
title('Camera Response Function');
grid on
axis('tight')
legend('R-component','G-component','B-component','Location','southeast')

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

Читайте набор шесть пространственно указал изображения LDR в рабочую область. Создайте ImageDatastore объект, содержащий эти изображения..

setDir = fullfile(toolboxdir('images'),'imdata','office_*');
imds = imageDatastore(setDir);

Задайте выдержку для каждого изображения в ImageDatastore объект.

expTimes = [0.0333 0.1000 0.3333 0.6250 1.3000 4.0000];

При определении времен воздействия оцените функцию отклика камеры от изображений в datastore.

crf = camresponse(imds,'ExposureTimes',expTimes);

Укажите диапазон значений интенсивности во входных изображениях.

range = 0:length(crf)-1;

Постройте предполагаемую функцию отклика камеры для каждого из R, G, и компоненты цвета B. График показывает отношение между интенсивностью изображений и логарифмическим воздействием.

figure,
hold on
plot(crf(:,1),range,'--r','LineWidth',2);
plot(crf(:,2),range,'-.g','LineWidth',2);
plot(crf(:,3),range,'-.b','LineWidth',2);
xlabel('Log-Exposure');
ylabel('Image Intensity');
title('Camera Response Function');
grid on
axis('tight')
legend('R-component','G-component','B-component','Location','southeast')

Входные параметры

свернуть все

Набор пространственно зарегистрированных изображений LDR, заданных как массив строк или массив ячеек из символьных векторов. Эти изображения могут быть цветной или шкалой полутонов любой битовой глубины. Однако предпочтительная битовая глубина для изображений LDR равняется 8 или 16.

Типы данных: char | string | cell

Набор пространственно зарегистрированных изображений LDR, заданных как ImageDatastore объект. Эти изображения могут быть цветной или шкалой полутонов любой битовой глубины. Однако предпочтительная битовая глубина для изображений LDR равняется 8 или 16.

Выдержка входных изображений, заданных как числовой вектор положительных значений. k th элемент в векторе соответствует k th LDR изображение во входном наборе. Если вы задаете expTimes, функция заменяет метаданные воздействия EXIF.

Пример: camresponse(files,'ExposureTimes',[0.1 0.3 0.4]);

Типы данных: single | double

Выходные аргументы

свернуть все

Оценка функции отклика камеры, возвращенной как n-by-1 вектор для полутоновых изображений и n-by-3 матрица для цветных изображений. Функция отклика камеры сопоставляет значение логарифмического воздействия (сияние сцены) к уровням яркости во входных изображениях. Значение n 2bit depth. Например, если битовая глубина входного набора изображений равняется 8, то n 256.

Типы данных: double

Советы

  • Эта функция требует минимума двух изображений с различными временами воздействия. Большее число изображений дает к лучшей оценке crf за счет большего количества времени вычислений.

  • Входные файлы изображений в files и imds должен содержать Формат Файла обмена изображениями (EXIF) метаданные воздействия. Оценить crf значения, функция читает выдержку в метаданных EXIF. Если вы задаете expTimes, функция заменяет выдержку в метаданных EXIF.

Ссылки

[1] Debevec, P.E., и Дж. Малик. "Восстановление Карт Сияния Расширенного динамического диапазона из Фотографий". В SIGGRAPH ACM 2 008 классов, Статья № 31. Нью-Йорк, Нью-Йорк: ACM, 2008.

Смотрите также

| |

Введенный в R2019a