主要内容

burstinterpolant

从一组低分辨率的突发模式图像创建高分辨率图像

描述

例子

B= burstinterpolant (洛桑国际管理发展学院tforms规模创建高分辨率图像,B从一组低分辨率的突发模式图像存储为一个ImageDatastore对象,洛桑国际管理发展学院规模指定高分辨率图像的放大值。的大小B规模乘以输入图像的大小。

例子

B= burstinterpolant (图片tforms规模创建高分辨率图像,B从存储在单元阵列中的一组低分辨率突发模式图像中提取图片.的大小B规模乘以输入图像的大小。

例子

全部折叠

指定将作为图像数据存储对象存储的低分辨率突发模式图像的位置。输入图像为二维RGB图像。

setDir = fullfile (toolboxdir (“图片”),“imdata”“笔记本”);

使用imageDatastore函数读取和存储低分辨率突发模式图像作为图像数据存储对象。

imd = imageDatastore (setDir,“FileExtensions”,{“使用”});

显示图像作为蒙太奇。

蒙太奇(imd)标题(“一组低分辨率突发模式图像”

图包含一个坐标轴对象。标题为Set of Low-Resolution Burst Mode Images的轴对象包含一个图像类型的对象。

计算几何变换参数

将所有RGB图像转换为亮度图像,计算几何变换参数rgb2lightness函数。突发模式亮度图像作为图像数据存储对象存储。

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

将第一张亮度图像读入工作空间,并将其作为估计几何变换的参考图像。

refImg =阅读(imdsTransformed);

利用,得到突发模式亮度图像配准所需的最优配置参数imregconfig函数。将图像捕获方式指定为“monomodal”

(优化器,度量)= imregconfig (“monomodal”);

使用的方法求在图像数据存储对象中存储的图像总数numpartitions函数。

numImages = numpartitions (imd);

创建一个二维仿射变换对象数组,存储每个低分辨率突发模式亮度图像的二维仿射变换,不包含参考图像。将转换数组中的行数设置为图像数据存储对象中的图像总数减去1。

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

使用imregtform函数估计每个低分辨率突发模式亮度图像相对于参考图像的刚性几何变换。

idx = 1;hasdata(imdtransform) movingImg = read(imdtransform);tforms (idx) = imregtform (refImg movingImg,“刚性”优化器,指标);Idx = 1;结束

构建高分辨率图像

指定生成高分辨率图像的比例因子。

规模= 4;

从一组低分辨率的突发模式RGB图像创建高分辨率图像。指定变换参数,稳健性估计高分辨率像素值。

B = burstinterpolant (imd、tforms、规模);

显示高分辨率图像。

图(“WindowState”“最大化”B .标题;标题;的高分辨率图像

图包含一个坐标轴对象。标题为高分辨率图像的轴对象包含一个图像类型的对象。

从图像数据存储中读取一个低分辨率的突发模式RGB图像并显示其大小。

Img =阅读(imd);inputDim = [size(Img,1) size(Img,2)]
inputDim =1×1161 186

显示高分辨率图像的大小。因为比例因子为4,所以高分辨率图像的大小是低分辨率突发模式RGB图像大小的4倍。

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

负载传感器阵列数据包含低分辨率突发模式图像进入工作空间。输入图像为单模和二维RGB图像。

负载(“LRData”

显示图像在单元格阵列数据作为蒙太奇。

蒙太奇(图片,“大小”(2 - 4),“写成BackgroundColor”, (1 1 1));标题(“一组低分辨率突发模式图像”

图包含一个坐标轴对象。标题为Set of Low-Resolution Burst Mode Images的轴对象包含一个图像类型的对象。

计算几何变换参数

将所有RGB图像转换为亮度图像,计算几何变换参数rgb2lightness函数。

形象= cellfun (@rgb2lightness、图像“UniformOutput”、假);

将第一张亮度图像读入工作空间,并将其作为估计几何变换的参考图像。

refImg =图像{1};

利用,得到突发模式亮度图像配准所需的最优配置参数imregconfig.将图像捕获方式指定为“monomodal”

(优化器,度量)= imregconfig (“monomodal”);

查找存储在单元格数组中的图像总数。

numImages =长度(图片);

创建一个二维仿射变换对象数组,存储每个低分辨率突发模式亮度图像的二维仿射变换,不包含参考图像。将转换数组中的行数设置为单元格数组中的图像总数减去1。

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

使用imregtform函数估计每个低分辨率突发模式亮度图像相对于参考图像的刚性几何变换。

i= 2:长度(图像)movingImg = imagesT{i};tforms(张)= imregtform (refImg movingImg,“刚性”优化器,指标);结束

构建高分辨率图像

指定生成高分辨率图像的比例因子。

规模= 3;

从一组低分辨率突发模式RGB图像构建高分辨率图像。指定变换参数,稳健性估计高分辨率像素值。

B = burstinterpolant(图像、tforms规模);

显示高分辨率图像。

图imshow (B);标题(的高分辨率图像

图包含一个坐标轴对象。标题为高分辨率图像的轴对象包含一个图像类型的对象。

从单元格阵列中读取一个低分辨率的突发模式RGB图像并显示其大小。

Img ={1}图像;inputDim = [size(Img,1) size(Img,2)]
inputDim =1×1154 265

显示高分辨率图像的大小。因为比例因子为3,所以高分辨率图像的大小是低分辨率突发模式图像的3倍。

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

输入参数

全部折叠

输入图像数据存储,指定为ImageDatastore对象。输入图像数据存储包含用于创建高分辨率图像输出的多个低分辨率突发模式图像。

  • 输入图像数据存储中的图像必须是大小为二维灰度图像——- - - - - -n或大小的二维RGB图像——- - - - - -n3。

  • 输入图像数据存储中的所有图像必须具有相同的大小和数据类型。

  • 输入图像数据存储中的图像数量必须大于或等于2。

数据类型:||uint8|uint16

输入图像,指定为k1单元阵列。k是存储在单元格数组中的输入图像的数量。所有的输入图像必须具有相同的大小。

数据类型:||uint8|uint16

转换参数,指定为affine2d对象数组的大小(k1) 1或1 - (k1)。k是输入图像的数量吗洛桑国际管理发展学院图片

调整因子,指定为大于或等于1的标量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

高分辨率图像,返回为二维灰度图像或二维RGB图像。B与输入图像的数据类型相同。的大小B规模乘以输入图像的大小洛桑国际管理发展学院图片

例如,我们l成为…的价值规模,——- - - - - -n为低分辨率突发模式图像的大小。那么,高分辨率图像的大小为毫升——- - - - - -

提示

  • 计算tforms对于每个输入图像,使用imregtform函数。输入中的第一个图像可以用作估计刚性几何变换(仅旋转和平移)的参考图像。

  • 计算输入参数优化器度规imregtform使用imregconfig函数。优化器必须是一个RegularStepGradientDescent对象和度规必须是一个均方对象。

  • 要提高高分辨率输出,可以修改的输入参数值RegularStepGradientDescent优化器对象imregtform.有关这些修改的详细信息,请参见的属性RegularStepGradientDescent

算法

burstinterpolant函数采用逆距离加权法[1]从一组低分辨率的突发模式图像生成高分辨率图像。该函数从基于变换参数选择的低分辨率突发模式图像中的一组像素中预测出高分辨率像素值。转换参数的使用tforms使得任何像素选择健壮的刚性几何变换(旋转和翻译)。

请注意

  • 如果输入图像是二维RGB图像,估计tforms从亮度部分。你可以使用rgb2lightness函数从RGB颜色值计算亮度值。

参考文献

[1]谢泼德,唐纳德。“不规则空间数据的二维插值函数”,在1968年第二十三届美国计算机协会全国会议论文集, 517 - 524。纽约,纽约:ACM, 1968年。

介绍了R2019a