CvInvoke Methods 
The CvInvoke type exposes the following members.
Name  Description  

AbsDiff 
Calculates absolute difference between two arrays.
dst(I)c = abs(src1(I)c  src2(I)c).
All the arrays must have the same data type and the same size (or ROI size)
 
Accumulate 
Adds the whole image or its selected region to accumulator sum
 
AccumulateProduct 
Adds product of 2 images or thier selected regions to accumulator acc
 
AccumulateSquare 
Adds the input src or its selected region, raised to power 2, to the accumulator sqsum
 
AccumulateWeighted 
Calculates weighted sum of input src and the accumulator acc so that acc becomes a running average of frame sequence:
acc(x,y)=(1alpha) * acc(x,y) + alpha * image(x,y) if mask(x,y)!=0
where alpha regulates update speed (how fast accumulator forgets about previous frames).
 
AdaptiveThreshold 
Transforms grayscale image to binary image.
Threshold calculated individually for each pixel.
For the method CV_ADAPTIVE_THRESH_MEAN_C it is a mean of blockSize x blockSize pixel
neighborhood, subtracted by param1.
For the method CV_ADAPTIVE_THRESH_GAUSSIAN_C it is a weighted sum (gaussian) of blockSize x blockSize pixel neighborhood, subtracted by param1.
 
Add 
Adds one array to another one:
dst(I)=src1(I)+src2(I) if mask(I)!=0All the arrays must have the same type, except the mask, and the same size (or ROI size)
 
AddWeighted 
Calculated weighted sum of two arrays as following:
dst(I)=src1(I)*alpha+src2(I)*beta+gamma
All the arrays must have the same type and the same size (or ROI size)
 
ApplyColorMap 
Apply color map to the image
 
ApproxPolyDP 
Approximates a polygonal curve(s) with the specified precision.
 
ArcLength 
Calculates a contour perimeter or a curve length
 
ArrowedLine 
Draws a arrow segment pointing from the first point to the second one.
 
BilateralFilter 
Applies the bilateral filter to an image.
 
BitwiseAnd 
Calculates perelement bitwise logical conjunction of two arrays:
dst(I)=src1(I) & src2(I) if mask(I)!=0
In the case of floatingpoint arrays their bit representations are used for the operation. All the arrays must have the same type, except the mask, and the same size
 
BitwiseNot 
Inverses every bit of every array element:
 
BitwiseOr 
Calculates perelement bitwise disjunction of two arrays:
dst(I)=src1(I)src2(I)
In the case of floatingpoint arrays their bit representations are used for the operation. All the arrays must have the same type, except the mask, and the same size
 
BitwiseXor 
Calculates perelement bitwise logical conjunction of two arrays:
dst(I)=src1(I)^src2(I) if mask(I)!=0
In the case of floatingpoint arrays their bit representations are used for the operation. All the arrays must have the same type, except the mask, and the same size
 
Blur 
Blurs an image using the normalized box filter.
 
BoundingRectangle 
Returns the upright bounding rectangle for 2d point set
 
BoxFilter 
Blurs an image using the box filter.
 
BoxPoints(RotatedRect) 
Calculates vertices of the input 2d box.
 
BoxPoints(RotatedRect, IOutputArray) 
Calculates vertices of the input 2d box.
 
CalcBackProject 
Calculates the back projection of a histogram.
 
CalcCovarMatrix 
Calculates the covariance matrix of a set of vectors.
 
CalcGlobalOrientation 
Calculates the general motion direction in the selected region and returns the angle between 0 and 360. At first the function builds the orientation histogram and finds the basic orientation as a coordinate of the histogram maximum. After that the function calculates the shift relative to the basic orientation as a weighted sum of all orientation vectors: the more recent is the motion, the greater is the weight. The resultant angle is a circular sum of the basic orientation and the shift.
 
CalcHist 
Calculates a histogram of a set of arrays.
 
CalcMotionGradient 
Calculates the derivatives Dx and Dy of mhi and then calculates gradient orientation as:
orientation(x,y)=arctan(Dy(x,y)/Dx(x,y))
where both Dx(x,y)' and Dy(x,y)' signs are taken into account (as in cvCartToPolar function). After that mask is filled to indicate where the orientation is valid (see delta1 and delta2 description).
 
CalcOpticalFlowFarneback(IInputArray, IInputArray, IInputOutputArray, Double, Int32, Int32, Int32, Int32, Double, OpticalflowFarnebackFlag) 
Computes dense optical flow using Gunnar Farneback's algorithm
 
CalcOpticalFlowFarneback(ImageGray, Byte, ImageGray, Byte, ImageGray, Single, ImageGray, Single, Double, Int32, Int32, Int32, Int32, Double, OpticalflowFarnebackFlag) 
Computes dense optical flow using Gunnar Farneback's algorithm
 
CalcOpticalFlowPyrLK(IInputArray, IInputArray, IInputArray, IInputOutputArray, IOutputArray, IOutputArray, Size, Int32, MCvTermCriteria, LKFlowFlag, Double) 
Implements sparse iterative version of LucasKanade optical flow in pyramids ([Bouguet00]). It calculates coordinates of the feature points on the current video frame given their coordinates on the previous frame. The function finds the coordinates with subpixel accuracy.
 
CalcOpticalFlowPyrLK(IInputArray, IInputArray, PointF, Size, Int32, MCvTermCriteria, PointF, Byte, Single, LKFlowFlag, Double) 
Calculates optical flow for a sparse feature set using iterative LucasKanade method in pyramids
 
CalibrateCamera(IInputArray, IInputArray, Size, IInputOutputArray, IInputOutputArray, IOutputArray, IOutputArray, CalibType, MCvTermCriteria) 
Estimates intrinsic camera parameters and extrinsic parameters for each of the views
 
CalibrateCamera(MCvPoint3D32f, PointF, Size, IInputOutputArray, IInputOutputArray, CalibType, MCvTermCriteria, Mat, Mat) 
Estimates intrinsic camera parameters and extrinsic parameters for each of the views
 
CalibrationMatrixValues 
Computes various useful camera (sensor/lens) characteristics using the computed camera calibration matrix, image frame resolution in pixels and the physical aperture size
 
CamShift 
Implements CAMSHIFT object tracking algorithm ([Bradski98]). First, it finds an object center using cvMeanShift and, after that, calculates the object size and orientation.
 
Canny 
Finds the edges on the input image and marks them in the output image edges using the Canny algorithm. The smallest of threshold1 and threshold2 is used for edge linking, the largest  to find initial segments of strong edges.
 
CartToPolar 
Calculates either magnitude, angle, or both of every 2d vector (x(I),y(I)):
magnitude(I)=sqrt( x(I)2+y(I)2 ),
angle(I)=atan( y(I)/x(I) )
The angles are calculated with ~0.1 degree accuracy. For (0,0) point the angle is set to 0
 
CheckLibraryLoaded 
Check to make sure all the unmanaged libraries are loaded
 
CheckRange 
Check that every array element is neither NaN nor + inf. The functions also check that each value
is between minVal and maxVal. in the case of multichannel arrays each channel is processed
independently. If some values are out of range, position of the first outlier is stored in pos,
and then the functions either return false (when quiet=true) or throw an exception.
 
Circle 
Draws a simple or filled circle with given center and radius. The circle is clipped by ROI rectangle.
 
CLAHE 
Contrast Limited Adaptive Histogram Equalization (CLAHE)
 
