Commit d3a159d3 authored by Vadim Pisarevsky's avatar Vadim Pisarevsky

added missing Python wrappers for OpenCV 1.x

parent 1b5f5dd3
# Macros
CV_RGB CvScalar
double red
double grn
double blu
CV_MAT_CN int
int i
CV_MAT_DEPTH int
int i
Scalar CvScalar
double val0
double val1 0
double val2 0
double val3 0
ScalarAll CvScalar
double val0123
RealScalar CvScalar
double val0
CV_IABS int
int a
CV_CMP int
int a
int b
CV_SIGN int
int a
CV_FOURCC int
char c1
char c2
char c3
char c4
CV_MAKETYPE int
int depth
int cn
CV_8UC int
int n
CV_8SC int
int n
CV_16UC int
int n
CV_16SC int
int n
CV_32SC int
int n
CV_32FC int
int n
CV_64FC int
int n
# Initialization
CloneImage IplImage*
IplImage image
SetImageCOI
IplImage image
int coi
GetImageCOI int
IplImage image
SetImageROI
IplImage image
CvRect rect
ResetImageROI
IplImage image
GetImageROI CvRect
IplImage image
CloneMat CvMat*
CvMat mat
CloneMatND CvMatND*
CvMatND mat
# Accessing Elements and sub-Arrays
Get1D CvScalar
CvArr arr
int idx
Get2D CvScalar
CvArr arr
int idx0
int idx1
Get3D CvScalar
CvArr arr
int idx0
int idx1
int idx2
GetND CvScalar
CvArr arr
ints indices
GetReal1D double
CvArr arr
int idx0
GetReal2D double
CvArr arr
int idx0
int idx1
GetReal3D double
CvArr arr
int idx0
int idx1
int idx2
GetRealND double
CvArr arr
ints idx
mGet double
CvMat mat
int row
int col
Set1D
CvArr arr
int idx
CvScalar value
Set2D
CvArr arr
int idx0
int idx1
CvScalar value
Set3D
CvArr arr
int idx0
int idx1
int idx2
CvScalar value
SetND
CvArr arr
ints indices
CvScalar value
SetReal1D
CvArr arr
int idx
double value
SetReal2D
CvArr arr
int idx0
int idx1
double value
SetReal3D
CvArr arr
int idx0
int idx1
int idx2
double value
SetRealND
CvArr arr
ints indices
double value
mSet
CvMat mat
int row
int col
double value
ClearND
CvArr arr
ints idx
# Sequences
CV_IS_SEQ_INDEX int
CvSeq s
CV_IS_SEQ_CURVE int
CvSeq s
CV_IS_SEQ_CLOSED int
CvSeq s
CV_IS_SEQ_CONVEX int
CvSeq s
CV_IS_SEQ_HOLE int
CvSeq s
CV_IS_SEQ_SIMPLE int
CvSeq s
# Curves and Shapes
Line
CvArr img
CvPoint pt1
CvPoint pt2
CvScalar color
int thickness 1
int lineType 8
int shift 0
Rectangle
CvArr img
CvPoint pt1
CvPoint pt2
CvScalar color
int thickness 1
int lineType 8
int shift 0
Circle
CvArr img
CvPoint center
int radius
CvScalar color
int thickness 1
int lineType 8
int shift 0
Ellipse
CvArr img
CvPoint center
CvSize axes
double angle
double start_angle
double end_angle
CvScalar color
int thickness 1
int lineType 8
int shift 0
EllipseBox
CvArr img
CvBox2D box
CvScalar color
int thickness 1
int lineType 8
int shift 0
FillPoly
CvArr img
pts_npts_contours polys
CvScalar color
int lineType 8
int shift 0
FillConvexPoly
CvArr img
CvPoints pn
CvScalar color
int lineType 8
int shift 0
PolyLine
CvArr img
pts_npts_contours polys
int is_closed
CvScalar color
int thickness 1
int lineType 8
int shift 0
#Text
InitFont font
CvFont font /O
int fontFace
double hscale
double vscale
double shear 0
int thickness 1
int lineType 8
PutText
CvArr img
char* text
CvPoint org
CvFont* font
CvScalar color
GetTextSize textSize,baseline
char* textString
CvFont* font
CvSize textSize /O
int baseline /O
# Point Sets and Contours
DrawContours
CvArr img
CvSeq contour
CvScalar external_color
CvScalar hole_color
int max_level
int thickness 1
int lineType 8
CvPoint offset cvPoint(0,0)
# RTTI and Generic Functions
Save
char* filename
generic structPtr
char* name NULL
char* comment NULL
Load generic
char* filename
CvMemStorage storage NULL
char* name NULL
# Accessing Elements and sub-Arrays
GetRow submat
CvArr arr
CvMat submat /J:arr,O,A
int row
GetRows submat
CvArr arr
CvMat submat /J:arr,O,A
int startRow
int endRow
int deltaRow 1
GetCol submat
CvArr arr
CvMat submat /J:arr,O,A
int col
GetCols submat
CvArr arr
CvMat submat /J:arr,O,A
int startCol
int endCol
GetDiag submat
CvArr arr
CvMat submat /J:arr,O,A
int diag 0
GetSubRect submat
CvArr arr
CvMat submat /J:arr,O,A
CvRect rect
GetSize CvSize
CvArr arr
GetElemType int
CvArr arr
# Copying and Filling
Copy
CvArr src
CvArr dst
CvArr mask NULL
Set
CvArr arr
CvScalar value
CvArr mask NULL
SetZero
CvArr arr
Zero
CvArr arr
SetIdentity
CvArr mat
CvScalar value cvRealScalar(1)
Range
CvArr mat
double start
double end
# Transforms and Permutations
# Reshape, ReshapeND - requires special data refcount code
Repeat
CvArr src
CvArr dst
Flip
CvArr src
CvArr dst NULL
int flipMode 0
Split
CvArr src
CvArr dst0
CvArr dst1
CvArr dst2
CvArr dst3
CvtPixToPlane
CvArr src
CvArr dst0
CvArr dst1
CvArr dst2
CvArr dst3
Merge
CvArr src0
CvArr src1
CvArr src2
CvArr src3
CvArr dst
MixChannels
cvarr_count src /K
cvarr_count dst
intpair fromTo
RandShuffle
CvArr mat
CvRNG* rng
double iter_factor 1.0
Sort
CvArr src
CvArr dst
CvArr idxmat
int flags 0
# Arithmetic, Logic and Comparison
LUT
CvArr src
CvArr dst
CvArr lut
ConvertScale
CvArr src
CvArr dst
double scale 1.0
double shift 0.0
CvtScale
CvArr src
CvArr dst
double scale 1.0
double shift 0.0
Scale
CvArr src
CvArr dst
double scale 1.0
double shift 0.0
Convert
CvArr src
CvArr dst
ConvertScaleAbs
CvArr src
CvArr dst
double scale 1.0
double shift 0.0
Add
CvArr src1
CvArr src2
CvArr dst
CvArr mask NULL
AddS
CvArr src
CvScalar value
CvArr dst
CvArr mask NULL
AddWeighted
CvArr src1
double alpha
CvArr src2
double beta
double gamma
CvArr dst
Sub
CvArr src1
CvArr src2
CvArr dst
CvArr mask NULL
SubS
CvArr src
CvScalar value
CvArr dst
CvArr mask NULL
SubRS
CvArr src
CvScalar value
CvArr dst
CvArr mask NULL
Mul
CvArr src1
CvArr src2
CvArr dst
double scale 1.0
Div
CvArr src1
CvArr src2
CvArr dst
double scale 1.0
And
CvArr src1
CvArr src2
CvArr dst
CvArr mask NULL
AndS
CvArr src
CvScalar value
CvArr dst
CvArr mask NULL
Or
CvArr src1
CvArr src2
CvArr dst
CvArr mask NULL
OrS
CvArr src
CvScalar value
CvArr dst
CvArr mask NULL
Xor
CvArr src1
CvArr src2
CvArr dst
CvArr mask NULL
XorS
CvArr src
CvScalar value
CvArr dst
CvArr mask NULL
Not
CvArr src
CvArr dst
Cmp
CvArr src1
CvArr src2
CvArr dst
int cmpOp
CmpS
CvArr src
double value
CvArr dst
int cmpOp
InRange
CvArr src
CvArr lower
CvArr upper
CvArr dst
InRangeS
CvArr src
CvScalar lower
CvScalar upper
CvArr dst
Max
CvArr src1
CvArr src2
CvArr dst
MaxS
CvArr src
double value
CvArr dst
Min
CvArr src1
CvArr src2
CvArr dst
MinS
CvArr src
double value
CvArr dst
AbsDiff
CvArr src1
CvArr src2
CvArr dst
AbsDiffS
CvArr src
CvArr dst
CvScalar value
Abs
CvArr src
CvArr dst
# Statistics
CountNonZero int
CvArr arr
Sum CvScalar
CvArr arr
Avg CvScalar
CvArr arr
CvArr mask NULL
AvgSdv mean,stdDev
CvArr arr
CvScalar mean /O
CvScalar stdDev /O
CvArr mask NULL
MinMaxLoc minVal,maxVal,minLoc,maxLoc
CvArr arr
double minVal /O
double maxVal /O
CvPoint minLoc /O
CvPoint maxLoc /O
CvArr mask NULL
Norm double
CvArr arr1
CvArr arr2
int normType CV_L2
CvArr mask NULL
Reduce
CvArr src
CvArr dst
int dim -1
int op CV_REDUCE_SUM
# Linear Algebra
DotProduct double
CvArr src1
CvArr src2
Normalize
CvArr src
CvArr dst
double a 1.0
double b 0.0
int norm_type CV_L2
CvArr mask NULL
CrossProduct
CvArr src1
CvArr src2
CvArr dst
ScaleAdd
CvArr src1
CvScalar scale
CvArr src2
CvArr dst
GEMM
CvArr src1
CvArr src2
double alpha
CvArr src3
double beta
CvArr dst
int tABC 0
MatMulAdd
CvArr src1
CvArr src2
CvArr src3
CvArr dst
MatMul
CvArr src1
CvArr src2
CvArr dst
Transform
CvArr src
CvArr dst
CvMat transmat
CvMat shiftvec NULL
PerspectiveTransform
CvArr src
CvArr dst
CvMat mat
MulTransposed
CvArr src
CvArr dst
int order
CvArr delta NULL
double scale 1.0
Trace CvScalar
CvArr mat
Transpose
CvArr src
CvArr dst
Det double
CvArr mat
Invert double
CvArr src
CvArr dst
int method CV_LU
Solve
CvArr A
CvArr B
CvArr X
int method CV_LU
SVD
CvArr A
CvArr W
CvArr U NULL
CvArr V NULL
int flags 0
SVBkSb
CvArr W
CvArr U
CvArr V
CvArr B
CvArr X
int flags
EigenVV
CvArr mat
CvArr evects
CvArr evals
double eps
int lowindex 0
int highindex 0
CalcCovarMatrix
cvarr_count vects /K
CvArr covMat
CvArr avg
int flags
Mahalonobis
CvArr vec1
CvArr vec2
CvArr mat
CalcPCA
CvArr data
CvArr avg
CvArr eigenvalues
CvArr eigenvectors
int flags
ProjectPCA
CvArr data
CvArr avg
CvArr eigenvectors
CvArr result
BackProjectPCA
CvArr proj
CvArr avg
CvArr eigenvects
CvArr result
# Math Functions
Round int
double value
Floor int
double value
Ceil int
double value
Sqrt float
float value
InvSqrt float
float value
Cbrt float
float value
FastArctan float
float y
float x
IsNaN int
double value
IsInf int
double value
CartToPolar
CvArr x
CvArr y
CvArr magnitude
CvArr angle NULL
int angleInDegrees 0
PolarToCart
CvArr magnitude
CvArr angle
CvArr x
CvArr y
int angleInDegrees 0
Pow
CvArr src
CvArr dst
double power
Exp
CvArr src
CvArr dst
Log
CvArr src
CvArr dst
SolveCubic
CvMat coeffs
CvMat roots
SolvePoly
CvMat coeffs
CvMat roots
int maxiter 10
int fig 10
# Random Number Generation
RNG CvRNG
int64 seed -1LL
RandArr
CvRNG* rng
CvArr arr
int distType
CvScalar param1
CvScalar param2
RandInt unsigned
CvRNG* rng
RandReal double
CvRNG* rng
# Discrete Transforms
DFT
CvArr src
CvArr dst
int flags
int nonzeroRows 0
GetOptimalDFTSize int
int size0
MulSpectrums
CvArr src1
CvArr src2
CvArr dst
int flags
DCT
CvArr src
CvArr dst
int flags
# Sequences
SeqRemove
CvSeq seq
int index
ClearSeq
CvSeq seq
CloneSeq
CvSeq seq
CvMemStorage storage
SeqRemoveSlice
CvSeq seq
CvSlice slice
SeqInvert
CvSeq seq
# Miscellaneous Functions
CheckArr int
CvArr arr
int flags 0
double min_val 0
double max_val 0
KMeans2 double
CvArr samples
int nclusters
CvArr labels
CvTermCriteria termcrit
int attempts 1
int flags 0
CvArr centers NULL
# Gradients, Edges, Corners and Features
Sobel
CvArr src
CvArr dst
int xorder
int yorder
int apertureSize 3
Laplace
CvArr src
CvArr dst
int apertureSize 3
Canny
CvArr image
CvArr edges
double threshold1
double threshold2
int aperture_size 3
PreCornerDetect
CvArr image
CvArr corners
int apertureSize 3
CornerEigenValsAndVecs
CvArr image
CvArr eigenvv
int blockSize
int aperture_size 3
CornerMinEigenVal
CvArr image
CvArr eigenval
int blockSize
int aperture_size 3
CornerHarris
CvArr image
CvArr harris_dst
int blockSize
int aperture_size 3
double k 0.04
FindCornerSubPix corners
CvArr image
CvPoint2D32fs corners
CvSize win
CvSize zero_zone
CvTermCriteria criteria
GoodFeaturesToTrack cornerCount
CvArr image
CvArr eigImage
CvArr tempImage
cvpoint2d32f_count cornerCount
double qualityLevel
double minDistance
CvArr mask NULL
int blockSize 3
int useHarris 0
double k 0.04
ExtractSURF keypoints,descriptors
CvArr image
CvArr mask
CvSeqOfCvSURFPoint* keypoints /O
CvSeqOfCvSURFDescriptor* descriptors /O
CvMemStorage storage
CvSURFParams params
GetStarKeypoints CvSeqOfCvStarKeypoint*
CvArr image
CvMemStorage storage
CvStarDetectorParams params cvStarDetectorParams()
# Sampling, Interpolation and Geometrical Transforms
GetRectSubPix
CvArr src
CvArr dst
CvPoint2D32f center
GetQuadrangleSubPix
CvArr src
CvArr dst
CvMat mapMatrix
Resize
CvArr src
CvArr dst
int interpolation CV_INTER_LINEAR
WarpAffine
CvArr src
CvArr dst
CvMat mapMatrix
int flags CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS
CvScalar fillval cvScalarAll(0)
GetAffineTransform
CvPoint2D32f* src
CvPoint2D32f* dst
CvMat mapMatrix
GetRotationMatrix2D
CvPoint2D32f center
double angle
double scale
CvMat mapMatrix
WarpPerspective
CvArr src
CvArr dst
CvMat mapMatrix
int flags CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS
CvScalar fillval cvScalarAll(0)
GetPerspectiveTransform
CvPoint2D32f* src
CvPoint2D32f* dst
CvMat mapMatrix
Remap
CvArr src
CvArr dst
CvArr mapx
CvArr mapy
int flags CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS
CvScalar fillval cvScalarAll(0)
ConvertMaps
CvArr mapx
CvArr mapy
CvArr mapxy
CvArr mapalpha
LogPolar
CvArr src
CvArr dst
CvPoint2D32f center
double M
int flags CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS
# Morphological Operations
CreateStructuringElementEx IplConvKernel*
int cols
int rows
int anchorX
int anchorY
int shape
ints values {NULL,0}
Erode
CvArr src
CvArr dst
IplConvKernel* element NULL
int iterations 1
Dilate
CvArr src
CvArr dst
IplConvKernel* element NULL
int iterations 1
MorphologyEx
CvArr src
CvArr dst
CvArr temp
IplConvKernel* element
int operation
int iterations 1
# Filters and Color Conversion
Smooth
CvArr src
CvArr dst
int smoothtype CV_GAUSSIAN
int param1 3
int param2 0
double param3 0
double param4 0
Filter2D
CvArr src
CvArr dst
CvMat kernel
CvPoint anchor cvPoint(-1,-1)
CopyMakeBorder
CvArr src
CvArr dst
CvPoint offset
int bordertype
CvScalar value cvScalarAll(0)
Integral
CvArr image
CvArr sum
CvArr sqsum NULL
CvArr tiltedSum NULL
CvtColor
CvArr src
CvArr dst
int code
Threshold
CvArr src
CvArr dst
double threshold
double maxValue
int thresholdType
AdaptiveThreshold
CvArr src
CvArr dst
double maxValue
int adaptive_method CV_ADAPTIVE_THRESH_MEAN_C /ch_adaptive_method
int thresholdType CV_THRESH_BINARY /ch_threshold_type
int blockSize 3
double param1 5
# Pyramids and the Applications
PyrDown
CvArr src
CvArr dst
int filter CV_GAUSSIAN_5x5
PyrUp
CvArr src
CvArr dst
int filter CV_GAUSSIAN_5x5
PyrSegmentation comp
IplImage src
IplImage dst
CvMemStorage storage
CvSeq* comp /O
int level
double threshold1
double threshold2
PyrMeanShiftFiltering
CvArr src
CvArr dst
double sp
double sr
int max_level 1
CvTermCriteria termcrit cvTermCriteria(CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,5,1)
# Image Segmentation, Connected Components and Contour Retrieval
FloodFill comp
CvArr image
CvPoint seed_point
CvScalar new_val
CvScalar lo_diff cvScalarAll(0)
CvScalar up_diff cvScalarAll(0)
CvConnectedComp comp /O
int flags 4
CvArr mask NULL
Watershed
CvArr image
CvArr markers
# Image and Contour Moments
Moments moments
cvarrseq arr
CvMoments moments /O
int binary 0
GetSpatialMoment double
CvMoments* moments
int x_order
int y_order
GetCentralMoment double
CvMoments* moments
int x_order
int y_order
GetNormalizedCentralMoment double
CvMoments* moments
int x_order
int y_order
# Special Image Transforms
HoughLines2 CvSeq*
CvArr image
CvMemStorage storage
int method
double rho
double theta
int threshold
double param1 0
double param2 0
HoughCircles
CvArr image
CvMat circle_storage
int method
double dp
double min_dist
double param1 100
double param2 100
int min_radius 0
int max_radius 0
DistTransform
CvArr src
CvArr dst
int distance_type CV_DIST_L2
int mask_size 3
floats mask {NULL,0}
CvArr labels NULL
Inpaint
CvArr src
CvArr mask
CvArr dst
double inpaintRadius
int flags
# Histograms
ClearHist
CvHistogram hist
CalcArrHist
CvArrs image
CvHistogram hist
int accumulate 0
CvArr mask NULL
CalcHist
IplImages image
CvHistogram hist
int accumulate 0
CvArr mask NULL
NormalizeHist
CvHistogram hist
double factor
ThreshHist
CvHistogram hist
double threshold
CompareHist double
CvHistogram hist1
CvHistogram hist2
int method
# CopyHist
CalcBackProject
IplImages image
CvArr back_project
CvHistogram hist
CalcArrBackProject
CvArrs image
CvArr back_project
CvHistogram hist
CalcBackProjectPatch
IplImages images
CvArr dst
CvSize patch_size
CvHistogram hist
int method
float factor
CalcProbDensity
CvHistogram hist1
CvHistogram hist2
CvHistogram dst_hist
double scale 255
EqualizeHist
CvArr src
CvArr dst
QueryHistValue_1D double
CvHistogram hist
int idx0
QueryHistValue_2D double
CvHistogram hist
int idx0
int idx1
QueryHistValue_3D double
CvHistogram hist
int idx0
int idx1
int idx2
QueryHistValue_nD double
CvHistogram hist
ints idx
# Matching
MatchTemplate
CvArr image
CvArr templ
CvArr result
int method
MatchShapes double
CvSeq object1
CvSeq object2
int method
double parameter 0
# Contour Processing Functions
ApproxChains CvSeq*
CvSeq src_seq
CvMemStorage storage
int method CV_CHAIN_APPROX_SIMPLE
double parameter 0
int minimal_perimeter 0
int recursive 0
BoundingRect CvRect
cvarrseq points
int update 0
ContourArea double
cvarrseq contour
CvSlice slice CV_WHOLE_SEQ
ArcLength double
cvarrseq curve
CvSlice slice CV_WHOLE_SEQ
int isClosed -1
# Computational Geometry
MaxRect CvRect
CvRect* rect1
CvRect* rect2
# TODO PointSeqFromMat
BoxPoints points
CvBox2D box
CvPoint2D32f_4 points /O,A
FitEllipse2 CvBox2D
CvArr points
ConvexHull2 CvSeq*
cvarrseq points
CvMemStorage storage
int orientation CV_CLOCKWISE
int return_points 0
CheckContourConvexity int
cvarrseq contour
ConvexityDefects CvSeqOfCvConvexityDefect*
cvarrseq contour
CvSeq convexhull
CvMemStorage storage
PointPolygonTest double
cvarrseq contour
CvPoint2D32f pt
int measure_dist
MinAreaRect2 CvBox2D
cvarrseq points
CvMemStorage storage NULL
MinEnclosingCircle int,center,radius
cvarrseq points
CvPoint2D32f center /O
float radius /O
# Planar Subdivisions
Subdiv2DGetEdge CvSubdiv2DEdge
CvSubdiv2DEdge edge
CvNextEdgeType type
Subdiv2DNextEdge CvSubdiv2DEdge
CvSubdiv2DEdge edge
Subdiv2DRotateEdge CvSubdiv2DEdge
CvSubdiv2DEdge edge
int rotate
Subdiv2DEdgeOrg CvSubdiv2DPoint*
CvSubdiv2DEdge edge
Subdiv2DEdgeDst CvSubdiv2DPoint*
CvSubdiv2DEdge edge
CreateSubdivDelaunay2D CvSubdiv2D*
CvRect rect
CvMemStorage storage
SubdivDelaunay2DInsert CvSubdiv2DPoint*
CvSubdiv2D* subdiv
CvPoint2D32f pt
CalcSubdivVoronoi2D
CvSubdiv2D* subdiv
ClearSubdivVoronoi2D
CvSubdiv2D* subdiv
FindNearestPoint2D CvSubdiv2DPoint*
CvSubdiv2D* subdiv
CvPoint2D32f pt
# Object Detection
HaarDetectObjects CvSeqOfCvAvgComp*
CvArr image
CvHaarClassifierCascade* cascade
CvMemStorage storage
double scale_factor 1.1 /ch_doubleAbove1
int min_neighbors 3
int flags 0
CvSize min_size cvSize(0,0)
ComputeCorrespondEpilines
CvMat points
int whichImage
CvMat F
CvMat lines
ConvertPointsHomogeneous
CvMat src
CvMat dst
ProjectPoints2
CvMat objectPoints
CvMat rvec
CvMat tvec
CvMat cameraMatrix
CvMat distCoeffs
CvMat imagePoints
CvMat dpdrot NULL
CvMat dpdt NULL
CvMat dpdf NULL
CvMat dpdc NULL
CvMat dpddist NULL
ReprojectImageTo3D
CvArr disparity
CvArr _3dImage
CvMat Q
int handleMissingValues 0
RQDecomp3x3 eulerAngles
CvMat M
CvMat R
CvMat Q
CvMat Qx NULL
CvMat Qy NULL
CvMat Qz NULL
CvPoint3D64f eulerAngles /O
FindHomography
CvMat srcPoints
CvMat dstPoints
CvMat H
int method 0
double ransacReprojThreshold 3.0
CvMat status NULL
CreateStereoBMState CvStereoBMState*
int preset CV_STEREO_BM_BASIC
int numberOfDisparities 0
CreateStereoGCState CvStereoGCState*
int numberOfDisparities
int maxIters
FindStereoCorrespondenceBM
CvArr left
CvArr right
CvArr disparity
CvStereoBMState* state
FindStereoCorrespondenceGC
CvArr left
CvArr right
CvArr dispLeft
CvArr dispRight
CvStereoGCState* state
int useDisparityGuess 0
CalibrateCamera2
CvMat objectPoints
CvMat imagePoints
CvMat pointCounts
CvSize imageSize
CvMat cameraMatrix
CvMat distCoeffs
CvMat rvecs
CvMat tvecs
int flags 0
CalibrationMatrixValues fovx,fovy,focalLength,principalPoint,pixelAspectRatio
CvMat calibMatr
CvSize image_size
double apertureWidth 0
double apertureHeight 0
double fovx /O
double fovy /O
double focalLength /O
CvPoint2D64f principalPoint /O
double pixelAspectRatio /O
FindExtrinsicCameraParams2
CvMat objectPoints
CvMat imagePoints
CvMat cameraMatrix
CvMat distCoeffs
CvMat rvec
CvMat tvec
int useExtrinsicGuess 0
FindFundamentalMat int
CvMat points1
CvMat points2
CvMat fundamentalMatrix
int method CV_FM_RANSAC
double param1 1.
double param2 0.99
CvMat status NULL
StereoCalibrate
CvMat objectPoints
CvMat imagePoints1
CvMat imagePoints2
CvMat pointCounts
CvMat cameraMatrix1
CvMat distCoeffs1
CvMat cameraMatrix2
CvMat distCoeffs2
CvSize imageSize
CvMat R
CvMat T
CvMat E NULL
CvMat F NULL
CvTermCriteria term_crit cvTermCriteria(CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,30,1e-6)
int flags CV_CALIB_FIX_INTRINSIC
GetOptimalNewCameraMatrix
CvMat cameraMatrix
CvMat distCoeffs
CvSize imageSize
double alpha
CvMat newCameraMatrix
CvSize newImageSize cvSize(0,0)
CvRect* validPixROI NULL
InitIntrinsicParams2D
CvMat objectPoints
CvMat imagePoints
CvMat npoints
CvSize imageSize
CvMat cameraMatrix
double aspectRatio 1.
StereoRectify roi1,roi2
CvMat cameraMatrix1
CvMat cameraMatrix2
CvMat distCoeffs1
CvMat distCoeffs2
CvSize imageSize
CvMat R
CvMat T
CvMat R1
CvMat R2
CvMat P1
CvMat P2
CvMat Q NULL
int flags CV_CALIB_ZERO_DISPARITY
double alpha -1
CvSize newImageSize cvSize(0,0)
CvRect roi1 /O
CvRect roi2 /O
StereoRectifyUncalibrated
CvMat points1
CvMat points2
CvMat F
CvSize imageSize
CvMat H1
CvMat H2
double threshold 5
Rodrigues2
CvMat src
CvMat dst
CvMat jacobian 0
Undistort2
CvArr src
CvArr dst
CvMat cameraMatrix
CvMat distCoeffs
InitUndistortMap
CvMat cameraMatrix
CvMat distCoeffs
CvArr map1
CvArr map2
InitUndistortRectifyMap
CvMat cameraMatrix
CvMat distCoeffs
CvMat R
CvMat newCameraMatrix
CvArr map1
CvArr map2
UndistortPoints
CvMat src
CvMat dst
CvMat cameraMatrix
CvMat distCoeffs
CvMat R NULL
CvMat P NULL
DecomposeProjectionMatrix eulerAngles
CvMat projMatrix
CvMat cameraMatrix
CvMat rotMatrix
CvMat transVect
CvMat rotMatrX NULL
CvMat rotMatrY NULL
CvMat rotMatrZ NULL
CvPoint3D64f eulerAngles /O
DrawChessboardCorners
CvArr image
CvSize patternSize
CvPoint2D32fs corners
int patternWasFound
CreatePOSITObject CvPOSITObject*
CvPoint3D32fs points
POSIT rotationMatrix,translation_vector
CvPOSITObject* posit_object
CvPoint2D32f* imagePoints
double focal_length
CvTermCriteria criteria
CvMatr32f_i rotationMatrix /O,A
CvVect32f_i translation_vector /O,A
EstimateRigidTransform
CvArr A
CvArr B
CvMat M
int full_affine
# Accumulation of Background Statistics
Acc
CvArr image
CvArr sum
CvArr mask NULL
SquareAcc
CvArr image
CvArr sqsum
CvArr mask NULL
MultiplyAcc
CvArr image1
CvArr image2
CvArr acc
CvArr mask NULL
RunningAvg
CvArr image
CvArr acc
double alpha
CvArr mask NULL
# Motion Templates
UpdateMotionHistory
CvArr silhouette
CvArr mhi
double timestamp
double duration
CalcMotionGradient
CvArr mhi /ch_matF
CvArr mask
CvArr orientation /ch_matF
double delta1
double delta2
int apertureSize 3 /ch_aperture
CalcGlobalOrientation double
CvArr orientation
CvArr mask
CvArr mhi
double timestamp
double duration
SegmentMotion CvSeq*
CvArr mhi
CvArr seg_mask
CvMemStorage storage
double timestamp
double seg_thresh
# Object Tracking
MeanShift comp
CvArr prob_image
CvRect window
CvTermCriteria criteria
CvConnectedComp comp /O
CamShift int,comp,box
CvArr prob_image
CvRect window
CvTermCriteria criteria
CvConnectedComp comp /O
CvBox2D box /O
CreateKalman CvKalman*
int dynam_params
int measure_params
int control_params 0
KalmanCorrect ROCvMat*
CvKalman* kalman
CvMat measurement
KalmanPredict ROCvMat*
CvKalman* kalman
CvMat control NULL
SnakeImage points
IplImage image
CvPoints points
floats alpha
floats beta
floats gamma
CvSize win
CvTermCriteria criteria
int calc_gradient 1
# Optical Flow
CalcOpticalFlowLK
CvArr prev
CvArr curr
CvSize winSize
CvArr velx
CvArr vely
CalcOpticalFlowBM
CvArr prev /ch_image8
CvArr curr /ch_image8
CvSize blockSize
CvSize shiftSize
CvSize max_range
int usePrevious
CvArr velx /ch_vel
CvArr vely /ch_vel
CalcOpticalFlowHS
CvArr prev /ch_image8
CvArr curr /ch_image8
int usePrevious
CvArr velx /ch_vel_64
CvArr vely /ch_vel_64
double lambda
CvTermCriteria criteria
CalcOpticalFlowFarneback
CvArr prev /ch_image8
CvArr curr /ch_image8
CvArr flow
double pyr_scale 0.5
int levels 3
int winsize 15
int iterations 3
int poly_n 7
double poly_sigma 1.5
int flags 0
# Highgui
ConvertImage
CvArr src
CvArr dst
int flags 0
NamedWindow
char* name
int flags CV_WINDOW_AUTOSIZE
DestroyWindow
char* name
DestroyAllWindows
ResizeWindow
char* name
int width
int height
MoveWindow
char* name
int x
int y
ShowImage
char* name
CvArr image
GetTrackbarPos int
char* trackbarName
char* windowName
SetTrackbarPos
char* trackbarName
char* windowName
int pos
#WaitKey int
# int delay 0
SaveImage
char* filename
CvArr image
CaptureFromFile CvCapture*
char* filename
CreateFileCapture CvCapture*
char* filename
CaptureFromCAM CvCapture*
int index
CreateCameraCapture CvCapture*
int index
GrabFrame int
CvCapture* capture
RetrieveFrame ROIplImage*
CvCapture* capture
QueryFrame ROIplImage*
CvCapture* capture
GetCaptureProperty double
CvCapture* capture
int property_id
SetCaptureProperty int
CvCapture* capture
int property_id
double value
CreateVideoWriter CvVideoWriter*
char* filename
int fourcc
double fps
CvSize frame_size
int is_color 1
WriteFrame int
CvVideoWriter* writer
IplImage image
EncodeImage CvMat*
char* ext
CvArr image
ints0 params {&zero,1}
DecodeImage IplImage*
CvMat buf
int iscolor CV_LOAD_IMAGE_COLOR
DecodeImageM CvMat*
CvMat buf
int iscolor CV_LOAD_IMAGE_COLOR
StartWindowThread
SetWindowProperty
char* name
int prop_id
double prop_value
GetWindowProperty double
char* name
int prop_id
GetTickCount int64
GetTickFrequency int64
# cvaux stuff
HOGDetectMultiScale CvSeq*
CvArr image
CvMemStorage storage
CvArr svm_classifier NULL
CvSize win_stride cvSize(0,0)
double hit_threshold 0
double scale 1.05
int group_threshold 2
CvSize padding cvSize(0,0)
CvSize win_size cvSize(64,128)
CvSize block_size cvSize(16,16)
CvSize block_stride cvSize(8,8)
CvSize cell_size cvSize(8,8)
int nbins 9
int gammaCorrection 1
GrabCut
CvArr image
CvArr mask
CvRect rect
CvArr bgdModel
CvArr fgdModel
int iterCount
int mode
# These functions are handwritten in cv.cpp; they appear here as 'doconly' declarations
# so that their documentation can be auto-generated
ApproxPoly /doconly
cvarrseq src_seq
CvMemStorage storage
int method
double parameter 0.0
int parameter2 0
CalcEMD2 /doconly
CvArr signature1
CvArr signature2
int distance_type
PyCallableObject* distance_func NULL
CvArr cost_matrix NULL
CvArr flow NULL
float lower_bound 0.0
PyObject* userdata NULL
CalcOpticalFlowPyrLK currFeatures,status,track_error /doconly
CvArr prev
CvArr curr
CvArr prevPyr
CvArr currPyr
CvPoint2D32f* prevFeatures
CvSize winSize
int level
CvTermCriteria criteria
int flags
CvPoint2D32f* guesses
CvPoint2D32f currFeatures /O
char status /O
float track_error /O
ClipLine point1,point2 /doconly
CvSize imgSize
CvPoint pt1
CvPoint pt2
CreateData /doconly
CvArr arr
CreateHist CvHistogram /doconly
ints dims
int type
ranges ranges None
int uniform 1
CreateImageHeader IplImage* /doconly
CvSize size
int depth
int channels
CreateImage IplImage* /doconly
CvSize size
int depth
int channels
CreateMatHeader CvMat /doconly
int rows
int cols
int type
CreateMat CvMat /doconly
int rows
int cols
int type
CreateMatNDHeader CvMatND /doconly
ints dims
int type
CreateMatND CvMatND /doconly
ints dims
int type
CreateMemStorage CvMemStorage /doconly
int blockSize
CreateTrackbar /doconly
char* trackbarName
char* windowName
int value
int count
PyCallableObject* onChange
FindChessboardCorners corners /doconly
CvArr image
CvSize patternSize
CvPoint2D32fs corners /O
int flags CV_CALIB_CB_ADAPTIVE_THRESH
FindContours /doconly
CvArr image
CvMemStorage storage
int mode CV_RETR_LIST
int method CV_CHAIN_APPROX_SIMPLE
CvPoint offset (0,0)
FitLine line /doconly
CvArr points
int dist_type
double param
double reps
double aeps
PyObject* line /O
GetDims /doconly
CvArr arr
GetHuMoments hu /doconly
CvMoments moments
PyObject* hu /O
GetImage /doconly
CvMat arr
GetMat /doconly
IplImage arr
int allowND 0
GetMinMaxHistValue min_value,max_value,min_idx,max_idx /doconly
CvHistogram hist
CvScalar min_value /O
CvScalar max_value /O
ints min_idx /O
ints max_idx /O
InitLineIterator line_iterator /doconly
CvArr image
CvPoint pt1
CvPoint pt2
iter line_iterator /O
int connectivity 8
int left_to_right 0
LoadImageM /doconly
char* filename
int iscolor CV_LOAD_IMAGE_COLOR
LoadImage /doconly
char* filename
int iscolor CV_LOAD_IMAGE_COLOR
ReshapeMatND /doconly
CvMat arr
int newCn
ints newDims
Reshape /doconly
CvArr arr
int newCn
int newRows
SetData /doconly
CvArr arr
PyObject* data
int step
SetMouseCallback /doconly
char* windowName
PyCallableObject* onMouse
PyObject* param None
Subdiv2DLocate loc,where /doconly
CvSubdiv2D* subdiv
CvPoint2D32f pt
int loc /O
edgeorpoint where /O
WaitKey /doconly
int delay 0
This source diff could not be displayed because it is too large. You can view the blob instead.
#define CV_BLUR_NO_SCALE 0
#define CV_BLUR 1
#define CV_GAUSSIAN 2
#define CV_MEDIAN 3
#define CV_BILATERAL 4
#define CV_INPAINT_NS 0
#define CV_INPAINT_TELEA 1
#define CV_SCHARR -1
#define CV_MAX_SOBEL_KSIZE 7
#define CV_BGR2BGRA 0
#define CV_RGB2RGBA CV_BGR2BGRA
#define CV_BGRA2BGR 1
#define CV_RGBA2RGB CV_BGRA2BGR
#define CV_BGR2RGBA 2
#define CV_RGB2BGRA CV_BGR2RGBA
#define CV_RGBA2BGR 3
#define CV_BGRA2RGB CV_RGBA2BGR
#define CV_BGR2RGB 4
#define CV_RGB2BGR CV_BGR2RGB
#define CV_BGRA2RGBA 5
#define CV_RGBA2BGRA CV_BGRA2RGBA
#define CV_BGR2GRAY 6
#define CV_RGB2GRAY 7
#define CV_GRAY2BGR 8
#define CV_GRAY2RGB CV_GRAY2BGR
#define CV_GRAY2BGRA 9
#define CV_GRAY2RGBA CV_GRAY2BGRA
#define CV_BGRA2GRAY 10
#define CV_RGBA2GRAY 11
#define CV_BGR2BGR565 12
#define CV_RGB2BGR565 13
#define CV_BGR5652BGR 14
#define CV_BGR5652RGB 15
#define CV_BGRA2BGR565 16
#define CV_RGBA2BGR565 17
#define CV_BGR5652BGRA 18
#define CV_BGR5652RGBA 19
#define CV_GRAY2BGR565 20
#define CV_BGR5652GRAY 21
#define CV_BGR2BGR555 22
#define CV_RGB2BGR555 23
#define CV_BGR5552BGR 24
#define CV_BGR5552RGB 25
#define CV_BGRA2BGR555 26
#define CV_RGBA2BGR555 27
#define CV_BGR5552BGRA 28
#define CV_BGR5552RGBA 29
#define CV_GRAY2BGR555 30
#define CV_BGR5552GRAY 31
#define CV_BGR2XYZ 32
#define CV_RGB2XYZ 33
#define CV_XYZ2BGR 34
#define CV_XYZ2RGB 35
#define CV_BGR2YCrCb 36
#define CV_RGB2YCrCb 37
#define CV_YCrCb2BGR 38
#define CV_YCrCb2RGB 39
#define CV_BGR2HSV 40
#define CV_RGB2HSV 41
#define CV_BGR2Lab 44
#define CV_RGB2Lab 45
#define CV_BayerBG2BGR 46
#define CV_BayerGB2BGR 47
#define CV_BayerRG2BGR 48
#define CV_BayerGR2BGR 49
#define CV_BayerBG2RGB CV_BayerRG2BGR
#define CV_BayerGB2RGB CV_BayerGR2BGR
#define CV_BayerRG2RGB CV_BayerBG2BGR
#define CV_BayerGR2RGB CV_BayerGB2BGR
#define CV_BayerBG2BGR_VNG 62
#define CV_BayerGB2BGR_VNG 63
#define CV_BayerRG2BGR_VNG 64
#define CV_BayerGR2BGR_VNG 65
#define CV_BGR2Luv 50
#define CV_RGB2Luv 51
#define CV_BGR2HLS 52
#define CV_RGB2HLS 53
#define CV_HSV2BGR 54
#define CV_HSV2RGB 55
#define CV_Lab2BGR 56
#define CV_Lab2RGB 57
#define CV_Luv2BGR 58
#define CV_Luv2RGB 59
#define CV_HLS2BGR 60
#define CV_HLS2RGB 61
#define CV_COLORCVT_MAX 100
#define CV_INTER_NN 0
#define CV_INTER_LINEAR 1
#define CV_INTER_CUBIC 2
#define CV_INTER_AREA 3
#define CV_WARP_FILL_OUTLIERS 8
#define CV_WARP_INVERSE_MAP 16
#define CV_SHAPE_RECT 0
#define CV_SHAPE_CROSS 1
#define CV_SHAPE_ELLIPSE 2
#define CV_SHAPE_CUSTOM 100
#define CV_MOP_OPEN 2
#define CV_MOP_CLOSE 3
#define CV_MOP_GRADIENT 4
#define CV_MOP_TOPHAT 5
#define CV_MOP_BLACKHAT 6
#define CV_TM_SQDIFF 0
#define CV_TM_SQDIFF_NORMED 1
#define CV_TM_CCORR 2
#define CV_TM_CCORR_NORMED 3
#define CV_TM_CCOEFF 4
#define CV_TM_CCOEFF_NORMED 5
#define CV_LKFLOW_PYR_A_READY 1
#define CV_LKFLOW_PYR_B_READY 2
#define CV_LKFLOW_INITIAL_GUESSES 4
#define CV_LKFLOW_GET_MIN_EIGENVALS 8
#define CV_POLY_APPROX_DP 0
#define CV_CONTOURS_MATCH_I1 1
#define CV_CONTOURS_MATCH_I2 2
#define CV_CONTOURS_MATCH_I3 3
#define CV_CLOCKWISE 1
#define CV_COUNTER_CLOCKWISE 2
#define CV_COMP_CORREL 0
#define CV_COMP_CHISQR 1
#define CV_COMP_INTERSECT 2
#define CV_COMP_BHATTACHARYYA 3
#define CV_DIST_MASK_3 3
#define CV_DIST_MASK_5 5
#define CV_DIST_MASK_PRECISE 0
#define CV_THRESH_BINARY 0 /* value = value > threshold ? max_value : 0 */
#define CV_THRESH_BINARY_INV 1 /* value = value > threshold ? 0 : max_value */
#define CV_THRESH_TRUNC 2 /* value = value > threshold ? threshold : value */
#define CV_THRESH_TOZERO 3 /* value = value > threshold ? value : 0 */
#define CV_THRESH_TOZERO_INV 4 /* value = value > threshold ? 0 : value */
#define CV_THRESH_MASK 7
#define CV_THRESH_OTSU 8 /* use Otsu algorithm to choose the optimal threshold value;
#define CV_ADAPTIVE_THRESH_MEAN_C 0
#define CV_ADAPTIVE_THRESH_GAUSSIAN_C 1
#define CV_FLOODFILL_FIXED_RANGE (1 << 16)
#define CV_FLOODFILL_MASK_ONLY (1 << 17)
#define CV_CANNY_L2_GRADIENT (1 << 31)
#define CV_HOUGH_STANDARD 0
#define CV_HOUGH_PROBABILISTIC 1
#define CV_HOUGH_MULTI_SCALE 2
#define CV_HOUGH_GRADIENT 3
#define CV_HAAR_DO_CANNY_PRUNING 1
#define CV_HAAR_SCALE_IMAGE 2
#define CV_HAAR_FIND_BIGGEST_OBJECT 4
#define CV_HAAR_DO_ROUGH_SEARCH 8
#define CV_LMEDS 4
#define CV_RANSAC 8
#define CV_CALIB_CB_ADAPTIVE_THRESH 1
#define CV_CALIB_CB_NORMALIZE_IMAGE 2
#define CV_CALIB_CB_FILTER_QUADS 4
#define CV_CALIB_USE_INTRINSIC_GUESS 1
#define CV_CALIB_FIX_ASPECT_RATIO 2
#define CV_CALIB_FIX_PRINCIPAL_POINT 4
#define CV_CALIB_ZERO_TANGENT_DIST 8
#define CV_CALIB_FIX_FOCAL_LENGTH 16
#define CV_CALIB_FIX_K1 32
#define CV_CALIB_FIX_K2 64
#define CV_CALIB_FIX_K3 128
#define CV_CALIB_FIX_INTRINSIC 256
#define CV_CALIB_SAME_FOCAL_LENGTH 512
#define CV_CALIB_ZERO_DISPARITY 1024
#define CV_FM_7POINT 1
#define CV_FM_8POINT 2
#define CV_FM_LMEDS_ONLY CV_LMEDS
#define CV_FM_RANSAC_ONLY CV_RANSAC
#define CV_FM_LMEDS CV_LMEDS
#define CV_FM_RANSAC CV_RANSAC
#define CV_STEREO_BM_NORMALIZED_RESPONSE 0
#define CV_STEREO_BM_BASIC 0
#define CV_STEREO_BM_FISH_EYE 1
#define CV_STEREO_BM_NARROW 2
#define CV_STEREO_GC_OCCLUDED SHRT_MAX
#define CV_AUTOSTEP 0x7fffffff
#define CV_MAX_ARR 10
#define CV_NO_DEPTH_CHECK 1
#define CV_NO_CN_CHECK 2
#define CV_NO_SIZE_CHECK 4
#define CV_CMP_EQ 0
#define CV_CMP_GT 1
#define CV_CMP_GE 2
#define CV_CMP_LT 3
#define CV_CMP_LE 4
#define CV_CMP_NE 5
#define CV_CHECK_RANGE 1
#define CV_CHECK_QUIET 2
#define CV_RAND_UNI 0
#define CV_RAND_NORMAL 1
#define CV_SORT_EVERY_ROW 0
#define CV_SORT_EVERY_COLUMN 1
#define CV_SORT_ASCENDING 0
#define CV_SORT_DESCENDING 16
#define CV_GEMM_A_T 1
#define CV_GEMM_B_T 2
#define CV_GEMM_C_T 4
#define CV_SVD_MODIFY_A 1
#define CV_SVD_U_T 2
#define CV_SVD_V_T 4
#define CV_LU 0
#define CV_SVD 1
#define CV_SVD_SYM 2
#define CV_CHOLESKY 3
#define CV_QR 4
#define CV_NORMAL 16
#define CV_COVAR_SCRAMBLED 0
#define CV_COVAR_NORMAL 1
#define CV_COVAR_USE_AVG 2
#define CV_COVAR_SCALE 4
#define CV_COVAR_ROWS 8
#define CV_COVAR_COLS 16
#define CV_PCA_DATA_AS_ROW 0
#define CV_PCA_DATA_AS_COL 1
#define CV_PCA_USE_AVG 2
#define CV_C 1
#define CV_L1 2
#define CV_L2 4
#define CV_NORM_MASK 7
#define CV_RELATIVE 8
#define CV_DIFF 16
#define CV_MINMAX 32
#define CV_DIFF_C (CV_DIFF | CV_C)
#define CV_DIFF_L1 (CV_DIFF | CV_L1)
#define CV_DIFF_L2 (CV_DIFF | CV_L2)
#define CV_RELATIVE_C (CV_RELATIVE | CV_C)
#define CV_RELATIVE_L1 (CV_RELATIVE | CV_L1)
#define CV_RELATIVE_L2 (CV_RELATIVE | CV_L2)
#define CV_REDUCE_SUM 0
#define CV_REDUCE_AVG 1
#define CV_REDUCE_MAX 2
#define CV_REDUCE_MIN 3
#define CV_DXT_FORWARD 0
#define CV_DXT_INVERSE 1
#define CV_DXT_SCALE 2 /* divide result by size of array */
#define CV_DXT_INV_SCALE (CV_DXT_INVERSE + CV_DXT_SCALE)
#define CV_DXT_INVERSE_SCALE CV_DXT_INV_SCALE
#define CV_DXT_ROWS 4 /* transform each row individually */
#define CV_DXT_MUL_CONJ 8 /* conjugate the second argument of cvMulSpectrums */
#define CV_FRONT 1
#define CV_BACK 0
#define CV_GRAPH_VERTEX 1
#define CV_GRAPH_TREE_EDGE 2
#define CV_GRAPH_BACK_EDGE 4
#define CV_GRAPH_FORWARD_EDGE 8
#define CV_GRAPH_CROSS_EDGE 16
#define CV_GRAPH_ANY_EDGE 30
#define CV_GRAPH_NEW_TREE 32
#define CV_GRAPH_BACKTRACKING 64
#define CV_GRAPH_OVER -1
#define CV_GRAPH_ALL_ITEMS -1
#define CV_GRAPH_ITEM_VISITED_FLAG (1 << 30)
#define CV_GRAPH_SEARCH_TREE_NODE_FLAG (1 << 29)
#define CV_GRAPH_FORWARD_EDGE_FLAG (1 << 28)
#define CV_FILLED -1
#define CV_AA 16
#define CV_FONT_HERSHEY_SIMPLEX 0
#define CV_FONT_HERSHEY_PLAIN 1
#define CV_FONT_HERSHEY_DUPLEX 2
#define CV_FONT_HERSHEY_COMPLEX 3
#define CV_FONT_HERSHEY_TRIPLEX 4
#define CV_FONT_HERSHEY_COMPLEX_SMALL 5
#define CV_FONT_HERSHEY_SCRIPT_SIMPLEX 6
#define CV_FONT_HERSHEY_SCRIPT_COMPLEX 7
#define CV_FONT_ITALIC 16
#define CV_FONT_VECTOR0 CV_FONT_HERSHEY_SIMPLEX
#define CV_KMEANS_USE_INITIAL_LABELS 1
#define CV_ErrModeLeaf 0 /* Print error and exit program */
#define CV_ErrModeParent 1 /* Print error and continue */
#define CV_ErrModeSilent 2 /* Don't print and continue */
#define CV_RETR_EXTERNAL 0
#define CV_RETR_LIST 1
#define CV_RETR_CCOMP 2
#define CV_RETR_TREE 3
#define CV_CHAIN_CODE 0
#define CV_CHAIN_APPROX_NONE 1
#define CV_CHAIN_APPROX_SIMPLE 2
#define CV_CHAIN_APPROX_TC89_L1 3
#define CV_CHAIN_APPROX_TC89_KCOS 4
#define CV_LINK_RUNS 5
#define CV_SUBDIV2D_VIRTUAL_POINT_FLAG (1 << 30)
#define CV_DIST_USER -1 /* User defined distance */
#define CV_DIST_L1 1 /* distance = |x1-x2| + |y1-y2| */
#define CV_DIST_L2 2 /* the simple euclidean distance */
#define CV_DIST_C 3 /* distance = max(|x1-x2|,|y1-y2|) */
#define CV_DIST_L12 4 /* L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1)) */
#define CV_DIST_FAIR 5 /* distance = c^2(|x|/c-log(1+|x|/c)), c = 1.3998 */
#define CV_DIST_WELSCH 6 /* distance = c^2/2(1-exp(-(x/c)^2)), c = 2.9846 */
#define CV_DIST_HUBER 7 /* distance = |x|<c ? x^2/2 : c(|x|-c/2), c=1.345 */
#define CV_HAAR_MAGIC_VAL 0x42500000
#define CV_HAAR_FEATURE_MAX 3
#define CV_TERMCRIT_ITER 1
#define CV_TERMCRIT_NUMBER CV_TERMCRIT_ITER
#define CV_TERMCRIT_EPS 2
#define CV_EVENT_MOUSEMOVE 0
#define CV_EVENT_LBUTTONDOWN 1
#define CV_EVENT_RBUTTONDOWN 2
#define CV_EVENT_MBUTTONDOWN 3
#define CV_EVENT_LBUTTONUP 4
#define CV_EVENT_RBUTTONUP 5
#define CV_EVENT_MBUTTONUP 6
#define CV_EVENT_LBUTTONDBLCLK 7
#define CV_EVENT_RBUTTONDBLCLK 8
#define CV_EVENT_MBUTTONDBLCLK 9
#define CV_EVENT_FLAG_LBUTTON 1
#define CV_EVENT_FLAG_RBUTTON 2
#define CV_EVENT_FLAG_MBUTTON 4
#define CV_EVENT_FLAG_CTRLKEY 8
#define CV_EVENT_FLAG_SHIFTKEY 16
#define CV_EVENT_FLAG_ALTKEY 32
#define CV_MAX_DIM 32
#define CV_CAP_PROP_POS_MSEC 0
#define CV_CAP_PROP_POS_FRAMES 1
#define CV_CAP_PROP_POS_AVI_RATIO 2
#define CV_CAP_PROP_FRAME_WIDTH 3
#define CV_CAP_PROP_FRAME_HEIGHT 4
#define CV_CAP_PROP_FPS 5
#define CV_CAP_PROP_FOURCC 6
#define CV_CAP_PROP_FRAME_COUNT 7
#define CV_CAP_PROP_FORMAT 8
#define CV_CAP_PROP_MODE 9
#define CV_CAP_PROP_BRIGHTNESS 10
#define CV_CAP_PROP_CONTRAST 11
#define CV_CAP_PROP_SATURATION 12
#define CV_CAP_PROP_HUE 13
#define CV_CAP_PROP_GAIN 14
#define CV_CAP_PROP_EXPOSURE 15
#define CV_CAP_PROP_CONVERT_RGB 16
#define CV_CAP_PROP_RECTIFICATION 18
#define CV_CN_SHIFT 3
#define CV_IMWRITE_JPEG_QUALITY 1
#define CV_IMWRITE_PNG_COMPRESSION 16
#define CV_IMWRITE_PXM_BINARY 32
#define IPL_ORIGIN_TL 0
#define IPL_ORIGIN_BL 1
#define CV_GAUSSIAN_5x5
#define CV_CN_MAX
#define CV_WINDOW_AUTOSIZE 1
#define CV_WINDOW_NORMAL 0
#define CV_WINDOW_FULLSCREEN 1
#define HG_AUTOSIZE CV_WINDOW_AUTOSIZE
#define CV_CVTIMG_FLIP 1
#define CV_CVTIMG_SWAP_RB 2
import sys
from string import Template
class argument:
def __init__(self, fields):
self.ty = fields[0]
self.nm = fields[1]
self.flags = ""
self.init = None
if len(fields) > 2:
if fields[2][0] == '/':
self.flags = fields[2][1:].split(",")
else:
self.init = fields[2]
api = []
for l in open("%s/api" % sys.argv[1]):
if l[0] == '#':
continue
l = l.rstrip()
if (not l.startswith(' ')) and ('/' in l):
(l, flags) = l.split('/')
else:
flags = ""
f = l.split()
if len(f) != 0:
if l[0] != ' ':
if len(f) > 1:
ty = f[1]
else:
ty = None
api.append((f[0], [], ty, flags))
else:
api[-1][1].append(argument(f))
# Validation: check that any optional arguments are last
had_error = False
for (f, args, ty, flags) in api:
if f == 'PolarToCart':
print f, [(a.init != None) for a in args]
has_init = [(a.init != None) for a in args if not 'O' in a.flags]
if True in has_init and not all(has_init[has_init.index(True):]):
print 'Error in definition for "%s", optional arguments must be last' % f
had_error = True
if had_error:
sys.exit(1)
def cname(n):
if n.startswith("CV"):
return '_' + n
elif n[0].isdigit():
return '_' + n
else:
return n
# RHS is how the aggregate gets expanded in the C call
aggregate = {
'pts_npts_contours' : '!.pts,!.npts,!.contours',
'cvarr_count' : '!.cvarr,!.count',
'cvarr_plane_count' : '!.cvarr,!.count',
'floats' : '!.f',
'ints' : '!.i',
'ints0' : '!.i',
'CvPoints' : '!.p,!.count',
'CvPoint2D32fs' : '!.p,!.count',
'CvPoint3D32fs' : '!.p,!.count',
'cvarrseq' : '!.seq',
'CvArrs' : '!.ims',
'IplImages' : '!.ims',
'intpair' : '!.pairs,!.count',
'cvpoint2d32f_count' : '!.points,&!.count'
}
conversion_types = [
'char',
'CvArr',
'CvArrSeq',
'CvBox2D', # '((ff)(ff)f)',
'CvBox2D*',
'CvCapture*',
'CvStereoBMState*',
'CvStereoGCState*',
'CvKalman*',
'CvVideoWriter*',
'CvContourTree*',
'CvFont',
'CvFont*',
'CvHaarClassifierCascade*',
'CvHistogram',
'CvMat',
'CvMatND',
'CvMemStorage',
'CvMoments',
'CvMoments*',
'CvNextEdgeType',
'CvPoint',
'CvPoint*',
'CvPoint2D32f', # '(ff)',
'CvPoint2D32f*',
'CvPoint3D32f*',
'CvPoint2D64f',
'CvPOSITObject*',
'CvRect',
'CvRect*',
'CvRNG*',
'CvScalar',
'CvSeq',
'CvSeqOfCvConvexityDefect',
'CvSize',
'CvSlice',
'CvStarDetectorParams',
'CvSubdiv2D*',
'CvSubdiv2DEdge',
'CvTermCriteria',
'generic',
'IplConvKernel*',
'IplImage',
'PyObject*',
'PyCallableObject*'
]
def safename(s):
return s.replace('*', 'PTR').replace('[', '_').replace(']', '_')
def has_optional(al):
""" return true if any argument is optional """
return any([a.init for a in al])
def gen(name, args, ty, flags):
yield ""
if has_optional(args):
yield "static PyObject *pycv%s(PyObject *self, PyObject *args, PyObject *kw)" % cname(name)
else:
yield "static PyObject *pycv%s(PyObject *self, PyObject *args)" % cname(name)
if 'doconly' in flags:
yield ";"
else:
yield "{"
destinations = []
for a in args:
remap = {
'CvArr' : 'CvArr*',
'CvMat' : 'CvMat*',
'CvMatND' : 'CvMatND*',
'IplImage' : 'IplImage*',
'CvMemStorage' : 'CvMemStorage*',
'CvHistogram':'CvHistogram*',
'CvSeq':'CvSeq*',
'CvHaarClassifierCascade' : 'CvHaarClassifierCascade*'
}
ctype = remap.get(a.ty, a.ty)
if a.init:
init = " = %s" % a.init
else:
init = ''
yield " %s %s%s;" % (ctype, a.nm, init)
if 'O' in a.flags:
continue
if a.ty in (conversion_types + aggregate.keys()):
yield ' PyObject *pyobj_%s = NULL;' % (a.nm)
destinations.append('&pyobj_%s' % (a.nm))
elif a.ty in [ 'CvPoint2D32f' ]:
destinations.append('&%s.x, &%s.y' % (a.nm, a.nm))
elif a.ty in [ 'CvTermCriteria' ]:
destinations.append('&%s.type, &%s.max_iter, &%s.epsilon' % ((a.nm,)*3))
elif a.ty in [ 'CvSURFParams' ]:
destinations.append('&%s.extended, &%s.hessianThreshold, &%s.nOctaves, &%s.nOctaveLayers' % ((a.nm,)*4))
elif a.nm in [ 'CvBox2D' ]:
s = ", ".join([('&' + a.nm +'.' + fld) for fld in [ 'center.x', 'center.y', 'size.width', 'size.height', 'angle' ] ])
destinations.append(s)
else:
destinations.append('&%s' % a.nm)
fmap = {
'CvSURFParams' : '(idii)',
'double' : 'd',
'float' : 'f',
'int' : 'i',
'int64' : 'L',
'char*' : 's',
}
for k in (conversion_types + aggregate.keys()):
fmap[k] = 'O'
in_args = [ a for a in args if not 'O' in a.flags ]
fmt0 = "".join([ fmap[a.ty] for a in in_args if not a.init])
fmt1 = "".join([ fmap[a.ty] for a in in_args if a.init])
yield ''
if len(fmt0 + fmt1) > 0:
if len(fmt1) > 0:
yield ' const char *keywords[] = { %s };' % (", ".join([ '"%s"' % arg.nm for arg in args if not 'O' in arg.flags ] + ['NULL']))
yield ' if (!PyArg_ParseTupleAndKeywords(args, kw, "%s|%s", %s))' % (fmt0, fmt1, ", ".join(['(char**)keywords'] + destinations))
if '(' in (fmt0 + fmt1):
print "Tuple with kwargs is not allowed, function", name
sys.exit(1)
else:
yield ' if (!PyArg_ParseTuple(args, "%s", %s))' % (fmt0, ", ".join(destinations))
yield ' return NULL;'
# Do the conversions:
for a in args:
joinwith = [f[2:] for f in a.flags if f.startswith("J:")]
if len(joinwith) > 0:
yield 'preShareData(%s, &%s);' % (joinwith[0], a.nm)
if 'O' in a.flags:
continue
if a.ty in (conversion_types + aggregate.keys()):
if a.init:
pred = '(pyobj_%s != NULL) && ' % a.nm
else:
pred = ''
yield ' if (%s!convert_to_%s(pyobj_%s, &%s, "%s")) return NULL;' % (pred, safename(a.ty), a.nm, a.nm, a.nm)
yield '#ifdef CVPY_VALIDATE_%s' % name
yield 'CVPY_VALIDATE_%s();' % name
yield '#endif'
def invokename(a):
if 'K' in a.flags:
prefix = "(const CvArr **)"
elif 'O' in a.flags and not 'A' in a.flags:
prefix = "&"
else:
prefix = ""
if a.ty in aggregate:
return prefix + aggregate[a.ty].replace('!', a.nm)
else:
return prefix + a.nm
def funcname(s):
# The name by which the function is called, in C
if s.startswith("CV"):
return s
else:
return "cv" + s
tocall = '%s(%s)' % (funcname(name), ", ".join(invokename(a) for a in args))
if 'stub' in flags:
yield ' return stub%s(%s);' % (name, ", ".join(invokename(a) for a in args))
elif ty == None:
yield ' ERRWRAP(%s);' % tocall
yield ' Py_RETURN_NONE;'
else:
Rtypes = [
'int',
'int64',
'double',
'CvCapture*',
'CvVideoWriter*',
'CvPOSITObject*',
'CvScalar',
'CvSize',
'CvRect',
'CvSeq*',
'CvBox2D',
'CvSeqOfCvAvgComp*',
'CvSeqOfCvConvexityDefect*',
'CvSeqOfCvStarKeypoint*',
'CvSeqOfCvSURFPoint*',
'CvSeqOfCvSURFDescriptor*',
'CvContourTree*',
'IplConvKernel*',
'IplImage*',
'CvMat*',
'constCvMat*',
'ROCvMat*',
'CvMatND*',
'CvPoint2D32f_4',
'CvRNG',
'CvSubdiv2D*',
'CvSubdiv2DPoint*',
'CvSubdiv2DEdge',
'ROIplImage*',
'CvStereoBMState*',
'CvStereoGCState*',
'CvKalman*',
'float',
'generic',
'unsigned' ]
if ty in Rtypes:
yield ' %s r;' % (ty)
yield ' ERRWRAP(r = %s);' % (tocall)
yield ' return FROM_%s(r);' % safename(ty)
else:
all_returns = ty.split(",")
return_value_from_call = len(set(Rtypes) & set(all_returns)) != 0
if return_value_from_call:
yield ' %s r;' % list(set(Rtypes) & set(all_returns))[0]
yield ' ERRWRAP(r = %s);' % (tocall)
else:
yield ' ERRWRAP(%s);' % (tocall)
typed = dict([ (a.nm,a.ty) for a in args])
for i in range(len(all_returns)):
if all_returns[i] in Rtypes:
typed['r'] = all_returns[i]
all_returns[i] = "r"
if len(all_returns) == 1:
af = dict([ (a.nm,a.flags) for a in args])
joinwith = [f[2:] for f in af.get(all_returns[0], []) if f.startswith("J:")]
if len(joinwith) > 0:
yield ' return shareData(pyobj_%s, %s, %s);' % (joinwith[0], joinwith[0], all_returns[0])
else:
yield ' return FROM_%s(%s);' % (safename(typed[all_returns[0]]), all_returns[0])
else:
yield ' return Py_BuildValue("%s", %s);' % ("N" * len(all_returns), ", ".join(["FROM_%s(%s)" % (safename(typed[n]), n) for n in all_returns]))
yield '}'
gen_c = [ open("generated%d.i" % i, "w") for i in range(5) ]
print "Generated %d functions" % len(api)
for nm,args,ty,flags in sorted(api):
# Figure out docstring into ds_*
ds_args = []
mandatory = [a.nm for a in args if not ('O' in a.flags) and not a.init]
optional = [a.nm for a in args if not ('O' in a.flags) and a.init]
ds_args = ", ".join(mandatory)
def o2s(o):
if o == []:
return ""
else:
return ' [, %s%s]' % (o[0], o2s(o[1:]))
ds_args += o2s(optional)
ds = "%s(%s) -> %s" % (nm, ds_args, str(ty))
print ds
if has_optional(args):
entry = '{"%%s", (PyCFunction)pycv%s, METH_KEYWORDS, "%s"},' % (cname(nm), ds)
else:
entry = '{"%%s", pycv%s, METH_VARARGS, "%s"},' % (cname(nm), ds)
print >>gen_c[1], entry % (nm)
if nm.startswith('CV_'):
print >>gen_c[1], entry % (nm[3:])
for l in gen(nm,args,ty,flags):
print >>gen_c[0], l
for l in open("%s/defs" % sys.argv[1]):
print >>gen_c[2], "PUBLISH(%s);" % l.split()[1]
########################################################################
# Generated objects.
########################################################################
# gen_c[3] is the code, gen_c[4] initializers
gensimple = Template("""
/*
${cvtype} is the OpenCV C struct
${ourname}_t is the Python object
*/
struct ${ourname}_t {
PyObject_HEAD
${cvtype} v;
};
static PyObject *${ourname}_repr(PyObject *self)
{
${ourname}_t *p = (${ourname}_t*)self;
char str[1000];
sprintf(str, "<${ourname} %p>", p);
return PyString_FromString(str);
}
${getset_funcs}
static PyGetSetDef ${ourname}_getseters[] = {
${getset_inits}
{NULL} /* Sentinel */
};
static PyTypeObject ${ourname}_Type = {
PyObject_HEAD_INIT(&PyType_Type)
0, /*size*/
MODULESTR".${ourname}", /*name*/
sizeof(${ourname}_t), /*basicsize*/
};
static void ${ourname}_specials(void)
{
${ourname}_Type.tp_repr = ${ourname}_repr;
${ourname}_Type.tp_getset = ${ourname}_getseters;
}
static PyObject *FROM_${cvtype}(${cvtype} r)
{
${ourname}_t *m = PyObject_NEW(${ourname}_t, &${ourname}_Type);
m->v = r;
return (PyObject*)m;
}
static int convert_to_${cvtype}PTR(PyObject *o, ${cvtype}** dst, const char *name = "no_name")
{
${allownull}
if (PyType_IsSubtype(o->ob_type, &${ourname}_Type)) {
*dst = &(((${ourname}_t*)o)->v);
return 1;
} else {
(*dst) = (${cvtype}*)NULL;
return failmsg("Expected ${cvtype} for argument '%s'", name);
}
}
""")
genptr = Template("""
/*
${cvtype} is the OpenCV C struct
${ourname}_t is the Python object
*/
struct ${ourname}_t {
PyObject_HEAD
${cvtype} *v;
};
static void ${ourname}_dealloc(PyObject *self)
{
${ourname}_t *p = (${ourname}_t*)self;
cvRelease${ourname}(&p->v);
PyObject_Del(self);
}
static PyObject *${ourname}_repr(PyObject *self)
{
${ourname}_t *p = (${ourname}_t*)self;
char str[1000];
sprintf(str, "<${ourname} %p>", p);
return PyString_FromString(str);
}
${getset_funcs}
static PyGetSetDef ${ourname}_getseters[] = {
${getset_inits}
{NULL} /* Sentinel */
};
static PyTypeObject ${ourname}_Type = {
PyObject_HEAD_INIT(&PyType_Type)
0, /*size*/
MODULESTR".${ourname}", /*name*/
sizeof(${ourname}_t), /*basicsize*/
};
static void ${ourname}_specials(void)
{
${ourname}_Type.tp_dealloc = ${ourname}_dealloc;
${ourname}_Type.tp_repr = ${ourname}_repr;
${ourname}_Type.tp_getset = ${ourname}_getseters;
}
static PyObject *FROM_${cvtype}PTR(${cvtype} *r)
{
${ourname}_t *m = PyObject_NEW(${ourname}_t, &${ourname}_Type);
m->v = r;
return (PyObject*)m;
}
static int convert_to_${cvtype}PTR(PyObject *o, ${cvtype}** dst, const char *name = "no_name")
{
${allownull}
if (PyType_IsSubtype(o->ob_type, &${ourname}_Type)) {
*dst = ((${ourname}_t*)o)->v;
return 1;
} else {
(*dst) = (${cvtype}*)NULL;
return failmsg("Expected ${cvtype} for argument '%s'", name);
}
}
""")
getset_func_template = Template("""
static PyObject *${ourname}_get_${member}(${ourname}_t *p, void *closure)
{
return ${rconverter}(p->v${accessor}${member});
}
static int ${ourname}_set_${member}(${ourname}_t *p, PyObject *value, void *closure)
{
if (value == NULL) {
PyErr_SetString(PyExc_TypeError, "Cannot delete the ${member} attribute");
return -1;
}
if (! ${checker}(value)) {
PyErr_SetString(PyExc_TypeError, "The ${member} attribute value must be a ${typename}");
return -1;
}
p->v${accessor}${member} = ${converter}(value);
return 0;
}
""")
getset_init_template = Template("""
{(char*)"${member}", (getter)${ourname}_get_${member}, (setter)${ourname}_set_${member}, (char*)"${member}", NULL},
""")
objects = [
( 'IplConvKernel', ['allownull'], {
"nCols" : 'i',
"nRows" : 'i',
"anchorX" : 'i',
"anchorY" : 'i',
}),
( 'CvCapture', [], {}),
( 'CvHaarClassifierCascade', [], {}),
( 'CvPOSITObject', [], {}),
( 'CvVideoWriter', [], {}),
( 'CvStereoBMState', [], {
"preFilterType" : 'i',
"preFilterSize" : 'i',
"preFilterCap" : 'i',
"SADWindowSize" : 'i',
"minDisparity" : 'i',
"numberOfDisparities" : 'i',
"textureThreshold" : 'i',
"uniquenessRatio" : 'i',
"speckleWindowSize" : 'i',
"speckleRange" : 'i',
}),
( 'CvStereoGCState', [], {
"Ithreshold" : 'i',
"interactionRadius" : 'i',
"K" : 'f',
"lambda" : 'f',
"lambda1" : 'f',
"lambda2" : 'f',
"occlusionCost" : 'i',
"minDisparity" : 'i',
"numberOfDisparities" : 'i',
"maxIters" : 'i',
}),
( 'CvKalman', [], {
"MP" : 'i',
"DP" : 'i',
"CP" : 'i',
"state_pre" : 'mr',
"state_post" : 'mr',
"transition_matrix" : 'mr',
"control_matrix" : 'mr',
"measurement_matrix" : 'mr',
"control_matrix" : 'mr',
"process_noise_cov" : 'mr',
"measurement_noise_cov" : 'mr',
"error_cov_pre" : 'mr',
"gain" : 'mr',
"error_cov_post" : 'mr',
}),
( 'CvMoments', ['copy'], {
"m00" : 'f',
"m10" : 'f',
"m01" : 'f',
"m20" : 'f',
"m11" : 'f',
"m02" : 'f',
"m30" : 'f',
"m21" : 'f',
"m12" : 'f',
"m03" : 'f',
"mu20" : 'f',
"mu11" : 'f',
"mu02" : 'f',
"mu30" : 'f',
"mu21" : 'f',
"mu12" : 'f',
"mu03" : 'f',
"inv_sqrt_m00" : 'f',
}),
]
checkers = {
'i' : 'PyNumber_Check',
'f' : 'PyNumber_Check',
'm' : 'is_cvmat',
'mr' : 'is_cvmat'
}
# Python -> C
converters = {
'i' : 'PyInt_AsLong',
'f' : 'PyFloat_AsDouble',
'm' : 'PyCvMat_AsCvMat',
'mr' : 'PyCvMat_AsCvMat'
}
# C -> Python
rconverters = {
'i' : 'PyInt_FromLong',
'f' : 'PyFloat_FromDouble',
'm' : 'FROM_CvMat',
'mr' : 'FROM_ROCvMatPTR'
}
# Human-readable type names
typenames = {
'i' : 'integer',
'f' : 'float',
'm' : 'list of CvMat',
'mr' : 'list of CvMat',
}
for (t, flags, members) in objects:
map = {'cvtype' : t,
'ourname' : t.replace('Cv', '')}
# gsf is all the generated code for the member accessors
if 'copy' in flags:
a = '.'
else:
a = '->'
gsf = "".join([getset_func_template.substitute(map, accessor = a, member = m, checker = checkers[t], converter = converters[t], rconverter = rconverters[t], typename = typenames[t]) for (m, t) in members.items()])
# gsi is the generated code for the initializer for each accessor
gsi = "".join([getset_init_template.substitute(map, member = m) for (m, t) in members.items()])
# s is the template that pulls everything together
if 'allownull' in flags:
nullcode = """if (o == Py_None) { *dst = (%s*)NULL; return 1; }""" % map['cvtype']
else:
nullcode = ""
if 'copy' in flags:
print >>gen_c[3], gensimple.substitute(map, getset_funcs = gsf, getset_inits = gsi, allownull = nullcode)
else:
print >>gen_c[3], genptr.substitute(map, getset_funcs = gsf, getset_inits = gsi, allownull = nullcode)
print >>gen_c[4], "MKTYPE(%s);" % map['ourname']
for f in gen_c:
f.close()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment