burstinterpolant

Создайте изображение высокого разрешения из набора изображений пакетного режима низкого разрешения

Описание

пример

B = burstinterpolant(imds,tforms,scale) создает изображение высокого разрешения, B из набора изображений пакетного режима с низким разрешением, сохраненных в виде ImageDatastore объект, imds. scale задает значение увеличения для изображения с высоким разрешением. Размер B является scale умножить размер входа изображений.

пример

B = burstinterpolant(images,tforms,scale) создает изображение высокого разрешения, B из набора изображений пакетного режима с низким разрешением, сохраненных в массиве ячеек images. Размер B является scale умножить размер входа изображений.

Примеры

свернуть все

Укажите местоположение изображений в режиме пачек с низким разрешением, которые будут храниться в качестве объекта image datastore. Входные изображения представляют 2-D изображения RGB.

setDir = fullfile(toolboxdir('images'),'imdata','notebook');

Используйте imageDatastore функция для чтения и хранения изображений в пакетном режиме с низким разрешением в качестве объекта image datastore.

imds = imageDatastore(setDir,'FileExtensions',{'.png'});

Отобразите изображения как монтаж.

montage(imds)
title('Set of Low-Resolution Burst Mode Images')

Figure contains an axes. The axes with title Set of Low-Resolution Burst Mode Images contains an object of type image.

Вычисление параметров геометрического преобразования

Чтобы вычислить параметры геометрического преобразования, преобразуйте все изображения RGB в изображения легкости с помощью rgb2lightness функция. Изображения легкости в пакетном режиме хранятся как объект image datastore.

imdsTransformed = transform(imds,@(x) rgb2lightness(x));

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

refImg = read(imdsTransformed);

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

[optimizer,metric] = imregconfig('monomodal');

Найдите общее количество изображений, хранимых в объекте image datastore при помощи numpartitions функция.

numImages = numpartitions(imds);

Создайте массив объектов преобразования 2-D для хранения 2-D преобразования каждого изображения легкости в пакетном режиме с низким разрешением, исключая ссылку изображение. Установите количество строк в массиве преобразований как общее количество изображений в объекте image datastore минус один.

tforms = repmat(affine2d(),numImages-1,1);

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

idx = 1;
while hasdata(imdsTransformed)
    movingImg = read(imdsTransformed);
    tforms(idx) = imregtform(refImg,movingImg,'rigid',optimizer,metric);
    idx = idx + 1;
end

Создание изображения с высоким разрешением

Задайте коэффициент шкалы для генерации изображения с высоким разрешением.

scale = 4;

Создайте изображение высокого разрешения из набора изображений RGB в режиме пакетной передачи с низким разрешением. Задайте параметр преобразования, чтобы надежно оценить пиксельные значения высокого разрешения.

B = burstinterpolant(imds,tforms,scale);

Отобразите изображение высокого разрешения.

figure('WindowState','maximized')
imshow(B)
title ('High-Resolution Image')

Figure contains an axes. The axes with title High-Resolution Image contains an object of type image.

Считывайте изображение RGB в режиме пакетной передачи с низким разрешением из datastore и отображайте его размер.

Img = read(imds);
inputDim = [size(Img,1) size(Img,2)]
inputDim = 1×2

   161   186

Отобразите размер изображения с высоким разрешением. Поскольку масштабный коэффициент равен 4, размер изображения с высоким разрешением в 4 раза превышает размер изображений RGB в режиме пакетной передачи с низким разрешением.

outputDim = [size(B,1) size(B,2)]
outputDim = 1×2

   644   744

Загрузите данные массива ячеек, содержащие изображение режима пакета низкого разрешения, в рабочую область. Входные изображения являются мономодальными и 2-D изображениями RGB.

load('LRData')

Отобразите изображения в данных массива ячеек как монтаж.

montage(images,'Size',[2 4],'BackgroundColor',[1 1 1]);
title('Set of Low-Resolution Burst Mode Images')

Figure contains an axes. The axes with title Set of Low-Resolution Burst Mode Images contains an object of type image.

Вычисление параметров геометрического преобразования

Чтобы вычислить параметры геометрического преобразования, преобразуйте все изображения RGB в изображения легкости с помощью rgb2lightness функция.

imagesT = cellfun(@rgb2lightness,images,'UniformOutput',false);

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

refImg = imagesT{1};

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

[optimizer,metric] = imregconfig('monomodal');

Найдите общее количество изображений, хранимых в массиве ячеек.

numImages = length(images);

