主要内容

imwarp

几何变换应用到图像

描述

例子

B= imwarp (一个,tform)将数字转换、逻辑或分类图像一个根据几何变换tform。函数返回转换后的图像B

B= imwarp (一个,D)变换图像一个根据位移场D

(B,RB)= imwarp (一个,类风湿性关节炎,tform)指定的转换空间参考图像图像数据一个及其相关的空间引用对象类风湿性关节炎。指定的输出是空间参考图像图像数据B及其相关的空间引用对象RB

(___)= imwarp (___,插值函数)使用指定类型的插值。

例子

(___)= imwarp (___,名称=值)指定名称的参数控制几何变换的各个方面。

提示

如果输入转换tform没有定义一个变换,然后使用吗OutputView名称-值参数来加快转变。

例子

全部折叠

读取和显示一个灰度图像。

我= imread (“cameraman.tif”);imshow(我)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

创建一个二维仿射变换。

A = [1 0.5 0;0 1 0;0 0 1);tform = affinetform2d(一个);

应用到图像的转换。

J = imwarp(我tform);imshow (J)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

加载和显示三维核磁共振成像容积图像。

负载(“核磁共振”);mriVolume =挤压(D);volshow (mriVolume);

创建一个旋转的三维刚性变换对象周围的图像y设在。

θ= 22.5 [0 0];transl = (0 0 0);tform = rigidtform3d(θ,transl);

转换应用到图像和显示结果。

mriVolumeRotated = imwarp (mriVolume tform);volshow (mriVolumeRotated);

读取和显示一个图像。图像的空间范围,使轴可见。

一个= imread (“kobi.png”);= imresize (0.25);iptsetpref (“ImshowAxesVisible”,“上”)imshow (A)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

创建一个二维仿射变换。这个示例创建一个随机变换,由规模的因素范围[1.2,2.4],旋转了一个角度范围-45,45度,距离和水平翻译的范围(100、200)像素。

tform = randomAffine2d (“规模”[1.2,2.4],“XTranslation”(100 200),“旋转”,-45年,45);

创建三个不同的输出视图图像和转换。

centerOutput = affineOutputView(大小(A)、tform“BoundsStyle”,“CenterOutput”);followOutput = affineOutputView(大小(A)、tform“BoundsStyle”,“FollowOutput”);sameAsInput = affineOutputView(大小(A)、tform“BoundsStyle”,“SameAsInput”);

转换应用到输入图像使用不同的输出的每个视图的风格。

BCenterOutput = imwarp (tform,“OutputView”,centerOutput);BFollowOutput = imwarp (tform,“OutputView”,followOutput);BSameAsInput = imwarp (tform,“OutputView”,sameAsInput);

由此产生的图像显示。

imshow (BCenterOutput)标题(“CenterOutput边界风格”);

图包含一个坐标轴对象。坐标轴对象与标题CenterOutput边界样式包含一个类型的对象的形象。

imshow (BFollowOutput)标题(“FollowOutput边界风格”);

图包含一个坐标轴对象。坐标轴对象与标题FollowOutput边界样式包含一个类型的对象的形象。

imshow (BSameAsInput)标题(“SameAsInput边界风格”);

图包含一个坐标轴对象。坐标轴对象与标题SameAsInput边界样式包含一个类型的对象的形象。

iptsetpref (“ImshowAxesVisible”,“关闭”)

输入参数

全部折叠

图像转换,指定为一个数字,逻辑,或直言任何维度的数组。

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

几何变换,指定为一个几何变换对象表中列出。

几何变换对象 描述
二维线性几何转换
transltform2d 翻译转换
rigidtform2d 刚性变换:平移和旋转
simtform2d 相似变换:平移、旋转、各向同性的扩展
affinetform2d 仿射变换:平移、旋转、各向异性缩放、反射和剪切
projtform2d 射影变换
三维线性几何转换
transltform3d 翻译转换
rigidtform3d 刚性变换:平移和旋转
simtform3d 相似变换:平移、旋转、各向同性的扩展
affinetform3d 仿射变换:平移、旋转、各向异性缩放、反射和剪切
非线性几何转换
geometricTransform2d 二维几何变换
geometricTransform3d 三维几何变换
PolynomialTransformation2D 多项式变换
PiecewiseLinearTransformation2D 分段线性变换
LocalWeightedMeanTransformation2D 局部加权平均数的转换
  • 如果tform二维和一个有超过两个维度,比如RGB图像,然后呢imwarp相同的2 d转换适用于所有二维平面在更高的维度。

  • 如果tform是3 d,那么一个必须是一个三维图像体积。

请注意

您还可以指定tform作为一个类型的对象rigid2d,rigid3d,affine2d,affine3d,或projective2d。然而,这些对象是不推荐。有关更多信息,请参见兼容性的考虑

