这个例子展示了如何指定填充值imwarp
当它进行几何变换时。当您执行转换时,输出图像中通常有不是原始输入图像一部分的像素。这些像素必须被赋值,称为a填值.默认情况下,imwarp
设置这些像素为零,它们显示为黑色。使用FillValues
参数时,可以指定不同的颜色。如果被转换的图像是灰度图像,请指定指定灰度阴影的标量值。如果被转换的图像是RGB图像,则可以使用标量值或1 × 3向量。如果你指定一个标量,imwarp
在RGB图像的每个平面上使用这种灰度。如果你指定一个1 × 3的向量,imwarp
将值解释为RGB颜色值。
将图像读取到工作区。这个例子使用了一个彩色图像。
rgb = imread (“onion.png”);
创建变换矩阵。这个矩阵定义了一个平移变换。
Xform = [1 0 0 1 0 40 40 1];
创建几何变换对象。这个例子创建了一个仿射2d对象。
tform_translate = affine2d(变换)
tform_translate = affine2d with properties: T: [3x3 double] dimension: 2
创建一个2D引用对象。该对象指定输出空间坐标系统的各个方面,以便需要填充值的区域是可见的。默认情况下,imwarp
将输出图像的大小设置为足以包含整个转换后的图像,而不是整个输出坐标空间。
溃败= imref2d(大小(rgb));Rout.XWorldLimits (2) = Rout.XWorldLimits (2) + 40;Rout.YWorldLimits (2) = Rout.YWorldLimits (2) + 40;溃败。图象尺寸=溃败。图象尺寸+ 40 [40];
使用imwarp
函数。
tform_translate cb_rgb = imwarp (rgb,“OutputView”,溃败);图中,imshow (cb_rgb)
现在执行转换,这次指定一个填充值。
tform_translate cb_fill = imwarp (rgb,“FillValues”(187; 192; 57),...“OutputView”,溃败);图中,imshow (cb_fill)