You are here : matlabImage Processingimwarp

imwarp() - Image Processing

```B = imwarp(A,tform) transforms
the image A according to the geometric transformation
defined by tform, which is a geometric transformation
object. B is the transformed image.B = imwarp(A,D) transforms
the input image A according to the displacement
field defined by D. [B,RB] =
imwarp(A,RA,tform) transforms
the spatially referenced image, specified by the image data A and
the associated spatial referencing object RA.
The output is a spatially referenced image specified by the image
data B and the associated spatial referencing
object RB.B = imwarp(___,Interp) specifies
the form of interpolation to use[B,RB] =
imwarp(___,Name,Value) specifies
parameters that control various aspects of the geometric transformation.
Parameter names can be abbreviated, and case does not matter.Code Generation support:
Yes.MATLAB Function Block support:
Yes.```

Syntax

```B = imwarp(A,tform) exampleB = imwarp(A,D)[B,RB] =
imwarp(A,RA,tform)B = imwarp(___,Interp)[B,RB] =
imwarp(___,Name,Value)```

Example

```Apply Horizontal Shear to ImageOpen This Example
imshow(I)

Create a 2-D geometric transformation object.tform = affine2d([1 0 0; .5 1 0; 0 0 1])

tform =

affine2d with properties:

T: [3x3 double]
Dimensionality: 2

Apply the transformation to the image.J = imwarp(I,tform);
figure
imshow(J)

Apply Rotation Transformation to 3-D MRI DatasetOpen This Example
mriVolume = squeeze(s.D);
sizeIn = size(mriVolume);
hFigOriginal = figure;
hAxOriginal  = axes;
slice(double(mriVolume),sizeIn(2)/2,sizeIn(1)/2,sizeIn(3)/2);
grid on, shading interp, colormap gray

Create a 3-D geometric transformation object. First create a transformation matrix that rotates the image around the Y axis. Then pass the matrix to the affine3d function. theta = pi/8;
t = [cos(theta)  0      -sin(theta)   0
0             1              0     0
sin(theta)    0       cos(theta)   0
0             0              0     1]

tform = affine3d(t)

t =

0.9239         0   -0.3827         0
0    1.0000         0         0
0.3827         0    0.9239         0
0         0         0    1.0000

tform =

affine3d with properties:

T: [4x4 double]
Dimensionality: 3

Apply the transformation to the image.mriVolumeRotated = imwarp(mriVolume,tform);
Visualize three slice planes through the center of the transformed volumes.sizeOut = size(mriVolumeRotated);
hFigRotated = figure;
hAxRotated  = axes;
slice(double(mriVolumeRotated),sizeOut(2)/2,sizeOut(1)/2,sizeOut(3)/2);
grid on, shading interp, colormap gray

Set view to see effect of rotation.set(hAxRotated,'View',[-3.5 20.0])```