camresponse

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

Синтаксис

crf = camresponse(files)
crf = camresponse(imds)
crf = camresponse(___,'ExposureTimes',expTimes)

Описание

пример

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

Для просмотра документации необходимо авторизоваться на сайте