主要内容

伯斯汀特波兰特

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

描述

实例

B= burstinterpolant (imds,tforms,规模)创建一个高分辨率的图像,B从一组低分辨率突发模式图像存储为图像数据存储对象,imds规模指定高分辨率图像的放大率值B规模乘以输入图像的大小。

实例

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

例子

全部折叠

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

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

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

imds=图像数据存储(setDir,“FileExtensions”, {“使用”});

将图像显示为蒙太奇。

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

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

计算几何变换参数

为了计算几何变换参数,使用RGB2亮度突发模式亮度图像存储为图像数据存储对象。

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

将第一个亮度图像读入工作区,并使用它作为估计几何变换的参考图像。

refImg=读取(IMD转换);

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

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

使用查找图像数据存储对象中存储的图像总数数量函数。

numImages = numpartitions (imd);

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

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

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

idx = 1;hasdata(imdsTransformed) movingImg = read(imdsTransformed);tforms (idx) = imregtform (refImg movingImg,“刚性”,优化器,度量);idx=idx+1;终止

构造高分辨率图像

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

规模= 4;

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

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

显示高分辨率图像。

图(“窗口状态”,“最大化”(B)标题(“高分辨率图像”)

图中包含一个轴对象。标题为“High-Resolution Image”的axis对象包含一个类型为Image的对象。

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

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

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

outputDim=[大小(B,1)大小(B,2)]
outputDim =1×2644 744

将包含低分辨率突发模式图像的称重传感器阵列数据输入工作区。输入图像为单峰图像和二维RGB图像。

装载(“LRData”)

以蒙太奇的方式显示单元格数组数据中的图像。

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

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

计算几何变换参数

为了计算几何变换参数,使用RGB2亮度函数。

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

将第一个亮度图像读入工作区,并使用它作为估计几何变换的参考图像。

refImg=imagesT{1};

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

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

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

numImages=长度(图像);

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

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

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

对于i=2:length(images)movingImg=imagesT{i};tforms(i-1)=imregtform(refImg,movingImg,“刚性”,优化器,度量);终止

构造高分辨率图像

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

规模= 3;

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

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

显示高分辨率图像。

图2(B);标题(“高分辨率图像”)

图中包含一个轴对象。标题为“High-Resolution Image”的axis对象包含一个类型为Image的对象。

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

Img=图像{1};inputDim=[大小(Img,1)大小(Img,2)]
inputDim =1×2154 265

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

ouputDim=[大小(B,1)大小(B,2)]
乌普丁=1×2462 795

输入参数

全部折叠

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

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

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

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

数据类型:仅有一个的||uint8|uint16

输入图像,指定为K-by-1细胞阵列。K存储在单元格数组中的输入图像数。所有输入图像的大小必须相同。

数据类型:仅有一个的||uint8|uint16

转换参数,指定为仿射2D大小的对象数组(K-1) -by-1或1-by-(K1)。K是输入图像的数量吗imds图片

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

数据类型:仅有一个的||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

高分辨率图像,作为二维灰度图像或二维RGB图像返回。B与输入图像具有相同的数据类型。的大小B价值是多少规模乘以输入中图像的大小imds图片

例如,我们L价值规模,M——- - - - - -N为低分辨率突发模式图像的大小。然后,为高分辨率图像的大小毫升——- - - - - -

提示

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

  • 计算输入参数优化器米制的imregtform使用imregconfig函数。优化器必须是一个规则梯度下降对象和米制的必须是一个均方对象。

  • 要改进高分辨率输出,可以修改的输入参数值规则梯度下降中的优化器对象imregtform.有关这些修改的详细信息,请参阅规则梯度下降

算法

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

笔记

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

参考文献

[1] 唐纳德·谢泼德,“不规则间隔数据的二维插值函数”,年1968年第23届ACM全国会议论文集, 517-524. 纽约州纽约:ACM,1968年。

在R2019a中引入