burstinterpolant

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

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

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

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

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

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

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

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

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

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

refImg = read(imdsTransformed);

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

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

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

numImages = numpartitions(imds);

Создайте массив 2D объекта аффинного преобразования сохранить 2D аффинные преобразования каждого изображения легкости пакетного режима с низкой разрешающей способностью, исключая ссылочное изображение. Определите номер строк в массиве преобразования как общее количество изображений в объекте 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')

Считайте изображение 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

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

load('LRData')

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

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

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

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

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

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

refImg = imagesT{1};

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

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

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

numImages = length(images);

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

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')

Считайте изображение 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 изображений должны быть 2D полутоновыми изображениями размера m-by-n или 2D изображения RGB размера m-by-n-by-3.

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

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

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

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

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

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

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

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

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

свернуть все

Изображение с высоким разрешением, возвращенное как 2D полутоновое изображение или 2D изображение 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.

Алгоритмы

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

Примечание

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

Ссылки

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

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

| | |

Введенный в R2019a