Создайте массив объектов преобразования 2-D для хранения 2-D преобразования каждого изображения легкости в пакетном режиме с низким разрешением, исключая ссылку изображение. Установите количество строк в массиве преобразований как общее количество изображений в массиве ячеек минус один.

tforms = repmat(affine2d(),numImages-1,1);

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

for i= 2:length(images)
    movingImg = imagesT{i};
    tforms(i-1) = imregtform(refImg,movingImg,'rigid',optimizer,metric);
end

Создание изображения с высоким разрешением

Задайте коэффициент шкалы для генерации изображения с высоким разрешением.

scale = 3;

Создайте изображение высокого разрешения из набора изображений RGB в режиме пакетной передачи с низким разрешением. Задайте параметр преобразования, чтобы надежно оценить пиксельные значения высокого разрешения.

B = burstinterpolant(images,tforms,scale);

Отобразите изображение высокого разрешения.

figure
imshow(B); 
title ('High-Resolution Image')

Figure contains an axes. The axes with title High-Resolution Image contains an object of type image.

Считайте изображение RGB в режиме пакетной передачи с низким разрешением из массива ячеек и отобразите его размер.

Img = images{1};
inputDim = [size(Img,1) size(Img,2)]
inputDim = 1×2

   154   265

Отобразите размер изображения с высоким разрешением. Поскольку масштабный коэффициент равен 3, размер изображения с высоким разрешением в 3 раза превышает размер изображений с низким разрешением в пакетном режиме.

ouputDim = [size(B,1) size(B,2)]
ouputDim = 1×2

   462   795

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

свернуть все

Вход изображения datastore, заданный как ImageDatastore объект. Вход datastore изображения содержит несколько изображений в режиме пачек с низким разрешением, используемых для создания выхода изображений с высоким разрешением.

  • Изображения в вход datastore изображения должны быть 2-D полутоновыми изображениями размера m -by- n или 2-D RGB изображений размера m -by- n -by-3.

  • Все изображения в вход входных изображений должны иметь одинаковый размер и тип данных.

  • Количество изображений в хранилище datastore входного изображения должно быть больше или равно 2.

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

Входные изображения, заданные как массив ячеек k -by-1. k - количество входа изображений, хранящихся в массиве ячеек. Все входные изображения должны иметь одинаковый размер.

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

Параметр преобразования, заданный как affine2d Объектный массив размера (k -1) -на-1 или 1-by- (k -1). k - количество изображений во входе imds или images.

Коэффициент изменения размера, заданный как скаляр, больший или равный 1.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

свернуть все

Изображение высокого разрешения, возвращаемое как 2-D изображение полутонового цвета или 2-D изображение RGB. B имеет тот совпадающий тип данных, что и входные изображения. Размер B - значение scale умножить размер изображений во входных imds или images.

Для примера позвольте L быть значением scaleи m -by n быть размером изображений в режиме пакетной передачи с низким разрешением. Затем размер изображения с высоким разрешением составляет mL -by - nL.

Совет

  • Вычислите tforms относительно каждого входного изображения используя imregtform функция. Первое изображение во входе может использоваться в качестве ссылки изображения для оценки твердых геометрических преобразований (только повороты и перемещения).

  • Вычислите входные параметры optimizer и metric в imregtform использование imregconfig функция. optimizer должен быть RegularStepGradientDescent объект и metric должен быть MeanSquares объект.

  • Чтобы улучшить выход с высоким разрешением, можно изменить значение входного параметра RegularStepGradientDescent объект оптимизатора в imregtform. Для получения дополнительной информации об этих изменениях см. Свойства RegularStepGradientDescent.

Алгоритмы

The burstinterpolant функция использует метод обратного взвешивания расстояний [1], чтобы сгенерировать изображение с высоким разрешением из набора изображений пакетного режима с низким разрешением. Функция предсказывает значение пикселя высокого разрешения из набора пикселей в изображениях пакетного режима низкого разрешения, выбранных на основе параметра преобразования. Использование параметра преобразования tforms делает выбор пикселя устойчивым к любым жестким геометрическим преобразованиям (только повороты и перемещения).

Примечание

  • Если входные изображения являются 2-D RGB-изображений, оцените tforms от компонента легкости. Вы можете использовать rgb2lightness функция для вычисления значений яркости из значений цвета RGB.

Ссылки

[1] Шепард, Дональд. «Двухмерная интерполяционная функция для нерегулярно разнесенных данных», В трудах 23-й Национальной конференции ACM 1968 года, 517-524. Нью-Йорк, Нью-Йорк: ACM, 1968.

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