Unified handling of InputOutputArrays in Python wrapper generator

This makes arguments of type InputOutputArray required in python unless they
have a default value in C++.

As result following python functions changes signatures in non-trivial way:

* calcOpticalFlowFarneback
* calcOpticalFlowPyrLK
* calibrateCamera
* findContours
* findTransformECC
* floodFill
* kmeans
* PCACompute
* stereoCalibrate

And the following functions become return their modified inputs as a return
value:

* accumulate
* accumulateProduct
* accumulateSquare
* accumulateWeighted
* circle
* completeSymm
* cornerSubPix
* drawChessboardCorners
* drawContours
* drawDataMatrixCodes
* ellipse
* fillConvexPoly
* fillPoly
* filterSpeckles
* grabCut
* insertChannel
* line
* patchNaNs
* polylines
* randn
* randShuffle
* randu
* rectangle
* setIdentity
* updateMotionHistory
* validateDisparity
* watershed
This commit is contained in:
Andrey Kamaev
2013-03-15 16:55:58 +04:00
parent a1c456b7c3
commit e75df56317
18 changed files with 51 additions and 47 deletions

View File

@@ -354,6 +354,7 @@ class ArgInfo(object):
elif m == "/IO":
self.inputarg = True
self.outputarg = True
self.returnarg = True
elif m.startswith("/A"):
self.isarray = True
self.arraylen = m[2:].strip()
@@ -427,7 +428,7 @@ class FuncVariant(object):
continue
if a.returnarg:
outlist.append((a.name, argno))
if (not a.inputarg or a.returnarg) and a.isbig():
if (not a.inputarg) and a.isbig():
outarr_list.append((a.name, argno))
continue
if not a.inputarg: