<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/applying-projective-transformations-to-images",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Applying projective transformations to images"
}
-->

# Applying projective transformations to images

Warp images in three dimensions.

## Topics

### Computing a projective transformation from source and destination quadrilaterals

  <doc://com.apple.accelerate/documentation/Accelerate/transforming-an-image-in-three-dimensions>

[`func vImageGetPerspectiveWarp(UnsafePointer<(Float, Float)>, UnsafePointer<(Float, Float)>, UnsafeMutablePointer<vImage_PerpsectiveTransform>, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImageGetPerspectiveWarp(_:_:_:_:))

Returns a projective-transformation structure that defines the mapping between a source quadrilateral and a destination quadrilateral.

[`struct vImage_PerpsectiveTransform`](/documentation/Accelerate/vImage_PerpsectiveTransform)

A projective-transformation matrix.

### Warping planar buffers

[`func vImagePerspectiveWarp_Planar8(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutableRawPointer!, UnsafePointer<vImage_PerpsectiveTransform>, vImage_WarpInterpolation, Pixel_8, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImagePerspectiveWarp_Planar8(_:_:_:_:_:_:_:))

Applies a perspective warp to an 8-bit planar image.

[`func vImagePerspectiveWarp_Planar16F(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutableRawPointer!, UnsafePointer<vImage_PerpsectiveTransform>, vImage_WarpInterpolation, Pixel_16F, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImagePerspectiveWarp_Planar16F(_:_:_:_:_:_:_:))

Applies a perspective warp to a floating-point 16-bit planar image.

[`func vImagePerspectiveWarp_Planar16U(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutableRawPointer!, UnsafePointer<vImage_PerpsectiveTransform>, vImage_WarpInterpolation, Pixel_16U, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImagePerspectiveWarp_Planar16U(_:_:_:_:_:_:_:))

Applies a perspective warp to a unsigned 16-bit planar image.

### Warping interleaved buffers

[`func vImagePerspectiveWarp_ARGB8888(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutableRawPointer!, UnsafePointer<vImage_PerpsectiveTransform>, vImage_WarpInterpolation, UnsafeMutablePointer<UInt8>!, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImagePerspectiveWarp_ARGB8888(_:_:_:_:_:_:_:))

Applies a perspective warp to an 8-bit-per-channel, four-channel interleaved image.

[`func vImagePerspectiveWarp_ARGB16F(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutableRawPointer!, UnsafePointer<vImage_PerpsectiveTransform>, vImage_WarpInterpolation, UnsafeMutablePointer<UInt16>!, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImagePerspectiveWarp_ARGB16F(_:_:_:_:_:_:_:))

Applies a perspective warp to a floating-point 16-bit , four-channel interleaved image.

[`func vImagePerspectiveWarp_ARGB16U(UnsafePointer<vImage_Buffer>, UnsafePointer<vImage_Buffer>, UnsafeMutableRawPointer!, UnsafePointer<vImage_PerpsectiveTransform>, vImage_WarpInterpolation, UnsafeMutablePointer<UInt16>!, vImage_Flags) -> vImage_Error`](/documentation/Accelerate/vImagePerspectiveWarp_ARGB16U(_:_:_:_:_:_:_:))

Applies a perspective warp to an unsigned 16-bit , four-channel interleaved image.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)