ClipLine 
Calculates a part of the line segment which is entirely in the rectangle.
 
ColorChange 
Given an original color image, two differently colored versions of this image can be mixed seamlessly.
 
Compare 
Compares the corresponding elements of two arrays and fills the destination mask array:
dst(I)=src1(I) op src2(I),
dst(I) is set to 0xff (all '1'bits) if the particular relation between the elements is true and 0 otherwise.
All the arrays must have the same type, except the destination, and the same size (or ROI size)
 
CompareHist 
Compares two histograms.
 
ComputeCorrespondEpilines 
For every point in one of the two images of stereopair the function cvComputeCorrespondEpilines finds equation of a line that contains the corresponding point (i.e. projection of the same 3D point) in the other image. Each line is encoded by a vector of 3 elements l=[a,b,c]^T, so that:
l^T*[x, y, 1]^T=0, or
a*x + b*y + c = 0
From the fundamental matrix definition (see cvFindFundamentalMatrix discussion), line l2 for a point p1 in the first image (which_image=1) can be computed as:
l2=F*p1 and the line l1 for a point p2 in the second image (which_image=1) can be computed as:
l1=F^T*p2Line coefficients are defined up to a scale. They are normalized (a2+b2=1) are stored into correspondent_lines
 
ConnectedComponents 
Computes the connected components labeled image of boolean image
 
ConnectedComponentsWithStats 
Computes the connected components labeled image of boolean image
 
ContourArea 
Calculates area of the whole contour or contour section.
 
ConvertMaps 
Converts image transformation maps from one representation to another.
 
ConvertPointsFromHomogeneous 
Converts points from homogeneous to Euclidean space.
 
ConvertPointsToHomogeneous 
Converts points from Euclidean to homogeneous space.
 
ConvertScaleAbs 
Similar to cvCvtScale but it stores absolute values of the conversion results:
dst(I)=abs(src(I)*scale + (shift,shift,...))
The function supports only destination arrays of 8u (8bit unsigned integers) type, for other types the function can be emulated by combination of cvConvertScale and cvAbs functions.
 
ConvexHull(PointF, Boolean) 
Finds convex hull of 2D point set using Sklansky's algorithm
 
ConvexHull(IInputArray, IOutputArray, Boolean, Boolean) 
The function cvConvexHull2 finds convex hull of 2D point set using Sklansky's algorithm.
 
ConvexityDefects 
Finds the convexity defects of a contour.
 
CopyMakeBorder 
Copies the source 2D array into interior of destination array and makes a border of the specified type around the copied area. The function is useful when one needs to emulate border type that is different from the one embedded into a specific algorithm implementation. For example, morphological functions, as well as most of other filtering functions in OpenCV, internally use replication border type, while the user may need zero border or a border, filled with 1's or 255's
 
CornerHarris 
Runs the Harris edge detector on image. Similarly to cvCornerMinEigenVal and cvCornerEigenValsAndVecs, for each pixel it calculates 2x2 gradient covariation matrix M over block_size x block_size neighborhood. Then, it stores
det(M)  k*trace(M)^2
to the destination image. Corners in the image can be found as local maxima of the destination image.
 
CornerSubPix 
Iterates to find the subpixel accurate location of corners, or radial saddle points
 
CorrectMatches 
Refines coordinates of corresponding points.
 
CountNonZero 
Returns the number of nonzero elements in arr:
result = sumI arr(I)!=0
In case of IplImage both ROI and COI are supported.
 
CreateHanningWindow 
This function computes a Hanning window coefficients in two dimensions.
 
CvArrToMat 
Converts CvMat, IplImage , or CvMatND to Mat.
 
cvCheckArr 
Checks that every array element is neither NaN nor Infinity. If CV_CHECK_RANGE is set, it also checks that every element is greater than or equal to minVal and less than maxVal.
 
cvClearND 
Clears (sets to zero) the particular element of dense array or deletes the element of sparse array. If the element does not exists, the function does nothing
 
cvConvertScale 
This function has several different purposes and thus has several synonyms. It copies one array to another with optional scaling, which is performed first, and/or optional type conversion, performed after:
dst(I)=src(I)*scale + (shift,shift,...)
All the channels of multichannel arrays are processed independently.
The type conversion is done with rounding and saturation, that is if a result of scaling + conversion can not be represented exactly by a value of destination array element type, it is set to the nearest representable value on the real axis.
In case of scale=1, shift=0 no prescaling is done. This is a specially optimized case and it has the appropriate cvConvert synonym. If source and destination array types have equal types, this is also a special case that can be used to scale and shift a matrix or an image and that fits to cvScale synonym.
 
cvCopy 
Copies selected elements from input array to output array:
dst(I)=src(I) if mask(I)!=0.
If any of the passed arrays is of IplImage type, then its ROI and COI fields are used. Both arrays must have the same type, the same number of dimensions and the same size. The function can also copy sparse arrays (mask is not supported in this case).
 
cvCreateImage 
Creates the header and allocates data.
 
cvCreateImageHeader 
Allocates, initializes, and returns the structure IplImage.
 
cvCreateMat 
Allocates header for the new matrix and underlying data, and returns a pointer to the created matrix. Matrices are stored row by row. All the rows are aligned by 4 bytes.
 
cvCreateSparseMat 
The function allocates a multidimensional sparse array. Initially the array contain no elements, that is Get or GetReal returns zero for every index
 
cveVideoCaptureGet 
Retrieves the specified property of camera or video file
 
cveVideoCaptureSet 
Sets the specified property of video capturing
 
cvGet1D 
Return the particular array element
 
cvGet2D 
Return the particular array element
 
cvGet3D 
Return the particular array element
 
cvGetCentralMoment 
Retrieves the central moment, which in case of image moments is defined as:
mu_{x_order,y_order}=sum_{x,y}(I(x,y)*(xx_c)^{x_order} * (yy_c)^{y_order}),
where x_c=M10/M00, y_c=M01/M00  coordinates of the gravity center
 
cvGetCol 
Return the header, corresponding to a specified column of the input array
 
cvGetCols 
Return the header, corresponding to a specified col span of the input array
 
cvGetDiag 
returns the header, corresponding to a specified diagonal of the input array
 
cvGetImage 
Returns image header for the input array that can be matrix  CvMat*, or image  IplImage*.
 
cvGetImageCOI 
Returns channel of interest of the image (it returns 0 if all the channels are selected).
 
cvGetImageROI 
Returns channel of interest of the image (it returns 0 if all the channels are selected).
 
cvGetMat 
Returns matrix header for the input array that can be matrix  CvMat, image  IplImage or multidimensional dense array  CvMatND* (latter case is allowed only if allowND != 0) . In the case of matrix the function simply returns the input pointer. In the case of IplImage* or CvMatND* it initializes header structure with parameters of the current image ROI and returns pointer to this temporary structure. Because COI is not supported by CvMat, it is returned separately.
 
cvGetNormalizedCentralMoment 
Retrieves normalized central moment, which in case of image moments is defined as:
eta_{x_order,y_order}=mu_{x_order,y_order} / M00^{(y_order+x_order)/2+1},
where mu_{x_order,y_order} is the central moment
 
cvGetRawData 
Fills output variables with lowlevel information about the array data. All output parameters are optional, so some of the pointers may be set to NULL. If the array is IplImage with ROI set, parameters of ROI are returned.
 
