image.h
Go to the documentation of this file.
1 /*******************************************************
2  * Copyright (c) 2014, ArrayFire
3  * All rights reserved.
4  *
5  * This file is distributed under 3-clause BSD license.
6  * The complete license agreement can be obtained at:
7  * http://arrayfire.com/licenses/BSD-3-Clause
8  ********************************************************/
9 
10 #pragma once
11 #include <af/defines.h>
12 #include <af/features.h>
13 
14 #ifdef __cplusplus
15 namespace af
16 {
17 class array;
18 
28 AFAPI void grad(array& dx, array& dy, const array& in);
29 
39 AFAPI array loadImage(const char* filename, const bool is_color=false);
40 
49 AFAPI void saveImage(const char* filename, const array& in);
50 
51 #if AF_API_VERSION >= 31
52 
65 AFAPI array loadImageMem(const void *ptr);
66 #endif
67 
68 #if AF_API_VERSION >= 31
69 
84 AFAPI void* saveImageMem(const array& in, const imageFormat format = AF_FIF_PNG);
85 #endif
86 
87 #if AF_API_VERSION >= 31
88 
96 AFAPI void deleteImageMem(void *ptr);
97 #endif
98 
99 #if AF_API_VERSION >= 32
100 
117 AFAPI array loadImageNative(const char* filename);
118 #endif
119 
120 #if AF_API_VERSION >= 32
121 
147 AFAPI void saveImageNative(const char* filename, const array& in);
148 #endif
149 
150 #if AF_API_VERSION >= 33
151 
158 #endif
159 
171 AFAPI array resize(const array& in, const dim_t odim0, const dim_t odim1, const interpType method=AF_INTERP_NEAREST);
172 
184 AFAPI array resize(const float scale0, const float scale1, const array& in, const interpType method=AF_INTERP_NEAREST);
185 
196 AFAPI array resize(const float scale, const array& in, const interpType method=AF_INTERP_NEAREST);
197 
209 AFAPI array rotate(const array& in, const float theta, const bool crop=true, const interpType method=AF_INTERP_NEAREST);
210 
224 AFAPI array transform(const array& in, const array& transform, const dim_t odim0 = 0, const dim_t odim1 = 0, const interpType method=AF_INTERP_NEAREST, const bool inverse=true);
225 
226 #if AF_API_VERSION >= 33
227 
237 AFAPI array transformCoordinates(const array& tf, const float d0, const float d1);
238 #endif
239 
253 AFAPI array translate(const array& in, const float trans0, const float trans1, const dim_t odim0 = 0, const dim_t odim1 = 0, const interpType method=AF_INTERP_NEAREST);
254 
268 AFAPI array scale(const array& in, const float scale0, const float scale1, const dim_t odim0 = 0, const dim_t odim1 = 0, const interpType method=AF_INTERP_NEAREST);
269 
284 AFAPI array skew(const array& in, const float skew0, const float skew1, const dim_t odim0 = 0, const dim_t odim1 = 0, const bool inverse=true, const interpType method=AF_INTERP_NEAREST);
285 
297 AFAPI array bilateral(const array &in, const float spatial_sigma, const float chromatic_sigma, const bool is_color=false);
298 
312 AFAPI array histogram(const array &in, const unsigned nbins, const double minval, const double maxval);
313 
325 AFAPI array histogram(const array &in, const unsigned nbins);
326 
339 AFAPI array meanShift(const array& in, const float spatial_sigma, const float chromatic_sigma, const unsigned iter, const bool is_color=false);
340 
355 AFAPI array medfilt(const array& in, const dim_t wind_length = 3, const dim_t wind_width = 3, const borderType edge_pad = AF_PAD_ZERO);
356 
369 AFAPI array minfilt(const array& in, const dim_t wind_length = 3, const dim_t wind_width = 3, const borderType edge_pad = AF_PAD_ZERO);
370 
383 AFAPI array maxfilt(const array& in, const dim_t wind_length = 3, const dim_t wind_width = 3, const borderType edge_pad = AF_PAD_ZERO);
384 
396 AFAPI array dilate(const array& in, const array& mask);
397 
407 AFAPI array dilate3(const array& in, const array& mask);
408 
420 AFAPI array erode(const array& in, const array& mask);
421 
431 AFAPI array erode3(const array& in, const array& mask);
432 
461 
474 AFAPI void sobel(array &dx, array &dy, const array &img, const unsigned ker_size=3);
475 
488 AFAPI array sobel(const array &img, const unsigned ker_size=3, const bool isFast=false);
489 
503 AFAPI array rgb2gray(const array& in, const float rPercent=0.2126f, const float gPercent=0.7152f, const float bPercent=0.0722f);
504 
518 AFAPI array gray2rgb(const array& in, const float rFactor=1.0, const float gFactor=1.0, const float bFactor=1.0);
519 
533 AFAPI array histEqual(const array& in, const array& hist);
534 
546 AFAPI array gaussianKernel(const int rows, const int cols, const double sig_r = 0, const double sig_c = 0);
547 
558 AFAPI array hsv2rgb(const array& in);
559 
570 AFAPI array rgb2hsv(const array& in);
571 
586 AFAPI array colorSpace(const array& image, const CSpace to, const CSpace from);
587 
588 #if AF_API_VERSION >= 31
589 
604 AFAPI array unwrap(const array& in, const dim_t wx, const dim_t wy,
605  const dim_t sx, const dim_t sy, const dim_t px=0, const dim_t py=0,
606  const bool is_column = true);
607 #endif
608 
609 #if AF_API_VERSION >= 31
610 
627 AFAPI array wrap(const array& in,
628  const dim_t ox, const dim_t oy,
629  const dim_t wx, const dim_t wy,
630  const dim_t sx, const dim_t sy,
631  const dim_t px = 0, const dim_t py = 0,
632  const bool is_column = true);
633 #endif
634 
635 #if AF_API_VERSION >= 31
636 
644 AFAPI array sat(const array& in);
645 #endif
646 
647 #if AF_API_VERSION >= 31
648 
660 AFAPI array ycbcr2rgb(const array& in, const YCCStd standard=AF_YCC_601);
661 #endif
662 
663 #if AF_API_VERSION >= 31
664 
676 AFAPI array rgb2ycbcr(const array& in, const YCCStd standard=AF_YCC_601);
677 #endif
678 
679 }
680 #endif
681 
682 #ifdef __cplusplus
683 extern "C" {
684 #endif
685 
697  AFAPI af_err af_gradient(af_array *dx, af_array *dy, const af_array in);
698 
710  AFAPI af_err af_load_image(af_array *out, const char* filename, const bool isColor);
711 
722  AFAPI af_err af_save_image(const char* filename, const af_array in);
723 
724 #if AF_API_VERSION >= 31
725 
735  AFAPI af_err af_load_image_memory(af_array *out, const void* ptr);
736 #endif
737 
738 #if AF_API_VERSION >= 31
739 
751  AFAPI af_err af_save_image_memory(void** ptr, const af_array in, const af_image_format format);
752 #endif
753 
754 #if AF_API_VERSION >= 31
755 
765 #endif
766 
767 #if AF_API_VERSION >= 32
768 
786  AFAPI af_err af_load_image_native(af_array *out, const char* filename);
787 #endif
788 
789 #if AF_API_VERSION >= 32
790 
818  AFAPI af_err af_save_image_native(const char* filename, const af_array in);
819 #endif
820 
821 #if AF_API_VERSION >= 33
822 
833 #endif
834 
849  AFAPI af_err af_resize(af_array *out, const af_array in, const dim_t odim0, const dim_t odim1, const af_interp_type method);
850 
867  const dim_t odim0, const dim_t odim1,
868  const af_interp_type method, const bool inverse);
869 
870 #if AF_API_VERSION >= 33
871 
882  AFAPI af_err af_transform_coordinates(af_array *out, const af_array tf, const float d0, const float d1);
883 #endif
884 
898  AFAPI af_err af_rotate(af_array *out, const af_array in, const float theta,
899  const bool crop, const af_interp_type method);
915  AFAPI af_err af_translate(af_array *out, const af_array in, const float trans0, const float trans1,
916  const dim_t odim0, const dim_t odim1, const af_interp_type method);
932  AFAPI af_err af_scale(af_array *out, const af_array in, const float scale0, const float scale1,
933  const dim_t odim0, const dim_t odim1, const af_interp_type method);
950  AFAPI af_err af_skew(af_array *out, const af_array in, const float skew0, const float skew1,
951  const dim_t odim0, const dim_t odim1, const af_interp_type method,
952  const bool inverse);
953 
967  AFAPI af_err af_histogram(af_array *out, const af_array in, const unsigned nbins, const double minval, const double maxval);
968 
982  AFAPI af_err af_dilate(af_array *out, const af_array in, const af_array mask);
983 
995  AFAPI af_err af_dilate3(af_array *out, const af_array in, const af_array mask);
996 
1010  AFAPI af_err af_erode(af_array *out, const af_array in, const af_array mask);
1011 
1023  AFAPI af_err af_erode3(af_array *out, const af_array in, const af_array mask);
1024 
1038  AFAPI af_err af_bilateral(af_array *out, const af_array in, const float spatial_sigma, const float chromatic_sigma, const bool isColor);
1039 
1054  AFAPI af_err af_mean_shift(af_array *out, const af_array in, const float spatial_sigma, const float chromatic_sigma, const unsigned iter, const bool is_color);
1055 
1070  AFAPI af_err af_medfilt(af_array *out, const af_array in, const dim_t wind_length, const dim_t wind_width, const af_border_type edge_pad);
1071 
1086  AFAPI af_err af_minfilt(af_array *out, const af_array in, const dim_t wind_length, const dim_t wind_width, const af_border_type edge_pad);
1087 
1102  AFAPI af_err af_maxfilt(af_array *out, const af_array in, const dim_t wind_length, const dim_t wind_width, const af_border_type edge_pad);
1103 
1116  AFAPI af_err af_regions(af_array *out, const af_array in, const af_connectivity connectivity, const af_dtype ty);
1117 
1132  AFAPI af_err af_sobel_operator(af_array *dx, af_array *dy, const af_array img, const unsigned ker_size);
1133 
1149  AFAPI af_err af_rgb2gray(af_array* out, const af_array in, const float rPercent, const float gPercent, const float bPercent);
1150 
1166  AFAPI af_err af_gray2rgb(af_array* out, const af_array in, const float rFactor, const float gFactor, const float bFactor);
1167 
1181  AFAPI af_err af_hist_equal(af_array *out, const af_array in, const af_array hist);
1182 
1197  const int rows, const int cols,
1198  const double sigma_r, const double sigma_c);
1199 
1212  AFAPI af_err af_hsv2rgb(af_array* out, const af_array in);
1213 
1226  AFAPI af_err af_rgb2hsv(af_array* out, const af_array in);
1227 
1245  AFAPI af_err af_color_space(af_array *out, const af_array image, const af_cspace_t to, const af_cspace_t from);
1246 
1247 #if AF_API_VERSION >= 31
1248 
1265  AFAPI af_err af_unwrap(af_array *out, const af_array in, const dim_t wx, const dim_t wy,
1266  const dim_t sx, const dim_t sy, const dim_t px, const dim_t py,
1267  const bool is_column);
1268 #endif
1269 
1270 #if AF_API_VERSION >= 31
1271 
1293  const af_array in,
1294  const dim_t ox, const dim_t oy,
1295  const dim_t wx, const dim_t wy,
1296  const dim_t sx, const dim_t sy,
1297  const dim_t px, const dim_t py,
1298  const bool is_column);
1299 #endif
1300 
1301 #if AF_API_VERSION >= 31
1302 
1312  AFAPI af_err af_sat(af_array *out, const af_array in);
1313 #endif
1314 
1315 #if AF_API_VERSION >= 31
1316 
1330  AFAPI af_err af_ycbcr2rgb(af_array* out, const af_array in, const af_ycc_std standard);
1331 #endif
1332 
1333 #if AF_API_VERSION >= 31
1334 
1348  AFAPI af_err af_rgb2ycbcr(af_array* out, const af_array in, const af_ycc_std standard);
1349 #endif
1350 #ifdef __cplusplus
1351 }
1352 #endif
AFAPI af_err af_is_image_io_available(bool *out)
Function to check if Image IO is available.
AFAPI array scale(const array &in, const float scale0, const float scale1, const dim_t odim0=0, const dim_t odim1=0, const interpType method=AF_INTERP_NEAREST)
C++ Interface for scaling an image.
AFAPI void saveImage(const char *filename, const array &in)
C++ Interface for saving an image.
AFAPI af_err af_load_image(af_array *out, const char *filename, const bool isColor)
C Interface for loading an image.
AFAPI af_err af_dilate(af_array *out, const af_array in, const af_array mask)
C Interface for image dilation (max filter)
af_ycc_std
Definition: defines.h:288
AFAPI af_err af_maxfilt(af_array *out, const af_array in, const dim_t wind_length, const dim_t wind_width, const af_border_type edge_pad)
C Interface for maximum filter.
AFAPI af_err af_dilate3(af_array *out, const af_array in, const af_array mask)
C Interface for 3d image dilation.
AFAPI array minfilt(const array &in, const dim_t wind_length=3, const dim_t wind_width=3, const borderType edge_pad=AF_PAD_ZERO)
C++ Interface for minimum filter.
Definition: algorithm.h:14
AFAPI void deleteImageMem(void *ptr)
C++ Interface for deleting memory created by saveImageMem or af_save_image_memory.
AFAPI af_err af_transform(af_array *out, const af_array in, const af_array transform, const dim_t odim0, const dim_t odim1, const af_interp_type method, const bool inverse)
C Interface for transforming an image.
AFAPI af_err af_gaussian_kernel(af_array *out, const int rows, const int cols, const double sigma_r, const double sigma_c)
C Interface generating gaussian kernels.
AFAPI array ycbcr2rgb(const array &in, const YCCStd standard=AF_YCC_601)
C++ Interface for converting YCbCr to RGB.
AFAPI af_err af_unwrap(af_array *out, const af_array in, const dim_t wx, const dim_t wy, const dim_t sx, const dim_t sy, const dim_t px, const dim_t py, const bool is_column)
C Interface wrapper for unwrap.
AFAPI array rgb2gray(const array &in, const float rPercent=0.2126f, const float gPercent=0.7152f, const float bPercent=0.0722f)
C++ Interface for RGB to gray conversion.
af_border_type
Definition: defines.h:232
AFAPI array rotate(const array &in, const float theta, const bool crop=true, const interpType method=AF_INTERP_NEAREST)
C++ Interface for rotating an image.
AFAPI af_err af_scale(af_array *out, const af_array in, const float scale0, const float scale1, const dim_t odim0, const dim_t odim1, const af_interp_type method)
C Interface for scaling an image.
AFAPI af_err af_load_image_memory(af_array *out, const void *ptr)
C Interface for loading an image from memory.
AFAPI array hsv2rgb(const array &in)
C++ Interface for converting HSV to RGB.
AFAPI af_err af_load_image_native(af_array *out, const char *filename)
C Interface for loading an image as is original type.
AFAPI af_err af_histogram(af_array *out, const af_array in, const unsigned nbins, const double minval, const double maxval)
C Interface for histogram.
AFAPI array histogram(const array &in, const unsigned nbins, const double minval, const double maxval)
C++ Interface for histogram.
AFAPI af_err af_erode3(af_array *out, const af_array in, const af_array mask)
C Interface for 3D image erosion.
af_ycc_std YCCStd
Definition: defines.h:415
AFAPI af_err af_medfilt(af_array *out, const af_array in, const dim_t wind_length, const dim_t wind_width, const af_border_type edge_pad)
C Interface for median filter.
AFAPI array meanShift(const array &in, const float spatial_sigma, const float chromatic_sigma, const unsigned iter, const bool is_color=false)
C++ Interface for mean shift.
AFAPI array histEqual(const array &in, const array &hist)
C++ Interface for histogram equalization.
AFAPI af_err af_wrap(af_array *out, const af_array in, const dim_t ox, const dim_t oy, const dim_t wx, const dim_t wy, const dim_t sx, const dim_t sy, const dim_t px, const dim_t py, const bool is_column)
C Interface wrapper for wrap.
AFAPI array wrap(const array &in, const dim_t ox, const dim_t oy, const dim_t wx, const dim_t wy, const dim_t sx, const dim_t sy, const dim_t px=0, const dim_t py=0, const bool is_column=true)
C++ Interface wrapper for wrap.
AFAPI af_err af_gray2rgb(af_array *out, const af_array in, const float rFactor, const float gFactor, const float bFactor)
C Interface for converting gray to RGB.
AFAPI array regions(const array &in, const af::connectivity connectivity=AF_CONNECTIVITY_4, const dtype type=f32)
C++ Interface for getting regions in an image.
af_interp_type
Definition: defines.h:224
AFAPI af_err af_regions(af_array *out, const af_array in, const af_connectivity connectivity, const af_dtype ty)
C Interface for regions in an image.
AFAPI af_err af_save_image_native(const char *filename, const af_array in)
C Interface for saving an image without modifications.
AFAPI af_err af_minfilt(af_array *out, const af_array in, const dim_t wind_length, const dim_t wind_width, const af_border_type edge_pad)
C Interface for minimum filter.
AFAPI void sobel(array &dx, array &dy, const array &img, const unsigned ker_size=3)
C++ Interface for extracting sobel gradients.
AFAPI af_err af_delete_image_memory(void *ptr)
C Interface for deleting an image from memory.
af_image_format imageFormat
Definition: defines.h:418
AFAPI array inverse(const array &in, const matProp options=AF_MAT_NONE)
C++ Interface for inverting a matrix.
AFAPI array erode(const array &in, const array &mask)
C++ Interface for image erosion (min filter)
AFAPI af_err af_hsv2rgb(af_array *out, const af_array in)
C Interface for converting HSV to RGB.
AFAPI af_err af_save_image(const char *filename, const af_array in)
C Interface for saving an image.
static af::array array(af::dim4 idims, cl_mem buf, af::dtype type, bool retain=false)
Create an af::array object from an OpenCL cl_mem buffer.
Definition: opencl.h:329
AFAPI array transformCoordinates(const array &tf, const float d0, const float d1)
C++ Interface for transforming coordinates.
af_connectivity
Definition: defines.h:244
AFAPI array dilate3(const array &in, const array &mask)
C++ Interface for 3D image dilation.
af_err
Definition: defines.h:63
Connectivity includes neighbors, North, East, South and West of current pixel.
Definition: defines.h:248
AFAPI af_err af_rgb2hsv(af_array *out, const af_array in)
C Interface for converting RGB to HSV.
AFAPI array transform(const array &in, const array &transform, const dim_t odim0=0, const dim_t odim1=0, const interpType method=AF_INTERP_NEAREST, const bool inverse=true)
C++ Interface for transforming an image.
AFAPI array gaussianKernel(const int rows, const int cols, const double sig_r=0, const double sig_c=0)
C++ Interface for generating gausian kernels.
AFAPI void saveImageNative(const char *filename, const array &in)
C++ Interface for saving an image without modifications.
ITU-R BT.601 (formerly CCIR 601) standard.
Definition: defines.h:289
AFAPI af_err af_bilateral(af_array *out, const af_array in, const float spatial_sigma, const float chromatic_sigma, const bool isColor)
C Interface for bilateral filter.
AFAPI af_err af_rotate(af_array *out, const af_array in, const float theta, const bool crop, const af_interp_type method)
C Interface for rotating an image.
AFAPI void grad(array &dx, array &dy, const array &in)
C++ Interface for calculating the gradients.
Out of bound values are 0.
Definition: defines.h:236
AFAPI af_err af_hist_equal(af_array *out, const af_array in, const af_array hist)
C Interface for histogram equalization.
AFAPI af_err af_sat(af_array *out, const af_array in)
C Interface wrapper for summed area tables.
AFAPI af_err af_rgb2gray(af_array *out, const af_array in, const float rPercent, const float gPercent, const float bPercent)
C Interface for converting RGB to gray.
AFAPI af_err af_gradient(af_array *dx, af_array *dy, const af_array in)
C Interface for calculating the gradients.
long long dim_t
Definition: defines.h:50
AFAPI array resize(const array &in, const dim_t odim0, const dim_t odim1, const interpType method=AF_INTERP_NEAREST)
C++ Interface for resizing an image to specified dimensions.
AFAPI array rgb2hsv(const array &in)
C++ Interface for converting RGB to HSV.
AFAPI array dilate(const array &in, const array &mask)
C++ Interface for image dilation (max filter)
AFAPI array skew(const array &in, const float skew0, const float skew1, const dim_t odim0=0, const dim_t odim1=0, const bool inverse=true, const interpType method=AF_INTERP_NEAREST)
C++ Interface for skewing an image.
AFAPI af_err af_resize(af_array *out, const af_array in, const dim_t odim0, const dim_t odim1, const af_interp_type method)
C Interface for resizing an image to specified dimensions.
AFAPI array rgb2ycbcr(const array &in, const YCCStd standard=AF_YCC_601)
C++ Interface for converting RGB to YCbCr.
#define AFAPI
Definition: defines.h:31
af_border_type borderType
Definition: defines.h:403
AFAPI af_err af_translate(af_array *out, const af_array in, const float trans0, const float trans1, const dim_t odim0, const dim_t odim1, const af_interp_type method)
C Interface for translate an image.
AFAPI af_err af_transform_coordinates(af_array *out, const af_array tf, const float d0, const float d1)
C Interface for transforming an image C++ Interface for transforming coordinates. ...
AFAPI array loadImageNative(const char *filename)
C++ Interface for loading an image as its original type.
AFAPI array maxfilt(const array &in, const dim_t wind_length=3, const dim_t wind_width=3, const borderType edge_pad=AF_PAD_ZERO)
C++ Interface for maximum filter.
AFAPI bool isImageIOAvailable()
Function to check if Image IO is available.
AFAPI array loadImage(const char *filename, const bool is_color=false)
C++ Interface for loading an image.
AFAPI array bilateral(const array &in, const float spatial_sigma, const float chromatic_sigma, const bool is_color=false)
C++ Interface for bilateral filter.
AFAPI array medfilt(const array &in, const dim_t wind_length=3, const dim_t wind_width=3, const borderType edge_pad=AF_PAD_ZERO)
C++ Interface for median filter.
Nearest Interpolation.
Definition: defines.h:225
AFAPI af_err af_erode(af_array *out, const af_array in, const af_array mask)
C Interface for image erosion (min filter)
AFAPI array sat(const array &in)
C++ Interface wrapper for summed area tables.
af_cspace_t
Definition: defines.h:295
FreeImage Enum for Portable Network Graphics File.
Definition: defines.h:348
void * af_array
Definition: defines.h:222
AFAPI array colorSpace(const array &image, const CSpace to, const CSpace from)
C++ Interface wrapper for colorspace conversion.
af_image_format
Definition: defines.h:343
af_cspace_t CSpace
Definition: defines.h:406
32-bit floating point values
Definition: defines.h:196
AFAPI af_err af_rgb2ycbcr(af_array *out, const af_array in, const af_ycc_std standard)
C Interface for converting RGB to YCbCr.
AFAPI af_err af_save_image_memory(void **ptr, const af_array in, const af_image_format format)
C Interface for saving an image to memory using FreeImage.
AFAPI void * saveImageMem(const array &in, const imageFormat format=AF_FIF_PNG)
C++ Interface for saving an image to memory.
AFAPI array erode3(const array &in, const array &mask)
C++ Interface for 3d for image erosion.
af_dtype
Definition: defines.h:195
af_interp_type interpType
Definition: defines.h:402
AFAPI af_err af_color_space(af_array *out, const af_array image, const af_cspace_t to, const af_cspace_t from)
C Interface wrapper for color space conversion.
af_dtype dtype
Definition: defines.h:400
AFAPI array translate(const array &in, const float trans0, const float trans1, const dim_t odim0=0, const dim_t odim1=0, const interpType method=AF_INTERP_NEAREST)
C++ Interface for translating an image.
AFAPI array gray2rgb(const array &in, const float rFactor=1.0, const float gFactor=1.0, const float bFactor=1.0)
C++ Interface for gray to RGB conversion.
AFAPI array loadImageMem(const void *ptr)
C++ Interface for loading an image from memory.
AFAPI af_err af_mean_shift(af_array *out, const af_array in, const float spatial_sigma, const float chromatic_sigma, const unsigned iter, const bool is_color)
C Interface for mean shift.
AFAPI af_err af_sobel_operator(af_array *dx, af_array *dy, const af_array img, const unsigned ker_size)
C Interface for getting sobel gradients.
AFAPI array unwrap(const array &in, const dim_t wx, const dim_t wy, const dim_t sx, const dim_t sy, const dim_t px=0, const dim_t py=0, const bool is_column=true)
C++ Interface wrapper for unwrap.
AFAPI af_err af_ycbcr2rgb(af_array *out, const af_array in, const af_ycc_std standard)
C Interface for converting YCbCr to RGB.
af_connectivity connectivity
Definition: defines.h:404
AFAPI af_err af_skew(af_array *out, const af_array in, const float skew0, const float skew1, const dim_t odim0, const dim_t odim1, const af_interp_type method, const bool inverse)
C Interface for skewing an image.