位移场,指定为数字数组。位移场定义了网格输出图像的大小和位置。位移值以像素为单位。imwarp假设D引用默认的内在协调系统。估计位移场,使用imregdemons

  • 如果一个是一个二维灰度图像的尺寸吗——- - - - - -n,然后指定位移场的——- - - - - -n2数组。D (:: 1)包含位移沿x设在。imwarp将这些值添加到列和行位置D贴图的位置一个。同样的,D (:: 2)包含位移沿y设在。

  • 如果一个是一个二维RGB或多光谱图像的尺寸吗——- - - - - -n——- - - - - -c你指定D作为一个——- - - - - -n2数组,然后imwarp独立操作每一个二维的颜色通道。D (:: 1)包含位移沿x设在所有颜色的通道。同样的,D (:: 2)包含位移沿y设在。

  • 如果一个是一个3 d灰度图像的尺寸吗——- - - - - -n——- - - - - -p,然后指定位移场数组作为——- - - - - -n——- - - - - -p3数组。D (:,:: 1)包含位移沿x设在。imwarp将这些值添加到列、行和深度位置D贴图的位置一个。同样的,D (:,:: 2)D (:,:: 3)包含位移沿y- - -z设在。

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

空间参考信息图像的转换,指定为一个imref2d或者一个对象的二维变换imref3d对象一个3 d变换。

指定类型的插值使用,作为其中一个值。

插值法 描述
“最近的”

加权插值。分配输出像素值的像素点属于。没有其他的像素被认为是。

近邻插值的唯一方法支持分类图像和默认的方法对这种类型的图像。金宝app

“线性” 线性插值。线性插值是默认的数字和逻辑图像插值方法。
“立方” 三次插值

数据类型:字符|字符串

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

例子:B = imwarp (A、tform FillValues = 255)使用一个填满的价值255年

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:B = imwarp (tform,“FillValues”, 255年)使用一个填满的价值255年

输出图像的大小和位置世界坐标系统,指定为一个imref2dimref3d空间引用对象。对象属性,定义输出图像的大小和输出图像的位置在世界坐标系统。

您可以创建一个输出视图使用affineOutputView函数。复制所计算的默认输出视图imwarp,使用默认的边界样式(“CenterOutput”)affineOutputView

你不能指定OutputView当你指定一个输入位移场D

填补用于输出像素值在输入图像外,表中指定的值。imwarp使用填充输出像素值时对应的逆输入图像转换位置完全在输入图像边界。

默认填写数字和逻辑图像的价值0。默认填充分类图像的价值失踪,对应于<定义>类别。

图像类型

转换维度

的格式填值

二维灰度图像或逻辑 二维
  • 数字标量

二维彩色图像或二维多光谱图像 二维
  • 数字标量

  • c元数值向量指定填充为每个值c频道。通道的数量,c,对彩色图像是3。

一系列的p二维图像 二维

  • 数字标量

  • c——- - - - - -p数字矩阵。通道的数量,c1,是灰度图像和彩色图像3。

N- d图像 二维
  • 数字标量

  • 数值数组的大小匹配维度3 -N输入的图像一个。例如,如果一个由- 200 - 200 - 10 - 3,然后呢FillValues可以是一个10-by-3数组。

3 d图像灰度或逻辑 三维
  • 数字标量

分类图片 二维或三维
  • 图像中有效的分类,指定为一个字符串标量或特征向量。

  • 失踪,对应于<定义>类别。有关更多信息,请参见失踪

例子:255年填补了uint8图像与白色像素

例子:1填补了图像与白色像素

例子:(0 1 0)填补了与绿色像素彩色图像

例子:[0 1 0;0 1 1]“一系列的两个彩色图像,让第一个图像与青绿色像素和第二图像像素

例子:“汽车”填补了分类图像的“车辆”的类别

垫图像创建平滑的边缘,指定为真正的。当设置为真正的,imwarp创建一个平滑输出图像的边缘填充指定的输入图像与价值观FillValues。当设置为,imwarp不垫的形象。选择(没有填充)输入图像边缘清晰会导致输出图像。这种尖锐的优势可以有助于减少接缝扭曲当注册两个图片并排。

输出参数

全部折叠

转换图像,返回为一个数字,逻辑,或直言相同数据类型的数组作为输入图像一个

转换后的图像的空间参考信息,作为一个返回imref2dimref3d空间引用对象。

算法

imwarp决定了输出图像的像素值映射位置的输出图像输入图像中对应的位置(一个逆映射)。当一个像素的中心输出图像不映射到输入图像中的一个像素的中心,imwarp在输入图像篡改来计算输出像素值。

棋盘的图展示了一个翻译转换图像,每平方的10像素。按照惯例,输入空间中的坐标轴标签uv和输出空间的坐标轴标签xy。利用逆变换,像素(x,y35)坐标(25日)在输出坐标空间映射到(u,v)坐标(5,5)在输入坐标空间。

棋盘图像在输入坐标空间和翻译棋盘图像输出坐标空间

imwarp执行映射使用世界坐标。有关更多信息,请参见图像坐标系统

扩展功能

版本历史

介绍了R2013a

全部展开