cvGetReal1D 
Return the particular element of singlechannel array. If the array has multiple channels, runtime error is raised. Note that cvGet*D function can be used safely for both singlechannel and multiplechannel arrays though they are a bit slower.
 
cvGetReal2D 
Return the particular element of singlechannel array. If the array has multiple channels, runtime error is raised. Note that cvGet*D function can be used safely for both singlechannel and multiplechannel arrays though they are a bit slower.
 
cvGetReal3D 
Return the particular element of singlechannel array. If the array has multiple channels, runtime error is raised. Note that cvGet*D function can be used safely for both singlechannel and multiplechannel arrays though they are a bit slower.
 
cvGetRow 
Return the header, corresponding to a specified row of the input array
 
cvGetRows 
Return the header, corresponding to a specified row span of the input array
 
cvGetSize 
Returns number of rows (CvSize::height) and number of columns (CvSize::width) of the input matrix or image. In case of image the size of ROI is returned.
 
cvGetSpatialMoment 
Retrieves the spatial moment, which in case of image moments is defined as:
M_{x_order,y_order}=sum_{x,y}(I(x,y) * x^{x_order} * y^{y_order})
where I(x,y) is the intensity of the pixel (x, y).
 
cvGetSubRect 
Returns header, corresponding to a specified rectangle of the input array. In other words, it allows the user to treat a rectangular part of input array as a standalone array. ROI is taken into account by the function so the subarray of ROI is actually extracted.
 
cvInitImageHeader 
Initializes the image header structure, pointer to which is passed by the user, and returns the pointer.
 
cvInitMatHeader 
Initializes already allocated CvMat structure. It can be used to process raw data with OpenCV matrix functions.
 
cvInitMatNDHeader 
Initializes CvMatND structure allocated by the user
 
cvMaxRect 
Finds minimum area rectangle that contains both input rectangles inside
 
cvRange 
Initializes the matrix as following:
arr(i,j)=(endstart)*(i*cols(arr)+j)/(cols(arr)*rows(arr))
 
cvReleaseImage 
Releases the header and the image data.
 
cvReleaseImageHeader 
Releases the header.
 
cvReleaseMat 
Decrements the matrix data reference counter and releases matrix header
 
cvReleaseSparseMat 
The function releases the sparse array and clears the array pointer upon exit.
 
cvResetImageROI 
Releases image ROI. After that the whole image is considered selected.
 
cvReshape 
initializes CvMat header so that it points to the same data as the original array but has different shape  different number of channels, different number of rows or both
 
cvSampleLine 
Implements a particular case of application of line iterators. The function reads all the image points lying on the line between pt1 and pt2, including the ending points, and stores them into the buffer
 
cvSet2D 
Assign the new value to the particular element of array
 
cvSetData 
Assigns user data to the array header.
 
cvSetImageCOI 
Sets the channel of interest to a given value. Value 0 means that all channels are selected, 1 means that the first channel is selected etc. If ROI is NULL and coi != 0, ROI is allocated.
 
cvSetImageROI 
Sets the image ROI to a given rectangle. If ROI is NULL and the value of the parameter rect is not equal to the whole image, ROI is allocated.
 
cvSetReal1D 
Assign the new value to the particular element of singlechannel array
 
cvSetReal2D 
Assign the new value to the particular element of singlechannel array
 
cvSetReal3D 
Assign the new value to the particular element of singlechannel array
 
cvSetRealND 
Assign the new value to the particular element of singlechannel array
 
CvtColor(IInputArray, IOutputArray, ColorConversion, Int32) 
Converts input image from one color space to another. The function ignores colorModel and channelSeq fields of IplImage header, so the source image color space should be specified correctly (including order of the channels in case of RGB space, e.g. BGR means 24bit format with B0 G0 R0 B1 G1 R1 ... layout, whereas RGB means 24bit format with R0 G0 B0 R1 G1 B1 ... layout).
 
CvtColor(IInputArray, IOutputArray, Type, Type) 
Converts input image from one color space to another. The function ignores colorModel and channelSeq fields of IplImage header, so the source image color space should be specified correctly (including order of the channels in case of RGB space, e.g. BGR means 24bit format with B0 G0 R0 B1 G1 R1 ... layout, whereas RGB means 24bit format with R0 G0 B0 R1 G1 B1 ... layout).
 
Dct 
Performs forward or inverse transform of 1D or 2D floatingpoint array
 
Decolor 
Transforms a color image to a grayscale image. It is a basic tool in digital printing, stylized blackandwhite photograph rendering, and in many single channel image processing applications
 
DefaultLoadUnmanagedModules 
Attempts to load opencv modules from the specific location
 
DenoiseTVL1 
Primaldual algorithm is an algorithm for solving special types of variational problems (that is, finding a function to minimize some functional).
As the image denoising, in particular, may be seen as the variational problem, primaldual algorithm then can be used to perform
denoising and this is exactly what is implemented.
 
DestroyAllWindows 
Destroys all of the HighGUI windows.
 
DestroyWindow 
Destroys the window with a given name
 
DetailEnhance 
This filter enhances the details of a particular image.
 
Determinant 
Returns determinant of the square matrix mat. The direct method is used for small matrices and Gaussian elimination is used for larger matrices. For symmetric positivedetermined matrices it is also possible to run SVD with U=V=NULL and then calculate determinant as a product of the diagonal elements of W
 
Dft 
Performs forward or inverse transform of 1D or 2D floatingpoint array
In case of real (singlechannel) data, the packed format, borrowed from IPL, is used to to represent a result of forward Fourier transform or input for inverse Fourier transform
 
Dilate 
Dilates the source image using the specified structuring element that determines the shape of a pixel neighborhood over which the maximum is taken
The function supports the inplace mode. Dilation can be applied several (iterations) times. In case of color image each channel is processed independently
 
DistanceTransform 
Calculates distance to closest zero pixel for all nonzero pixels of source image
 
Divide 
Divides one array by another:
dst(I)=scale * src1(I)/src2(I), if src1!=IntPtr.Zero;
dst(I)=scale/src2(I), if src1==IntPtr.Zero;
All the arrays must have the same type, and the same size (or ROI size)
 
DrawChessboardCorners 
Draws the individual chessboard corners detected (as red circles) in case if the board was not found (pattern_was_found=0) or the colored corners connected with lines when the board was found (pattern_was_found != 0).
 
DrawContours 
Draws contours outlines or filled contours.
 
EdgePreservingFilter 
Filtering is the fundamental operation in image and video processing. Edgepreserving smoothing filters are used in many different applications.
 
Eigen 
Computes eigenvalues and eigenvectors of a symmetric matrix
 
Ellipse(IInputOutputArray, RotatedRect, MCvScalar, Int32, LineType, Int32) 
Draws a simple or thick elliptic arc or fills an ellipse sector. The arc is clipped by ROI rectangle. A piecewiselinear approximation is used for antialiased arcs and thick arcs. All the angles are given in degrees.
 
Ellipse(IInputOutputArray, Point, Size, Double, Double, Double, MCvScalar, Int32, LineType, Int32) 
Draws a simple or thick elliptic arc or fills an ellipse sector. The arc is clipped by ROI rectangle. A piecewiselinear approximation is used for antialiased arcs and thick arcs. All the angles are given in degrees.
 
EMD 
Computes the 'minimal work' distance between two weighted point configurations.
 
EqualizeHist 
The algorithm normalizes brightness and increases contrast of the image
 
Erode 
Erodes the source image using the specified structuring element that determines the shape of a pixel neighborhood over which the minimum is taken:
dst=erode(src,element): dst(x,y)=min((x',y') in element)) src(x+x',y+y')
The function supports the inplace mode. Erosion can be applied several (iterations) times. In case of color image each channel is processed independently.
 
ErrorStr 
Returns the textual description for the specified error status code. In case of unknown status the function returns NULL pointer.
 
EstimateAffine3D(IInputArray, IInputArray, IOutputArray, IOutputArray, Double, Double) 
Computes an optimal affine transformation between two 3D point sets.
 
EstimateAffine3D(MCvPoint3D32f, MCvPoint3D32f, MatrixDouble, Byte, Double, Double) 
Computes an optimal affine transformation between two 3D point sets.
 
EstimateRigidTransform(PointF, PointF, Boolean) 
Estimate rigid transformation between 2 point sets.
 
EstimateRigidTransform(IInputArray, IInputArray, Boolean) 
Estimate rigid transformation between 2 images or 2 point sets.
 
Exp 
Calculates exponent of every element of input array:
dst(I)=exp(src(I))
Maximum relative error is 7e6. Currently, the function converts denormalized values to zeros on output
 
ExtractChannel 
Extract the specific channel from the image
 
FastNlMeansDenoising 
Perform image denoising using Nonlocal Means Denoising algorithm:
http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/
with several computational optimizations. Noise expected to be a Gaussian white noise.
 
FastNlMeansDenoisingColored 
Perform image denoising using Nonlocal Means Denoising algorithm (modified for color image):
http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/
with several computational optimizations. Noise expected to be a Gaussian white noise.
The function converts image to CIELAB colorspace and then separately denoise L and AB components with given h parameters using fastNlMeansDenoising function.
 
FillConvexPoly 
Fills convex polygon interior. This function is much faster than The function cvFillPoly and can fill not only the convex polygons but any monotonic polygon, i.e. a polygon whose contour intersects every horizontal line (scan line) twice at the most
 
FillPoly 
Fills the area bounded by one or more polygons.
 
Filter2D 
Applies arbitrary linear filter to the image. Inplace operation is supported. When the aperture is partially outside the image, the function interpolates outlier pixel values from the nearest pixels that is inside the image
 
FilterSpeckles 
Filters off small noise blobs (speckles) in the disparity map.
 
Find4QuadCornerSubpix 
Finds subpixelaccurate positions of the chessboard corners
 
FindChessboardCorners 
Attempts to determine whether the input image is a view of the chessboard pattern and locate internal chessboard corners
 
FindCirclesGrid(ImageGray, Byte, Size, CalibCgType, Feature2D) 
Finds centers in the grid of circles
 
FindCirclesGrid(IInputArray, Size, IOutputArray, CalibCgType, Feature2D) 
Finds centers in the grid of circles
 
FindContours 
Retrieves contours from the binary image and returns the number of retrieved contours. The pointer firstContour is filled by the function. It will contain pointer to the first most outer contour or IntPtr.Zero if no contours is detected (if the image is completely black). Other contours may be reached from firstContour using h_next and v_next links. The sample in cvDrawContours discussion shows how to use contours for connected component detection. Contours can be also used for shape analysis and object recognition  see squares.c in OpenCV sample directory
The function modifies the source image content
 
FindContourTree 
Retrieves contours from the binary image as a contour tree. The pointer firstContour is filled by the function. It is provided as a convenient way to obtain the hierarchy value as int[,].
The function modifies the source image content
 
FindEssentialMat 
Calculates an essential matrix from the corresponding points in two images.
 
FindFundamentalMat 
Calculates fundamental matrix using one of four methods listed above and returns the number of fundamental matrices found (1 or 3) and 0, if no matrix is found.
 
FindHomography(PointF, PointF, IOutputArray, HomographyMethod, Double, IOutputArray) 
Finds perspective transformation H=h_ij between the source and the destination planes
 
FindHomography(IInputArray, IInputArray, IOutputArray, HomographyMethod, Double, IOutputArray) 
Finds perspective transformation H=hij between the source and the destination planes
 
FindNonZero 
Find the location of the nonzero pixel
 
FitEllipse 
Fits an ellipse around a set of 2D points.
 
FitLine(IInputArray, IOutputArray, DistType, Double, Double, Double) 
Fits line to 2D or 3D point set
 
FitLine(PointF, PointF, PointF, DistType, Double, Double, Double) 
Fits line to 2D or 3D point set
 
Flip 
Flips the array in one of different 3 ways (row and column indices are 0based)
 
FloodFill 
Fills a connected component with given color.
 
GaussianBlur 
Blurs an image using a Gaussian filter.
 
Gemm 
Performs generalized matrix multiplication:
dst = alpha*op(src1)*op(src2) + beta*op(src3), where op(X) is X or XT
 
GetAffineTransform(PointF, PointF) 
Calculates the matrix of an affine transform such that:
(x'_i,y'_i)^T=map_matrix (x_i,y_i,1)^T
where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..2.
 
GetAffineTransform(IInputArray, IOutputArray) 
Calculates the matrix of an affine transform such that:
(x'_i,y'_i)^T=map_matrix (x_i,y_i,1)^T
where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..2.
 
GetCvStructSizes 
This function retrieve the Open CV structure sizes in unmanaged code
 
GetDefaultNewCameraMatrix 
Returns the default new camera matrix.
 
GetDepthType(Type) 
Get the corresponding opencv depth type
 
GetDepthType(DepthType) 
Get the corresponding depth type
 
GetErrMode 
Returns the current error mode
 
GetErrStatus 
Returns the current error status  the value set with the last cvSetErrStatus call. Note, that in Leaf mode the program terminates immediately after error occurred, so to always get control after the function call, one should call cvSetErrMode and set Parent or Silent error mode.
 
GetModuleFormatString 
Get the module format string.
 
GetNumThreads 
Return the current number of threads that are used by parallelized (via OpenMP) OpenCV functions.
 
GetOptimalDFTSize 
Returns the minimum number N that is greater to equal to size0, such that DFT of a vector of size N can be computed fast. In the current implementation N=2^p x 3^q x 5^r for some p, q, r.
 
GetOptimalNewCameraMatrix 
Returns the new camera matrix based on the free scaling parameter.
 
GetPerspectiveTransform(PointF, PointF) 
calculates matrix of perspective transform such that:
(t_i x'_i,t_i y'_i,t_i)^T=map_matrix (x_i,y_i,1)^T
where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..3.
 
GetPerspectiveTransform(IInputArray, IInputArray) 
calculates matrix of perspective transform such that:
(t_i x'_i,t_i y'_i,t_i)^T=map_matrix (x_i,y_i,1)T
where dst(i)=(x'_i,y'_i), src(i)=(x_i,y_i), i=0..3.
 
GetRectSubPix 
Extracts pixels from src:
dst(x, y) = src(x + center.x  (width(dst)1)*0.5, y + center.y  (height(dst)1)*0.5)
where the values of pixels at noninteger coordinates are retrieved using bilinear interpolation. Every channel of multiplechannel images is processed independently. Whereas the rectangle center must be inside the image, the whole rectangle may be partially occluded. In this case, the replication border mode is used to get pixel values beyond the image boundaries.
 
GetRotationMatrix2D 
Calculates rotation matrix
 
GetStructuringElement 
Returns a structuring element of the specified size and shape for morphological operations.
 
GetTextSize 
Calculates the width and height of a text string.
 
GetThreadNum 
Returns the index, from 0 to cvGetNumThreads()1, of the thread that called the function. It is a wrapper for the function omp_get_thread_num() from OpenMP runtime. The retrieved index may be used to access localthread data inside the parallelized code fragments.
 
GrabCut 
The grab cut algorithm for segmentation
 
GroupRectangles(VectorOfRect, Int32, Double) 
Groups the object candidate rectangles.
 
GroupRectangles(VectorOfRect, VectorOfInt, Int32, Double) 
Groups the object candidate rectangles.
 
GroupRectangles(VectorOfRect, VectorOfInt, VectorOfDouble, Int32, Double) 
Groups the object candidate rectangles.
 
GroupRectangles(VectorOfRect, Int32, Double, VectorOfInt, VectorOfDouble) 
Groups the object candidate rectangles.
 
GroupRectanglesMeanshift 
Groups the object candidate rectangles.
 
HConcat 
Horizontally concatenate two images
 
HoughCircles(IInputArray, HoughType, Double, Double, Double, Double, Int32, Int32) 
Finds circles in a grayscale image using the Hough transform
 
HoughCircles(IInputArray, IOutputArray, HoughType, Double, Double, Double, Double, Int32, Int32) 
Finds circles in grayscale image using some modification of Hough transform
 
HoughLines 
Finds lines in a binary image using the standard Hough transform.
 
HoughLinesP(IInputArray, Double, Double, Int32, Double, Double) 
Finds line segments in a binary image using the probabilistic Hough transform.
 
HoughLinesP(IInputArray, IOutputArray, Double, Double, Int32, Double, Double) 
Finds line segments in a binary image using the probabilistic Hough transform.
 
HuMoments 
Calculates seven Hu invariants
 
IlluminationChange 
Applying an appropriate nonlinear transformation to the gradient field inside the selection and then integrating back with a Poisson solver, modifies locally the apparent illumination of an image.
 
Imdecode(Byte, ImreadModes, Mat) 
Decode image stored in the buffer
 
Imdecode(IInputArray, ImreadModes, Mat) 
Decode image stored in the buffer
 
Imencode 
encode image and store the result as a byte vector.
 
Imread 
Loads an image from the specified file and returns the pointer to the loaded image. Currently the following file formats are supported:
Windows bitmaps  BMP, DIB;
JPEG files  JPEG, JPG, JPE;
Portable Network Graphics  PNG;
Portable image format  PBM, PGM, PPM;
Sun rasters  SR, RAS;
TIFF files  TIFF, TIF;
OpenEXR HDR images  EXR;
JPEG 2000 images  jp2.
 
Imreadmulti 
The function imreadmulti loads a multipage image from the specified file into a vector of Mat objects.
 
Imshow 
Shows the image in the specified window
 
Imwrite 
Saves the image to the specified file. The image format is chosen depending on the filename extension, see cvLoadImage. Only 8bit singlechannel or 3channel (with 'BGR' channel order) images can be saved using this function. If the format, depth or channel order is different, use cvCvtScale and cvCvtColor to convert it before saving, or use universal cvSave to save the image to XML or YAML format
 
InitCameraMatrix2D 
Finds an initial camera matrix from 3D2D point correspondences.
 
InitUndistortRectifyMap 
This function is an extended version of cvInitUndistortMap. That is, in addition to the correction of lens distortion, the function can also apply arbitrary perspective transformation R and finally it can scale and shift the image according to the new camera matrix
 
Inpaint 
Reconstructs the selected image area from the pixel near the area boundary. The function may be used to remove dust and scratches from a scanned photo, or to remove undesirable objects from still images or video.
 
InRange 
Performs range check for every element of the input array:
dst(I)=lower(I)_0 <= src(I)_0 <= upper(I)_0
For singlechannel arrays,
dst(I)=lower(I)_0 <= src(I)_0 <= upper(I)_0 &&
lower(I)_1 <= src(I)_1 <= upper(I)_1
For twochannel arrays etc.
dst(I) is set to 0xff (all '1'bits) if src(I) is within the range and 0 otherwise. All the arrays must have the same type, except the destination, and the same size (or ROI size)
 
InsertChannel 
Insert the specific channel to the image
 
Integral 
Calculates one or more integral images for the source image
Using these integral images, one may calculate sum, mean, standard deviation over arbitrary upright or rotated rectangular region of the image in a constant time.
It makes possible to do a fast blurring or fast block correlation with variable window size etc. In case of multichannel images sums for each channel are accumulated independently.
 
Invert 
Inverts matrix src1 and stores the result in src2
 
InvertAffineTransform 
Inverts an affine transformation
 
IsContourConvex 
The function tests whether the input contour is convex or not. The contour must be simple, that is, without selfintersections. Otherwise, the function output is undefined.
 
Kmeans 
Implements kmeans algorithm that finds centers of cluster_count clusters and groups the input samples around the clusters. On output labels(i) contains a cluster index for sample stored in the ith row of samples matrix
 
Laplacian 
Calculates Laplacian of the source image by summing second x and y derivatives calculated using Sobel operator:
dst(x,y) = d2src/dx2 + d2src/dy2
Specifying aperture_size=1 gives the fastest variant that is equal to convolving the image with the following kernel:
0 1 0
1 4 1
0 1 0
Similar to cvSobel function, no scaling is done and the same combinations of input and output formats are supported.
 
Line 
Draws the line segment between pt1 and pt2 points in the image. The line is clipped by the image or ROI rectangle. For nonantialiased lines with integer coordinates the 8connected or 4connected Bresenham algorithm is used. Thick lines are drawn with rounding endings. Antialiased lines are drawn using Gaussian filtering.
 
LinearPolar 
The function emulates the human "foveal" vision and can be used for fast scale and rotationinvariant template matching, for object tracking etc.
 
LoadUnmanagedModules 
Attempts to load opencv modules from the specific location
 
Log 
Calculates natural logarithm of absolute value of every element of input array:
dst(I)=log(abs(src(I))), src(I)!=0
dst(I)=C, src(I)=0
Where C is large negative number (700 in the current implementation)
 
LogPolar 
The function emulates the human "foveal" vision and can be used for fast scale and rotationinvariant template matching, for object tracking etc.
 
LUT 
Fills the destination array with values from the lookup table. Indices of the entries are taken from the source array. That is, the function processes each element of src as following:
dst(I)=lut[src(I)+DELTA]
where DELTA=0 if src has depth CV_8U, and DELTA=128 if src has depth CV_8S
 
Mahalanobis 
Calculates the weighted distance between two vectors and returns it
 
MakeType 
This function performs the same as MakeType macro
 
MatchShapes 
Compares two shapes. The 3 implemented methods all use Hu moments
 
MatchTemplate 
This function is similiar to cvCalcBackProjectPatch. It slids through image, compares overlapped patches of size wxh with templ using the specified method and stores the comparison results to result
 
Max 
Calculates perelement maximum of two arrays:
dst(I)=max(src1(I), src2(I))
All the arrays must have a single channel, the same data type and the same size (or ROI size).
 
Mean 
Calculates the average value M of array elements, independently for each channel:
N = sumI mask(I)!=0
Mc = 1/N * sumI,mask(I)!=0 arr(I)c
If the array is IplImage and COI is set, the function processes the selected channel only and stores the average to the first scalar component (S0).
 
MeanShift 
Iterates to find the object center given its back projection and initial position of search window. The iterations are made until the search window center moves by less than the given value and/or until the function has done the maximum number of iterations.
 
MeanStdDev(IInputArray, IOutputArray, IOutputArray, IInputArray) 
Calculates a mean and standard deviation of array elements.
 
MeanStdDev(IInputArray, MCvScalar, MCvScalar, IInputArray) 
The function cvAvgSdv calculates the average value and standard deviation of array elements, independently for each channel
 
MedianBlur 
Blurs an image using the median filter.
 
Merge 
This function is the opposite to cvSplit. If the destination array has N channels then if the first N input channels are not IntPtr.Zero, all they are copied to the destination array, otherwise if only a single source channel of the first N is not IntPtr.Zero, this particular channel is copied into the destination array, otherwise an error is raised. Rest of source channels (beyond the first N) must always be IntPtr.Zero. For IplImage cvCopy with COI set can be also used to insert a single channel into the image.
 
Min 
Calculates perelement minimum of two arrays:
dst(I)=min(src1(I),src2(I))
All the arrays must have a single channel, the same data type and the same size (or ROI size).
 
MinAreaRect(PointF) 
Find the bounding rectangle for the specific array of points
 
MinAreaRect(IInputArray) 
Finds a rotated rectangle of the minimum area enclosing the input 2D point set.
 
MinEnclosingCircle(PointF) 
Finds the minimal circumscribed circle for 2D point set using iterative algorithm. It returns nonzero if the resultant circle contains all the input points and zero otherwise (i.e. algorithm failed)
 
MinEnclosingCircle(IInputArray) 
Finds the minimal circumscribed circle for 2D point set using iterative algorithm. It returns nonzero if the resultant circle contains all the input points and zero otherwise (i.e. algorithm failed)
 
MinEnclosingTriangle 
Finds a triangle of minimum area enclosing a 2D point set and returns its area.
 
MinMaxIdx 
Finds the global minimum and maximum in an array
 
MinMaxLoc 
Finds minimum and maximum element values and their positions. The extremums are searched over the whole array, selected ROI (in case of IplImage) or, if mask is not IntPtr.Zero, in the specified array region. If the array has more than one channel, it must be IplImage with COI set. In case if multidimensional arrays min_loc>x and max_loc>x will contain raw (linear) positions of the extremums
 
MixChannels 
The function cvMixChannels is a generalized form of cvSplit and cvMerge and some forms of cvCvtColor. It can be used to change the order of the planes, add/remove alpha channel, extract or insert a single plane or multiple planes etc.
 
Moments 
Calculates spatial and central moments up to the third order and writes them to moments. The moments may be used then to calculate gravity center of the shape, its area, main axises and various shape characeteristics including 7 Hu invariants.
 
MorphologyEx 
Performs advanced morphological transformations.
 
MulSpectrums 
Performs perelement multiplication of the two CCSpacked or complex matrices that are results of real or complex Fourier transform.
 
Multiply 
Calculates perelement product of two arrays:
dst(I)=scale*src1(I)*src2(I)
All the arrays must have the same type, and the same size (or ROI size)
 
MulTransposed 
Calculates the product of src and its transposition.
The function evaluates dst=scale(srcdelta)*(srcdelta)^T if order=0, and dst=scale(srcdelta)^T*(srcdelta) otherwise.
 
NamedWindow 
Creates a window which can be used as a placeholder for images and trackbars. Created windows are reffered by their names.
If the window with such a name already exists, the function does nothing.
 
Norm(IInputArray, NormType, IInputArray) 
Returns the calculated norm. The multiplechannel array are treated as singlechannel, that is, the results for all channels are combined.
 
Norm(IInputArray, IInputOutputArray, NormType, IInputArray) 
Returns the calculated norm. The multiplechannel array are treated as singlechannel, that is, the results for all channels are combined.
 
Normalize 
normalizes the input array so that it's norm or value range takes the certain value(s).
 
OclFinish 
Finishes OpenCL queue.
 
OclGetPlatformsSummary 
Get the OpenCL platform summary as a string
 
OclSetDefaultDevice 
Set the default opencl device
 
PCABackProject 
Reconstructs vectors from their PC projections.
 
PCACompute(IInputArray, IInputOutputArray, IOutputArray, Double) 
Performs Principal Component Analysis of the supplied dataset.
 
PCACompute(IInputArray, IInputOutputArray, IOutputArray, Int32) 
Performs Principal Component Analysis of the supplied dataset.
 
PCAProject 
Projects vector(s) to the principal component subspace.
 
PencilSketch 
Pencillike nonphotorealistic line drawing
 
PerspectiveTransform(PointF, IInputArray) 
Transforms every element of src in the following way:
(x, y) > (x'/w, y'/w),
where
(x', y', w') = mat3x3 * (x, y, 1)
and w = w' if w'!=0,
inf otherwise
 
PerspectiveTransform(IInputArray, IOutputArray, IInputArray) 
Transforms every element of src (by treating it as 2D or 3D vector) in the following way:
(x, y, z) > (x'/w, y'/w, z'/w) or
(x, y) > (x'/w, y'/w),
where
(x', y', z', w') = mat4x4 * (x, y, z, 1) or
(x', y', w') = mat3x3 * (x, y, 1)
and w = w' if w'!=0,
inf otherwise
 
PhaseCorrelate 
The function is used to detect translational shifts that occur between two images. The operation takes advantage of the Fourier shift theorem for detecting the translational shift in the frequency domain. It can be used for fast image registration as well as motion estimation.
 
PointPolygonTest 
Determines whether the point is inside contour, outside, or lies on an edge (or coinsides with a vertex). It returns positive, negative or zero value, correspondingly
 
PolarToCart 
Calculates either xcoordinate, ycoordinate or both of every vector magnitude(I)* exp(angle(I)*j), j=sqrt(1):
x(I)=magnitude(I)*cos(angle(I)),
y(I)=magnitude(I)*sin(angle(I))
 
Polylines(IInputOutputArray, IInputArray, Boolean, MCvScalar, Int32, LineType, Int32) 
Draws a single or multiple polygonal curves
 
Polylines(IInputOutputArray, Point, Boolean, MCvScalar, Int32, LineType, Int32) 
Draws a single or multiple polygonal curves
 
Pow 
Raises every element of input array to p:
dst(I)=src(I)p, if p is integer
dst(I)=abs(src(I))p, otherwise
That is, for noninteger power exponent the absolute values of input array elements are used. However, it is possible to get true values for negative values using some extra operations, as the following sample, computing cube root of array elements, shows:
CvSize size = cvGetSize(src);
CvMat* mask = cvCreateMat( size.height, size.width, CV_8UC1 );
cvCmpS( src, 0, mask, CV_CMP_LT ); /* find negative elements */
cvPow( src, dst, 1./3 );
cvSubRS( dst, cvScalarAll(0), dst, mask ); /* negate the results of negative inputs */
cvReleaseMat( &mask );
For some values of power, such as integer values, 0.5 and 0.5, specialized faster algorithms are used.
 
ProjectPoints(MCvPoint3D32f, IInputArray, IInputArray, IInputArray, IInputArray, IOutputArray, Double) 
Computes projections of 3D points to the image plane given intrinsic and extrinsic camera parameters.
Optionally, the function computes jacobians  matrices of partial derivatives of image points as functions of all the input parameters w.r.t. the particular parameters, intrinsic and/or extrinsic.
The jacobians are used during the global optimization in cvCalibrateCamera2 and cvFindExtrinsicCameraParams2.
The function itself is also used to compute backprojection error for with current intrinsic and extrinsic parameters.
 
ProjectPoints(IInputArray, IInputArray, IInputArray, IInputArray, IInputArray, IOutputArray, IOutputArray, Double) 
Computes projections of 3D points to the image plane given intrinsic and extrinsic camera parameters. Optionally, the function computes jacobians  matrices of partial derivatives of image points as functions of all the input parameters w.r.t. the particular parameters, intrinsic and/or extrinsic. The jacobians are used during the global optimization in cvCalibrateCamera2 and cvFindExtrinsicCameraParams2. The function itself is also used to compute backprojection error for with current intrinsic and extrinsic parameters.
Note, that with intrinsic and/or extrinsic parameters set to special values, the function can be used to compute just extrinsic transformation or just intrinsic transformation (i.e. distortion of a sparse set of points).
 
PSNR 
Computes PSNR image/video quality metric
 
PutText 
Renders the text in the image with the specified font and color. The printed text is clipped by ROI rectangle. Symbols that do not belong to the specified font are replaced with the rectangle symbol.
 
PyrDown 
Performs downsampling step of Gaussian pyramid decomposition. First it convolves source image with the specified filter and then downsamples the image by rejecting even rows and columns.
 
PyrMeanShiftFiltering 
Filters image using meanshift algorithm
 
PyrUp 
Performs upsampling step of Gaussian pyramid decomposition. First it upsamples the source image by injecting even zero rows and columns and then convolves result with the specified filter multiplied by 4 for interpolation. So the destination image is four times larger than the source image.
 
Randn(IInputOutputArray, IInputArray, IInputArray) 
Fills the array with normally distributed random numbers.
 
Randn(IInputOutputArray, MCvScalar, MCvScalar) 
Fills the array with normally distributed random numbers.
 
RandShuffle 
Shuffles the matrix by swapping randomly chosen pairs of the matrix elements on each iteration (where each element may contain several components in case of multichannel arrays)
 
Randu(IInputOutputArray, IInputArray, IInputArray) 
Generates a single uniformlydistributed random number or an array of random numbers.
 
Randu(IInputOutputArray, MCvScalar, MCvScalar) 
Generates a single uniformlydistributed random number or an array of random numbers.
 
RawDataToBitmap 
Convert raw data to bitmap
 
ReadCloud 
Read point cloud from file
 
Rectangle 
Draws a rectangle specified by a CvRect structure
 
RedirectError(IntPtr, IntPtr, IntPtr) 
Sets a new error handler that can be one of standard handlers or a custom handler that has the certain interface. The handler takes the same parameters as cvError function. If the handler returns nonzero value, the program is terminated, otherwise, it continues. The error handler may check the current error mode with cvGetErrMode to make a decision.
 
RedirectError(CvInvokeCvErrorCallback, IntPtr, IntPtr) 
Sets a new error handler that can be one of standard handlers or a custom handler that has the certain interface. The handler takes the same parameters as cvError function. If the handler returns nonzero value, the program is terminated, otherwise, it continues. The error handler may check the current error mode with cvGetErrMode to make a decision.
 
Reduce 
Reduces matrix to a vector by treating the matrix rows/columns as a set of 1D vectors and performing the specified operation on the vectors until a single row/column is obtained.
 
Remap 
Applies a generic geometrical transformation to an image.
 
Repeat 
Fills the destination array with source array tiled:
dst(i,j)=src(i mod rows(src), j mod cols(src))So the destination array may be as larger as well as smaller than the source array
 
ReprojectImageTo3D 
Transforms 1channel disparity map to 3channel image, a 3D surface.
 
Resize 
Resizes the image src down to or up to the specified size
 
ResizeForFrame 
Resize an image such that it fits in a given frame
 
Rodrigues 
Converts a rotation vector to rotation matrix or vice versa. Rotation vector is a compact representation of rotation matrix. Direction of the rotation vector is the rotation axis and the length of the vector is the rotation angle around the axis.
 
RotatedRectangleIntersection 
Finds out if there is any intersection between two rotated rectangles.
 
SanityCheck 
Check if the size of the C structures match those of C#
 
SeamlessClone 
Image editing tasks concern either global changes (color/intensity corrections, filters, deformations) or local changes concerned to a selection. Here we are interested in achieving local changes, ones that are restricted to a region manually selected (ROI), in a seamless and effortless manner. The extent of the changes ranges from slight distortions to complete replacement by novel content
 
SegmentMotion 
Finds all the motion segments and marks them in segMask with individual values each (1,2,...). It also returns a sequence of CvConnectedComp structures, one per each motion components. After than the motion direction for every component can be calculated with cvCalcGlobalOrientation using extracted mask of the particular component (using cvCmp)
 
SetErrMode 
Sets the specified error mode.
 
SetErrStatus 
Sets the error status to the specified value. Mostly, the function is used to reset the error status (set to it CV_StsOk) to recover after error. In other cases it is more natural to call cvError or CV_ERROR.
 
SetIdentity 
Initializes scaled identity matrix:
arr(i,j)=value if i=j,
0 otherwise
 
SetNumThreads 
Sets the number of threads that are used by parallelized OpenCV functions.
 
Sobel 
The Sobel operators combine Gaussian smoothing and differentiation so the result is more or less robust to the noise. Most often, the function is called with (xorder=1, yorder=0, aperture_size=3) or (xorder=0, yorder=1, aperture_size=3) to calculate first x or y image derivative. The first case corresponds to
1 0 1 2 0 2 1 0 1kernel and the second one corresponds to 1 2 1  0 0 0  1 2 1or  1 2 1  0 0 0 1 2 1kernel, depending on the image origin (origin field of IplImage structure). No scaling is done, so the destination image usually has larger by absolute value numbers than the source image. To avoid overflow, the function requires 16bit destination image if the source image is 8bit. The result can be converted back to 8bit using cvConvertScale or cvConvertScaleAbs functions. Besides 8bit images the function can process 32bit floatingpoint images. Both source and destination must be singlechannel images of equal size or ROI size  
Solve 
Solves linear system (src1)*(dst) = (src2)
 
SolveCubic 
finds real roots of a cubic equation:
coeffs[0]*x^3 + coeffs[1]*x^2 + coeffs[2]*x + coeffs[3] = 0
(if coeffs is 4element vector)
or
x^3 + coeffs[0]*x^2 + coeffs[1]*x + coeffs[2] = 0
(if coeffs is 3element vector)
 
SolveLP 
Solve given (noninteger) linear programming problem using the Simplex Algorithm (Simplex Method).
What we mean here by “linear programming problem” (or LP problem, for short) can be formulated as:
Maximize c x subject to: Ax <= b and x >= 0
 
SolvePnP(IInputArray, IInputArray, IInputArray, IInputArray, IOutputArray, IOutputArray, Boolean, SolvePnpMethod) 
Estimates extrinsic camera parameters using known intrinsic parameters and extrinsic parameters for each view. The coordinates of 3D object points and their correspondent 2D projections must be specified. This function also minimizes backprojection error
 
SolvePnP(MCvPoint3D32f, PointF, IInputArray, IInputArray, IOutputArray, IOutputArray, Boolean, SolvePnpMethod) 
Estimates extrinsic camera parameters using known intrinsic parameters and extrinsic parameters for each view. The coordinates of 3D object points and their correspondent 2D projections must be specified. This function also minimizes backprojection error.
 
SolvePnPRansac 
Finds an object pose from 3D2D point correspondences using the RANSAC scheme.
 
SolvePoly 
Finds all real and complex roots of any degree polynomial with real coefficients
 
Split 
Divides a multichannel array into separate singlechannel arrays. Two modes are available for the operation. If the source array has N channels then if the first N destination channels are not IntPtr.Zero, all they are extracted from the source array, otherwise if only a single destination channel of the first N is not IntPtr.Zero, this particular channel is extracted, otherwise an error is raised. Rest of destination channels (beyond the first N) must always be IntPtr.Zero. For IplImage cvCopy with COI set can be also used to extract a single channel from the image
 
Sqrt 
Calculate square root of each source array element. in the case of multichannel
arrays each channel is processed independently. The function accuracy is approximately
the same as of the builtin std::sqrt.
 
StereoCalibrate(IInputArray, IInputArray, IInputArray, IInputOutputArray, IInputOutputArray, IInputOutputArray, IInputOutputArray, Size, IOutputArray, IOutputArray, IOutputArray, IOutputArray, CalibType, MCvTermCriteria) 
Estimates transformation between the 2 cameras making a stereo pair. If we have a stereo camera, where the relative position and orientatation of the 2 cameras is fixed, and if we computed poses of an object relative to the fist camera and to the second camera, (R1, T1) and (R2, T2), respectively (that can be done with cvFindExtrinsicCameraParams2), obviously, those poses will relate to each other, i.e. given (R1, T1) it should be possible to compute (R2, T2)  we only need to know the position and orientation of the 2nd camera relative to the 1st camera. That's what the described function does. It computes (R, T) such that:
R2=R*R1,
T2=R*T1 + T
 
StereoCalibrate(MCvPoint3D32f, PointF, PointF, IInputOutputArray, IInputOutputArray, IInputOutputArray, IInputOutputArray, Size, IOutputArray, IOutputArray, IOutputArray, IOutputArray, CalibType, MCvTermCriteria) 
Estimates transformation between the 2 cameras making a stereo pair. If we have a stereo camera, where the relative position and orientatation of the 2 cameras is fixed, and if we computed poses of an object relative to the first camera and to the second camera, (R1, T1) and (R2, T2), respectively (that can be done with cvFindExtrinsicCameraParams2), obviously, those poses will relate to each other, i.e. given (R1, T1) it should be possible to compute (R2, T2)  we only need to know the position and orientation of the 2nd camera relative to the 1st camera. That's what the described function does. It computes (R, T) such that:
R2=R*R1,
T2=R*T1 + T
 
StereoRectify 
computes the rotation matrices for each camera that (virtually) make both camera image planes the same plane. Consequently, that makes all the epipolar lines parallel and thus simplifies the dense stereo correspondence problem. On input the function takes the matrices computed by cvStereoCalibrate and on output it gives 2 rotation matrices and also 2 projection matrices in the new coordinates. The function is normally called after cvStereoCalibrate that computes both camera matrices, the distortion coefficients, R and T
 
StereoRectifyUncalibrated 
computes the rectification transformations without knowing intrinsic parameters of the cameras and their relative position in space, hence the suffix "Uncalibrated". Another related difference from cvStereoRectify is that the function outputs not the rectification transformations in the object (3D) space, but the planar perspective transformations, encoded by the homography matrices H1 and H2. The function implements the following algorithm [Hartley99].
 
Stylization 
Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism. Edgeaware filters are ideal for stylization, as they can abstract regions of low contrast while preserving, or enhancing, highcontrast features.
 
Subtract 
Subtracts one array from another one:
dst(I)=src1(I)src2(I) if mask(I)!=0
All the arrays must have the same type, except the mask, and the same size (or ROI size)
 
Sum 
Calculates sum S of array elements, independently for each channel
Sc = sumI arr(I)c
If the array is IplImage and COI is set, the function processes the selected channel only and stores the sum to the first scalar component (S0).
 
SVBackSubst 
Performs a singular value back substitution.
 
SVDecomp 
Decomposes matrix A into a product of a diagonal matrix and two orthogonal matrices:
A=U*W*VT
Where W is diagonal matrix of singular values that can be coded as a 1D vector of singular values and U and V. All the singular values are nonnegative and sorted (together with U and V columns) in descenting order.
 
Swap(Mat, Mat) 
Swaps two matrices
 
Swap(UMat, UMat) 
Swaps two matrices
 
TextureFlattening 
By retaining only the gradients at edge locations, before integrating with the Poisson solver, one washes out the texture of the selected region, giving its contents a flat aspect. Here Canny Edge Detector is used.
 
Threshold 
Applies fixedlevel thresholding to singlechannel array. The function is typically used to get bilevel (binary) image out of grayscale image (cvCmpS could be also used for this purpose) or for removing a noise, i.e. filtering out pixels with too small or too large values. There are several types of thresholding the function supports that are determined by threshold_type
 
Trace 
Returns sum of diagonal elements of the matrix mat.
 
Transform 
Performs matrix transformation of every element of array src and stores the results in dst
Both source and destination arrays should have the same depth and the same size or selected ROI size. transmat and shiftvec should be real floatingpoint matrices.
 
Transpose 
Transposes matrix src1:
dst(i,j)=src(j,i)
Note that no complex conjugation is done in case of complex matrix. Conjugation should be done separately: look at the sample code in cvXorS for example
 
TriangulatePoints 
Reconstructs points by triangulation.
 
Undistort 
Transforms the image to compensate radial and tangential lens distortion.
 
UndistortPoints 
Similar to cvInitUndistortRectifyMap and is opposite to it at the same time.
The functions are similar in that they both are used to correct lens distortion and to perform the optional perspective (rectification) transformation.
They are opposite because the function cvInitUndistortRectifyMap does actually perform the reverse transformation in order to initialize the maps properly, while this function does the forward transformation.
 
UpdateMotionHistory 
Updates the motion history image as following:
mhi(x,y)=timestamp if silhouette(x,y)!=0
0 if silhouette(x,y)=0 and mhi(x,y)<timestampduration
mhi(x,y) otherwise
That is, MHI pixels where motion occurs are set to the current timestamp, while the pixels where motion happened far ago are cleared.
 
VConcat 
Vertically concatenate two images
 
WaitKey 
Waits for key event infinitely (delay <= 0) or for "delay" milliseconds.
 
WarpAffine 
Applies an affine transformation to an image.
 
WarpPerspective 
Applies a perspective transformation to an image
 
Watershed 
Implements one of the variants of watershed, nonparametric markerbased segmentation algorithm, described in [Meyer92] Before passing the image to the function, user has to outline roughly the desired regions in the image markers with positive (>0) indices, i.e. every region is represented as one or more connected components with the pixel values 1, 2, 3 etc. Those components will be "seeds" of the future image regions. All the other pixels in markers, which relation to the outlined regions is not known and should be defined by the algorithm, should be set to 0's. On the output of the function, each pixel in markers is set to one of values of the "seed" components, or to 1 at boundaries between the regions.
 
WriteCloud 
Write point cloud to file
