提交 084b1c79 编写于 作者: A Andrey Kamaev

Merge branch 2.4

......@@ -164,6 +164,9 @@ macro(ocv_module_disable module)
set(HAVE_${__modname} OFF CACHE INTERNAL "Module ${__modname} can not be built in current configuration")
set(OPENCV_MODULE_${__modname}_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}" CACHE INTERNAL "Location of ${__modname} module sources")
set(OPENCV_MODULES_DISABLED_FORCE "${OPENCV_MODULES_DISABLED_FORCE}" CACHE INTERNAL "List of OpenCV modules which can not be build in current configuration")
if(BUILD_${__modname})
# touch variable controlling build of the module to suppress "unused variable" CMake warning
endif()
unset(__modname)
return() # leave the current folder
endmacro()
......
......@@ -116,6 +116,8 @@ def compareSignatures(f, s):
sarg = arg[1]
ftype = re.sub(r"\b(cv|std)::", "", (farg[0] or ""))
stype = re.sub(r"\b(cv|std)::", "", (sarg[0] or ""))
ftype = re.sub(r"\s+(\*|&)$", "\\1", ftype)
stype = re.sub(r"\s+(\*|&)$", "\\1", stype)
if ftype != stype:
return False, "type of argument #" + str(idx+1) + " mismatch"
fname = farg[1] or "arg" + str(idx)
......@@ -151,6 +153,7 @@ def formatSignature(s):
if idx > 0:
_str += ", "
argtype = re.sub(r"\bcv::", "", arg[0])
argtype = re.sub(r"\s+(\*|&)$", "\\1", arg[0])
bidx = argtype.find('[')
if bidx < 0:
_str += argtype + " "
......
......@@ -208,7 +208,7 @@ Retina::getMagno
Retina::getParameters
+++++++++++++++++++++
.. ocv:function:: Retina::RetinaParameters Retina::getParameters()
.. ocv:function:: struct Retina::RetinaParameters Retina::getParameters()
Retrieve the current parameters values in a *Retina::RetinaParameters* structure
......
......@@ -203,10 +203,10 @@ public:
*/
void setup(RetinaParameters newParameters);
/**
* @return the current parameters setup
*/
struct Retina::RetinaParameters getParameters();
/**
* @return the current parameters setup
*/
struct Retina::RetinaParameters getParameters();
/**
* parameters setup display method
......
......@@ -63,6 +63,9 @@
typedef unsigned char boolean;
#endif
#undef FALSE
#undef TRUE
extern "C" {
#include "jpeglib.h"
}
......
......@@ -36,18 +36,5 @@ PERF_TEST_P(Image_RhoStep_ThetaStep_Threshold, HoughLines,
TEST_CYCLE() HoughLines(image, lines, rhoStep, thetaStep, threshold);
#ifdef WIN32
//FIXME: ugly fix to make sanity check pass on Win32, must be investigated, issue #2617
if (lines.cols == 2015)
{
lines = lines(Rect(0, 0, lines.cols - 1, lines.rows));
SANITY_CHECK(lines, 800.0);
}
else
{
SANITY_CHECK(lines);
}
#else
SANITY_CHECK(lines);
#endif
}
......@@ -3023,7 +3023,7 @@ public:
localHistogram[t0]++; localHistogram[t1]++;
}
for (; x < width; ++x, ++ptr)
for (; x < width; ++x)
localHistogram[ptr[x]]++;
}
......
......@@ -346,7 +346,10 @@ void cv::matchTemplate( InputArray _img, InputArray _templ, OutputArray _result,
}
if( numType == 2 )
{
num = wndSum2 - 2*num + templSum2;
num = MAX(num, 0.);
}
}
if( isNormed )
......
......@@ -1243,6 +1243,10 @@ extern "C" {
jni_name = "&%(n)s"
else:
jni_name = "%(n)s"
if not a.out and not "jni_var" in type_dict[a.ctype]:
# explicit cast to C type to avoid ambiguous call error on platforms (mingw)
# where jni types are different from native types (e.g. jint is not the same as int)
jni_name = "(%s)%s" % (a.ctype, jni_name)
if not a.ctype: # hidden
jni_name = a.defval
cvargs.append( type_dict[a.ctype].get("jni_name", jni_name) % {"n" : a.name})
......@@ -1267,8 +1271,7 @@ JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_${clazz}_$fname
LOGD("$module::$fname()");
$prologue
$retval$cvname( $cvargs );
$epilogue
$ret
$epilogue$ret
} catch(cv::Exception e) {
LOGD("$module::$fname() catched cv::Exception: %s", e.what());
jclass je = env->FindClass("org/opencv/core/CvException");
......@@ -1292,7 +1295,7 @@ JNIEXPORT $rtype JNICALL Java_org_opencv_${module}_${clazz}_$fname
args = ", ".join(["%s %s" % (type_dict[a.ctype].get("jni_type"), a.name) for a in jni_args]), \
argst = ", ".join([type_dict[a.ctype].get("jni_type") for a in jni_args]), \
prologue = "\n ".join(c_prologue), \
epilogue = " ".join(c_epilogue), \
epilogue = " ".join(c_epilogue) + ("\n " if c_epilogue else ""), \
ret = ret, \
cvname = cvname, \
cvargs = ", ".join(cvargs), \
......
......@@ -11,7 +11,7 @@ params_blacklist = {
"fromarray" : ("object", "allowND"), # python only function
"reprojectImageTo3D" : ("ddepth"), # python only argument
"composeRT" : ("d*d*"), # wildchards in parameter names are not supported by this parser
"CvSVM::train_auto" : ("\*Grid"), # wildchards in parameter names are not supported by this parser
"CvSVM::train_auto" : ("\\*Grid"), # wildchards in parameter names are not supported by this parser
"error" : "args", # parameter of supporting macro
"getConvertElem" : ("from", "cn", "to", "beta", "alpha"), # arguments of returned functions
"gpu::swapChannels" : ("dstOrder") # parameter is not parsed correctly by the hdr_parser
......@@ -71,7 +71,8 @@ class DeclarationParser(object):
def isready(self):
return self.balance == 0
def getLang(self, line):
@classmethod
def getLang(cls, line):
if line.startswith(".. ocv:function::"):
return "C++"
if line.startswith(".. ocv:cfunction::"):
......@@ -98,7 +99,7 @@ class ParamParser(object):
offset = line.find(":param")
assert offset > 0
self.prefix = line[:offset]
assert self.prefix==" "*len(self.prefix), ":param definition should be prefixed with spaces"
assert self.prefix == " "*len(self.prefix), ":param definition should be prefixed with spaces"
line = line[offset + 6:].lstrip()
name_end = line.find(":")
assert name_end > 0
......@@ -115,7 +116,8 @@ class ParamParser(object):
else:
self.active = False
def hasDeclaration(self, line):
@classmethod
def hasDeclaration(cls, line):
return line.lstrip().startswith(":param")
class RstParser(object):
......@@ -177,6 +179,7 @@ class RstParser(object):
was_code_line = False
fdecl = DeclarationParser()
pdecl = ParamParser()
ll = None
for l in lines:
# read tail of function/method declaration if needed
......@@ -189,7 +192,7 @@ class RstParser(object):
# continue capture seealso
if capturing_seealso:
if not l or l.startswith(" "):
seealso = func.get("seealso",[])
seealso = func.get("seealso", [])
seealso.extend(l.split(","))
func["seealso"] = seealso
continue
......@@ -206,9 +209,7 @@ class RstParser(object):
if skip_code_lines:
if not l:
continue
if l.startswith(" "):
None
else:
if not l.startswith(" "):
skip_code_lines = False
if ll.startswith(".. code-block::") or ll.startswith(".. image::"):
......@@ -248,7 +249,7 @@ class RstParser(object):
if ll.endswith(".. seealso::"):
capturing_seealso = True
else:
seealso = func.get("seealso",[])
seealso = func.get("seealso", [])
seealso.extend(ll[ll.find("::")+2:].split(","))
func["seealso"] = seealso
continue
......@@ -300,12 +301,12 @@ class RstParser(object):
if (was_code_line):
func["long"] = func.get("long", "") + "\n" + ll + "\n"
else:
was_code_line = True;
was_code_line = True
func["long"] = func.get("long", "") + ll +"\n<code>\n\n // C++ code:\n\n"
else:
if (was_code_line):
func["long"] = func.get("long", "") + "\n" + ll + "\n</code>\n";
was_code_line = False;
func["long"] = func.get("long", "") + "\n" + ll + "\n</code>\n"
was_code_line = False
else:
func["long"] = func.get("long", "") + "\n" + ll
# endfor l in lines
......@@ -377,7 +378,8 @@ class RstParser(object):
if len(lines) > 1:
self.parse_section_safe(module_name, fname, doc, flineno, lines)
def parse_namespace(self, func, section_name):
@classmethod
def parse_namespace(cls, func, section_name):
known_namespaces = ["cv", "gpu", "flann"]
l = section_name.strip()
for namespace in known_namespaces:
......@@ -390,7 +392,7 @@ class RstParser(object):
if decl.fdecl.endswith(";"):
print >> sys.stderr, "RST parser error E%03d: unexpected semicolon at the end of declaration in \"%s\" at %s:%s" \
% (ERROR_011_EOLEXPECTED, func["name"], func["file"], func["line"])
decls = func.get("decls",[])
decls = func.get("decls", [])
if (decl.lang == "C++" or decl.lang == "C"):
rst_decl = self.cpp_parser.parse_func_decl_no_wrap(decl.fdecl)
decls.append( [decl.lang, decl.fdecl, rst_decl] )
......@@ -398,8 +400,9 @@ class RstParser(object):
decls.append( [decl.lang, decl.fdecl] )
func["decls"] = decls
def add_new_pdecl(self, func, decl):
params = func.get("params",{})
@classmethod
def add_new_pdecl(cls, func, decl):
params = func.get("params", {})
if decl.name in params:
if show_errors:
#check black_list
......@@ -416,8 +419,8 @@ class RstParser(object):
print >> out, "SKIPPED DEFINITION:"
print >> out, "name: %s" % (func.get("name","~empty~"))
print >> out, "file: %s:%s" % (func.get("file","~empty~"), func.get("line","~empty~"))
print >> out, "is class: %s" % func.get("isclass",False)
print >> out, "is struct: %s" % func.get("isstruct",False)
print >> out, "is class: %s" % func.get("isclass", False)
print >> out, "is struct: %s" % func.get("isstruct", False)
print >> out, "module: %s" % func.get("module","~unknown~")
print >> out, "namespace: %s" % func.get("namespace", "~empty~")
print >> out, "class: %s" % (func.get("class","~empty~"))
......@@ -426,7 +429,7 @@ class RstParser(object):
if "decls" in func:
print >> out, "declarations:"
for d in func["decls"]:
print >> out, " %7s: %s" % (d[0], re.sub(r"[ ]+", " ", d[1]))
print >> out, " %7s: %s" % (d[0], re.sub(r"[ ]+", " ", d[1]))
if "seealso" in func:
print >> out, "seealso: ", func["seealso"]
if "params" in func:
......@@ -437,8 +440,8 @@ class RstParser(object):
print >> out
def validate(self, func):
if func.get("decls",None) is None:
if not func.get("isclass",False) and not func.get("isstruct",False):
if func.get("decls", None) is None:
if not func.get("isclass", False) and not func.get("isstruct", False):
return False
if func["name"] in self.definitions:
if show_errors:
......@@ -448,7 +451,7 @@ class RstParser(object):
return self.validateParams(func)
def validateParams(self, func):
documentedParams = func.get("params",{}).keys()
documentedParams = func.get("params", {}).keys()
params = []
for decl in func.get("decls", []):
......@@ -486,11 +489,11 @@ class RstParser(object):
if "class" in func:
func["class"] = self.normalizeText(func["class"])
if "brief" in func:
func["brief"] = self.normalizeText(func.get("brief",None))
func["brief"] = self.normalizeText(func.get("brief", None))
if not func["brief"]:
del func["brief"]
if "long" in func:
func["long"] = self.normalizeText(func.get("long",None))
func["long"] = self.normalizeText(func.get("long", None))
if not func["long"]:
del func["long"]
if "decls" in func:
......@@ -518,7 +521,7 @@ class RstParser(object):
del func["seealso"]
# special case for old C functions - section name should omit "cv" prefix
if not func.get("isclass",False) and not func.get("isstruct",False):
if not func.get("isclass", False) and not func.get("isstruct", False):
self.fixOldCFunctionName(func)
return func
......@@ -616,7 +619,7 @@ class RstParser(object):
s = re.sub(r" +", " ", s)
# restore math
s = re.sub(r" *<BR> *","\n", s)
s = re.sub(r" *<BR> *", "\n", s)
# remove extra space before .
s = re.sub(r"[\n ]+\.", ".", s)
......@@ -642,13 +645,13 @@ class RstParser(object):
classes = 0
structs = 0
for name, d in self.definitions.items():
if d.get("isclass", False):
classes += 1
elif d.get("isstruct", False):
structs += 1
else:
for decl in d.get("decls",[]):
stat[decl[0]] = stat.get(decl[0],0) + 1
if d.get("isclass", False):
classes += 1
elif d.get("isstruct", False):
structs += 1
else:
for decl in d.get("decls", []):
stat[decl[0]] = stat.get(decl[0], 0) + 1
print
print " classes documented: %s" % classes
......
......@@ -1598,7 +1598,6 @@ CvBoost::predict( const CvMat* _sample, const CvMat* _missing,
{
float value = -FLT_MAX;
CvMat sample, missing;
CvSeqReader reader;
double sum = 0;
int wstep = 0;
......@@ -1648,10 +1647,15 @@ CvBoost::predict( const CvMat* _sample, const CvMat* _missing,
const int* cmap = data->cat_map->data.i;
const int* cofs = data->cat_ofs->data.i;
cv::Mat sample = _sample;
cv::Mat missing;
if(!_missing)
missing = _missing;
// if need, preprocess the input vector
if( !raw_mode )
{
int step, mstep = 0;
int sstep, mstep = 0;
const float* src_sample;
const uchar* src_mask = 0;
float* dst_sample;
......@@ -1660,12 +1664,14 @@ CvBoost::predict( const CvMat* _sample, const CvMat* _missing,
const int* vidx_abs = active_vars_abs->data.i;
bool have_mask = _missing != 0;
cv::AutoBuffer<float> buf(var_count + (var_count+3)/4);
dst_sample = &buf[0];
dst_mask = (uchar*)&buf[var_count];
sample = cv::Mat(1, var_count, CV_32FC1);
missing = cv::Mat(1, var_count, CV_8UC1);
dst_sample = sample.ptr<float>();
dst_mask = missing.ptr<uchar>();
src_sample = _sample->data.fl;
step = CV_IS_MAT_CONT(_sample->type) ? 1 : _sample->step/sizeof(src_sample[0]);
sstep = CV_IS_MAT_CONT(_sample->type) ? 1 : _sample->step/sizeof(src_sample[0]);
if( _missing )
{
......@@ -1676,7 +1682,7 @@ CvBoost::predict( const CvMat* _sample, const CvMat* _missing,
for( i = 0; i < var_count; i++ )
{
int idx = vidx[i], idx_abs = vidx_abs[i];
float val = src_sample[idx_abs*step];
float val = src_sample[idx_abs*sstep];
int ci = vtype[idx];
uchar m = src_mask ? src_mask[idx_abs*mstep] : (uchar)0;
......@@ -1715,14 +1721,8 @@ CvBoost::predict( const CvMat* _sample, const CvMat* _missing,
dst_mask[i] = m;
}
sample = cvMat( 1, var_count, CV_32F, dst_sample );
_sample = &sample;
if( have_mask )
{
missing = cvMat( 1, var_count, CV_8UC1, dst_mask );
_missing = &missing;
}
if( !have_mask )
missing.release();
}
else
{
......@@ -1733,9 +1733,9 @@ CvBoost::predict( const CvMat* _sample, const CvMat* _missing,
cvStartReadSeq( weak, &reader );
cvSetSeqReaderPos( &reader, slice.start_index );
sample_data = _sample->data.fl;
sample_data = sample.ptr<float>();
if( !have_active_cat_vars && !_missing && !weak_responses )
if( !have_active_cat_vars && missing.empty() && !weak_responses )
{
for( i = 0; i < weak_count; i++ )
{
......@@ -1760,7 +1760,7 @@ CvBoost::predict( const CvMat* _sample, const CvMat* _missing,
else
{
const int* avars = active_vars->data.i;
const uchar* m = _missing ? _missing->data.ptr : 0;
const uchar* m = !missing.empty() ? missing.ptr<uchar>() : 0;
// full-featured version
for( i = 0; i < weak_count; i++ )
......@@ -2147,5 +2147,3 @@ CvBoost::predict( const Mat& _sample, const Mat& _missing,
}
/* End of file. */
......@@ -992,9 +992,9 @@ public:
{
mtx->lock();
rectangles->push_back(Rect(cvRound(x*scalingFactor), cvRound(y*scalingFactor), winSize.width, winSize.height));
mtx->unlock();
rejectLevels->push_back(-result);
levelWeights->push_back(gypWeight);
mtx->unlock();
}
}
else if( result > 0 )
......
......@@ -1277,14 +1277,15 @@ cvRunHaarClassifierCascade( const CvHaarClassifierCascade* _cascade,
namespace cv
{
struct HaarDetectObjects_ScaleImage_Invoker
class HaarDetectObjects_ScaleImage_Invoker : public ParallelLoopBody
{
public:
HaarDetectObjects_ScaleImage_Invoker( const CvHaarClassifierCascade* _cascade,
int _stripSize, double _factor,
const Mat& _sum1, const Mat& _sqsum1, Mat* _norm1,
Mat* _mask1, Rect _equRect, ConcurrentRectVector& _vec,
Mat* _mask1, Rect _equRect, std::vector<Rect>& _vec,
std::vector<int>& _levels, std::vector<double>& _weights,
bool _outputLevels )
bool _outputLevels, Mutex *_mtx )
{
cascade = _cascade;
stripSize = _stripSize;
......@@ -1297,13 +1298,14 @@ struct HaarDetectObjects_ScaleImage_Invoker
vec = &_vec;
rejectLevels = _outputLevels ? &_levels : 0;
levelWeights = _outputLevels ? &_weights : 0;
mtx = _mtx;
}
void operator()( const BlockedRange& range ) const
void operator()( const Range& range ) const
{
Size winSize0 = cascade->orig_window_size;
Size winSize(cvRound(winSize0.width*factor), cvRound(winSize0.height*factor));
int y1 = range.begin()*stripSize, y2 = min(range.end()*stripSize, sum1.rows - 1 - winSize0.height);
int y1 = range.start*stripSize, y2 = min(range.end*stripSize, sum1.rows - 1 - winSize0.height);
if (y2 <= y1 || sum1.cols <= 1 + winSize0.width)
return;
......@@ -1356,8 +1358,10 @@ struct HaarDetectObjects_ScaleImage_Invoker
for( x = 0; x < ssz.width; x += ystep )
if( mask1row[x] != 0 )
{
mtx->lock();
vec->push_back(Rect(cvRound(x*factor), cvRound(y*factor),
winSize.width, winSize.height));
mtx->unlock();
if( --positive == 0 )
break;
}
......@@ -1378,17 +1382,23 @@ struct HaarDetectObjects_ScaleImage_Invoker
result = -1*cascade->count;
if( cascade->count + result < 4 )
{
mtx->lock();
vec->push_back(Rect(cvRound(x*factor), cvRound(y*factor),
winSize.width, winSize.height));
rejectLevels->push_back(-result);
levelWeights->push_back(gypWeight);
mtx->unlock();
}
}
else
{
if( result > 0 )
{
mtx->lock();
vec->push_back(Rect(cvRound(x*factor), cvRound(y*factor),
winSize.width, winSize.height));
mtx->unlock();
}
}
}
}
......@@ -1398,18 +1408,20 @@ struct HaarDetectObjects_ScaleImage_Invoker
double factor;
Mat sum1, sqsum1, *norm1, *mask1;
Rect equRect;
ConcurrentRectVector* vec;
std::vector<Rect>* vec;
std::vector<int>* rejectLevels;
std::vector<double>* levelWeights;
Mutex* mtx;
};
struct HaarDetectObjects_ScaleCascade_Invoker
class HaarDetectObjects_ScaleCascade_Invoker : public ParallelLoopBody
{
public:
HaarDetectObjects_ScaleCascade_Invoker( const CvHaarClassifierCascade* _cascade,
Size _winsize, const Range& _xrange, double _ystep,
size_t _sumstep, const int** _p, const int** _pq,
ConcurrentRectVector& _vec )
std::vector<Rect>& _vec, Mutex* _mtx )
{
cascade = _cascade;
winsize = _winsize;
......@@ -1418,11 +1430,12 @@ struct HaarDetectObjects_ScaleCascade_Invoker
sumstep = _sumstep;
p = _p; pq = _pq;
vec = &_vec;
mtx = _mtx;
}
void operator()( const BlockedRange& range ) const
void operator()( const Range& range ) const
{
int iy, startY = range.begin(), endY = range.end();
int iy, startY = range.start, endY = range.end;
const int *p0 = p[0], *p1 = p[1], *p2 = p[2], *p3 = p[3];
const int *pq0 = pq[0], *pq1 = pq[1], *pq2 = pq[2], *pq3 = pq[3];
bool doCannyPruning = p0 != 0;
......@@ -1449,7 +1462,11 @@ struct HaarDetectObjects_ScaleCascade_Invoker
int result = cvRunHaarClassifierCascade( cascade, cvPoint(x, y), 0 );
if( result > 0 )
{
mtx->lock();
vec->push_back(Rect(x, y, winsize.width, winsize.height));
mtx->unlock();
}
ixstep = result != 0 ? 1 : 2;
}
}
......@@ -1462,7 +1479,8 @@ struct HaarDetectObjects_ScaleCascade_Invoker
Range xrange;
const int** p;
const int** pq;
ConcurrentRectVector* vec;
std::vector<Rect>* vec;
Mutex* mtx;
};
......@@ -1482,7 +1500,7 @@ cvHaarDetectObjectsForROC( const CvArr* _img,
CvSeq* result_seq = 0;
cv::Ptr<CvMemStorage> temp_storage;
cv::ConcurrentRectVector allCandidates;
std::vector<cv::Rect> allCandidates;
std::vector<cv::Rect> rectList;
std::vector<int> rweights;
double factor;
......@@ -1490,6 +1508,7 @@ cvHaarDetectObjectsForROC( const CvArr* _img,
bool doCannyPruning = (flags & CV_HAAR_DO_CANNY_PRUNING) != 0;
bool findBiggestObject = (flags & CV_HAAR_FIND_BIGGEST_OBJECT) != 0;
bool roughSearch = (flags & CV_HAAR_DO_ROUGH_SEARCH) != 0;
cv::Mutex mtx;
if( !CV_IS_HAAR_CLASSIFIER(cascade) )
CV_Error( !cascade ? CV_StsNullPtr : CV_StsBadArg, "Invalid classifier cascade" );
......@@ -1599,11 +1618,11 @@ cvHaarDetectObjectsForROC( const CvArr* _img,
cvSetImagesForHaarClassifierCascade( cascade, &sum1, &sqsum1, _tilted, 1. );
cv::Mat _norm1(&norm1), _mask1(&mask1);
cv::parallel_for(cv::BlockedRange(0, stripCount),
cv::parallel_for_(cv::Range(0, stripCount),
cv::HaarDetectObjects_ScaleImage_Invoker(cascade,
(((sz1.height + stripCount - 1)/stripCount + ystep-1)/ystep)*ystep,
factor, cv::Mat(&sum1), cv::Mat(&sqsum1), &_norm1, &_mask1,
cv::Rect(equRect), allCandidates, rejectLevels, levelWeights, outputRejectLevels));
cv::Rect(equRect), allCandidates, rejectLevels, levelWeights, outputRejectLevels, &mtx));
}
}
else
......@@ -1695,10 +1714,10 @@ cvHaarDetectObjectsForROC( const CvArr* _img,
endX = cvRound((scanROI.x + scanROI.width - winSize.width) / ystep);
}
cv::parallel_for(cv::BlockedRange(startY, endY),
cv::parallel_for_(cv::Range(startY, endY),
cv::HaarDetectObjects_ScaleCascade_Invoker(cascade, winSize, cv::Range(startX, endX),
ystep, sum->step, (const int**)p,
(const int**)pq, allCandidates ));
(const int**)pq, allCandidates, &mtx ));
if( findBiggestObject && !allCandidates.empty() && scanROI.area() == 0 )
{
......
......@@ -36,8 +36,8 @@ Finds edges in an image using the [Canny86]_ algorithm.
.. seealso:: :ocv:func:`Canny`
ocl::BruteForceMatcher_OCL
--------------------------
ocl::BruteForceMatcher_OCL_base
-------------------------------
.. ocv:class:: ocl::BruteForceMatcher_OCL_base
Brute-force descriptor matcher. For each descriptor in the first set, this matcher finds the closest descriptor in the second set by trying each one. This descriptor matcher supports masking permissible matches between descriptor sets. ::
......@@ -162,7 +162,7 @@ Finds the best match for each descriptor from a query set with train descriptors
.. ocv:function:: void ocl::BruteForceMatcher_OCL_base::match(const oclMat& query, std::vector<DMatch>& matches, const std::vector<oclMat>& masks = std::vector<oclMat>())
.. ocv:function:: void ocl::BruteForceMatcher_OCL_base::matchCollection(const oclMat& query, const oclMat& trainCollection, oclMat& trainIdx, oclMat& imgIdx, oclMat& distance, const oclMat& masks)
.. ocv:function:: void ocl::BruteForceMatcher_OCL_base::matchCollection( const oclMat& query, const oclMat& trainCollection, oclMat& trainIdx, oclMat& imgIdx, oclMat& distance, const oclMat& masks=oclMat() )
.. seealso:: :ocv:func:`DescriptorMatcher::match`
......@@ -175,15 +175,13 @@ Performs a GPU collection of train descriptors and masks in a suitable format fo
.. ocv:function:: void ocl::BruteForceMatcher_OCL_base::makeGpuCollection(oclMat& trainCollection, oclMat& maskCollection, const vector<oclMat>& masks = std::vector<oclMat>())
ocl::BruteForceMatcher_OCL_base::matchDownload
----------------------------------------------
Downloads matrices obtained via :ocv:func:`ocl::BruteForceMatcher_OCL_base::matchSingle` or :ocv:func:`ocl::BruteForceMatcher_OCL_base::matchCollection` to vector with :ocv:class:`DMatch`.
.. ocv:function:: void ocl::BruteForceMatcher_OCL_base::matchDownload(const oclMat& trainIdx, const oclMat& distance, std::vector<DMatch>&matches)
.. ocv:function:: void ocl::BruteForceMatcher_OCL_base::matchDownload(const oclMat& trainIdx, oclMat& imgIdx, const oclMat& distance, std::vector<DMatch>&matches)
.. ocv:function:: static void ocl::BruteForceMatcher_OCL_base::matchDownload( const oclMat& trainIdx, const oclMat& distance, std::vector<DMatch>& matches )
.. ocv:function:: static void ocl::BruteForceMatcher_OCL_base::matchDownload( const oclMat& trainIdx, const oclMat& imgIdx, const oclMat& distance, std::vector<DMatch>& matches )
ocl::BruteForceMatcher_OCL_base::matchConvert
......@@ -310,7 +308,7 @@ If ``compactResult`` is ``true`` , the ``matches`` vector does not contain match
ocl::HOGDescriptor
------------------
.. ocv:class:: ocl::HOGDescriptor
.. ocv:struct:: ocl::HOGDescriptor
The class implements Histogram of Oriented Gradients ([Dalal2005]_) object detector. ::
......
......@@ -7,7 +7,7 @@ ocl::Sobel
------------------
Returns void
.. ocv:function:: void Sobel(const oclMat &src, oclMat &dst, int ddepth, int dx, int dy, int ksize = 3, double scale = 1, double delta = 0.0, int bordertype = BORDER_DEFAULT)
.. ocv:function:: void ocl::Sobel(const oclMat &src, oclMat &dst, int ddepth, int dx, int dy, int ksize = 3, double scale = 1, double delta = 0.0, int bordertype = BORDER_DEFAULT)
:param src: The source image
......@@ -33,7 +33,7 @@ ocl::Scharr
------------------
Returns void
.. ocv:function:: void Scharr(const oclMat &src, oclMat &dst, int ddepth, int dx, int dy, double scale = 1, double delta = 0.0, int bordertype = BORDER_DEFAULT)
.. ocv:function:: void ocl::Scharr(const oclMat &src, oclMat &dst, int ddepth, int dx, int dy, double scale = 1, double delta = 0.0, int bordertype = BORDER_DEFAULT)
:param src: The source image
......@@ -57,7 +57,7 @@ ocl::GaussianBlur
------------------
Returns void
.. ocv:function:: void GaussianBlur(const oclMat &src, oclMat &dst, Size ksize, double sigma1, double sigma2 = 0, int bordertype = BORDER_DEFAULT)
.. ocv:function:: void ocl::GaussianBlur(const oclMat &src, oclMat &dst, Size ksize, double sigma1, double sigma2 = 0, int bordertype = BORDER_DEFAULT)
:param src: The source image
......@@ -75,7 +75,7 @@ ocl::boxFilter
------------------
Returns void
.. ocv:function:: void boxFilter(const oclMat &src, oclMat &dst, int ddepth, Size ksize, Point anchor = Point(-1, -1), int borderType = BORDER_DEFAULT)
.. ocv:function:: void ocl::boxFilter(const oclMat &src, oclMat &dst, int ddepth, Size ksize, Point anchor = Point(-1, -1), int borderType = BORDER_DEFAULT)
:param src: The source image
......@@ -95,7 +95,7 @@ ocl::Laplacian
------------------
Returns void
.. ocv:function:: void Laplacian(const oclMat &src, oclMat &dst, int ddepth, int ksize = 1, double scale = 1)
.. ocv:function:: void ocl::Laplacian(const oclMat &src, oclMat &dst, int ddepth, int ksize = 1, double scale = 1)
:param src: The source image
......@@ -113,7 +113,7 @@ ocl::convolve
------------------
Returns void
.. ocv:function:: void convolve(const oclMat &image, const oclMat &temp1, oclMat &result)
.. ocv:function:: void ocl::convolve(const oclMat &image, const oclMat &temp1, oclMat &result)
:param image: The source image
......@@ -127,7 +127,7 @@ ocl::bilateralFilter
--------------------
Returns void
.. ocv:function:: void bilateralFilter(const oclMat &src, oclMat &dst, int d, double sigmaColor, double sigmaSpave, int borderType=BORDER_DEFAULT)
.. ocv:function:: void ocl::bilateralFilter(const oclMat &src, oclMat &dst, int d, double sigmaColor, double sigmaSpave, int borderType=BORDER_DEFAULT)
:param src: The source image
......@@ -147,7 +147,7 @@ ocl::copyMakeBorder
--------------------
Returns void
.. ocv:function:: void copyMakeBorder(const oclMat &src, oclMat &dst, int top, int bottom, int left, int right, int boardtype, const Scalar &value = Scalar())
.. ocv:function:: void ocl::copyMakeBorder(const oclMat &src, oclMat &dst, int top, int bottom, int left, int right, int boardtype, const Scalar &value = Scalar())
:param src: The source image
......@@ -165,7 +165,7 @@ ocl::dilate
------------------
Returns void
.. ocv:function:: void dilate( const oclMat &src, oclMat &dst, const Mat &kernel, Point anchor = Point(-1, -1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar &borderValue = morphologyDefaultBorderValue())
.. ocv:function:: void ocl::dilate( const oclMat &src, oclMat &dst, const Mat &kernel, Point anchor = Point(-1, -1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar &borderValue = morphologyDefaultBorderValue())
:param src: The source image
......@@ -187,7 +187,7 @@ ocl::erode
------------------
Returns void
.. ocv:function:: void erode( const oclMat &src, oclMat &dst, const Mat &kernel, Point anchor = Point(-1, -1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar &borderValue = morphologyDefaultBorderValue())
.. ocv:function:: void ocl::erode( const oclMat &src, oclMat &dst, const Mat &kernel, Point anchor = Point(-1, -1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar &borderValue = morphologyDefaultBorderValue())
:param src: The source image
......@@ -209,7 +209,7 @@ ocl::morphologyEx
------------------
Returns void
.. ocv:function:: void morphologyEx( const oclMat &src, oclMat &dst, int op, const Mat &kernel, Point anchor = Point(-1, -1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar &borderValue = morphologyDefaultBorderValue())
.. ocv:function:: void ocl::morphologyEx( const oclMat &src, oclMat &dst, int op, const Mat &kernel, Point anchor = Point(-1, -1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar &borderValue = morphologyDefaultBorderValue())
:param src: The source image
......
......@@ -7,7 +7,7 @@ ocl::cornerHarris
------------------
Returns void
.. ocv:function:: void cornerHarris(const oclMat &src, oclMat &dst, int blockSize, int ksize, double k, int bordertype = cv::BORDER_DEFAULT)
.. ocv:function:: void ocl::cornerHarris(const oclMat &src, oclMat &dst, int blockSize, int ksize, double k, int bordertype = cv::BORDER_DEFAULT)
:param src: Source image. Only CV_8UC1 and CV_32FC1 images are supported now.
......@@ -27,7 +27,7 @@ ocl::cornerMinEigenVal
------------------------
Returns void
.. ocv:function:: void cornerMinEigenVal(const oclMat &src, oclMat &dst, int blockSize, int ksize, int bordertype = cv::BORDER_DEFAULT)
.. ocv:function:: void ocl::cornerMinEigenVal(const oclMat &src, oclMat &dst, int blockSize, int ksize, int bordertype = cv::BORDER_DEFAULT)
:param src: Source image. Only CV_8UC1 and CV_32FC1 images are supported now.
......@@ -45,7 +45,7 @@ ocl::calcHist
------------------
Returns void
.. ocv:function:: void calcHist(const oclMat &mat_src, oclMat &mat_hist)
.. ocv:function:: void ocl::calcHist(const oclMat &mat_src, oclMat &mat_hist)
:param src: Source arrays. They all should have the same depth, CV 8U, and the same size. Each of them can have an arbitrary number of channels.
......@@ -57,7 +57,7 @@ ocl::remap
------------------
Returns void
.. ocv:function:: void remap(const oclMat &src, oclMat &dst, oclMat &map1, oclMat &map2, int interpolation, int bordertype, const Scalar &value = Scalar())
.. ocv:function:: void ocl::remap(const oclMat &src, oclMat &dst, oclMat &map1, oclMat &map2, int interpolation, int bordertype, const Scalar &value = Scalar())
:param src: Source image. Only CV_8UC1 and CV_32FC1 images are supported now.
......@@ -79,7 +79,7 @@ ocl::resize
------------------
Returns void
.. ocv:function:: void resize(const oclMat &src, oclMat &dst, Size dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR)
.. ocv:function:: void ocl::resize(const oclMat &src, oclMat &dst, Size dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR)
:param src: Source image.
......@@ -99,7 +99,7 @@ ocl::warpAffine
------------------
Returns void
.. ocv:function:: void warpAffine(const oclMat &src, oclMat &dst, const Mat &M, Size dsize, int flags = INTER_LINEAR)
.. ocv:function:: void ocl::warpAffine(const oclMat &src, oclMat &dst, const Mat &M, Size dsize, int flags = INTER_LINEAR)
:param src: Source image.
......@@ -117,7 +117,7 @@ ocl::warpPerspective
---------------------
Returns void
.. ocv:function:: void warpPerspective(const oclMat &src, oclMat &dst, const Mat &M, Size dsize, int flags = INTER_LINEAR)
.. ocv:function:: void ocl::warpPerspective(const oclMat &src, oclMat &dst, const Mat &M, Size dsize, int flags = INTER_LINEAR)
:param src: Source image.
......@@ -135,7 +135,7 @@ ocl::cvtColor
------------------
Returns void
.. ocv:function:: void cvtColor(const oclMat &src, oclMat &dst, int code , int dcn = 0)
.. ocv:function:: void ocl::cvtColor(const oclMat &src, oclMat &dst, int code , int dcn = 0)
:param src: Source image.
......@@ -151,7 +151,7 @@ ocl::threshold
------------------
Returns Threshold value
.. ocv:function:: double threshold(const oclMat &src, oclMat &dst, double thresh, double maxVal, int type = THRESH_TRUNC)
.. ocv:function:: double ocl::threshold(const oclMat &src, oclMat &dst, double thresh, double maxVal, int type = THRESH_TRUNC)
:param src: The source array
......@@ -169,7 +169,7 @@ ocl::buildWarpPlaneMaps
-----------------------
Builds plane warping maps.
.. ocv:function:: void ocl::buildWarpPlaneMaps(Size src_size, Rect dst_roi, const Mat& R, double f, double s, double dist, oclMat& map_x, oclMat& map_y)
.. ocv:function:: void ocl::buildWarpPlaneMaps( Size src_size, Rect dst_roi, const Mat& K, const Mat& R, const Mat& T, float scale, oclMat& map_x, oclMat& map_y )
......@@ -177,7 +177,7 @@ ocl::buildWarpCylindricalMaps
-----------------------------
Builds cylindrical warping maps.
.. ocv:function:: void ocl::buildWarpCylindricalMaps(Size src_size, Rect dst_roi, const Mat& R, double f, double s, oclMat& map_x, oclMat& map_y)
.. ocv:function:: void ocl::buildWarpCylindricalMaps( Size src_size, Rect dst_roi, const Mat& K, const Mat& R, float scale, oclMat& map_x, oclMat& map_y )
......@@ -186,14 +186,14 @@ ocl::buildWarpSphericalMaps
---------------------------
Builds spherical warping maps.
.. ocv:function:: void ocl::buildWarpSphericalMaps(Size src_size, Rect dst_roi, const Mat& R, double f, double s, oclMat& map_x, oclMat& map_y)
.. ocv:function:: void ocl::buildWarpSphericalMaps( Size src_size, Rect dst_roi, const Mat& K, const Mat& R, float scale, oclMat& map_x, oclMat& map_y )
ocl::buildWarpPerspectiveMaps
-----------------------------
Builds transformation maps for perspective transformation.
.. ocv:function:: void buildWarpAffineMaps(const Mat& M, bool inverse, Size dsize, oclMat& xmap, oclMat& ymap)
.. ocv:function:: void ocl::buildWarpAffineMaps(const Mat& M, bool inverse, Size dsize, oclMat& xmap, oclMat& ymap)
:param M: *3x3* transformation matrix.
......@@ -212,7 +212,7 @@ ocl::buildWarpAffineMaps
------------------------
Builds transformation maps for affine transformation.
.. ocv:function:: void buildWarpAffineMaps(const Mat& M, bool inverse, Size dsize, oclMat& xmap, oclMat& ymap)
.. ocv:function:: void ocl::buildWarpAffineMaps(const Mat& M, bool inverse, Size dsize, oclMat& xmap, oclMat& ymap)
:param M: *2x3* transformation matrix.
......
......@@ -7,7 +7,7 @@ ocl::countNonZero
------------------
Returns the number of non-zero elements in src
.. ocv:function:: int countNonZero(const oclMat &src)
.. ocv:function:: int ocl::countNonZero(const oclMat &src)
:param src: Single-channel array
......@@ -17,7 +17,7 @@ ocl::minMax
------------------
Returns void
.. ocv:function:: void minMax(const oclMat &src, double *minVal, double *maxVal = 0, const oclMat &mask = oclMat())
.. ocv:function:: void ocl::minMax(const oclMat &src, double *minVal, double *maxVal = 0, const oclMat &mask = oclMat())
:param src: Single-channel array
......@@ -33,7 +33,7 @@ ocl::minMaxLoc
------------------
Returns void
.. ocv:function:: void minMaxLoc(const oclMat &src, double *minVal, double *maxVal = 0, Point *minLoc = 0, Point *maxLoc = 0,const oclMat &mask = oclMat())
.. ocv:function:: void ocl::minMaxLoc(const oclMat &src, double *minVal, double *maxVal = 0, Point *minLoc = 0, Point *maxLoc = 0,const oclMat &mask = oclMat())
:param src: Single-channel array
......@@ -53,7 +53,7 @@ ocl::Sum
------------------
Returns the sum of matrix elements for each channel
.. ocv:function:: Scalar sum(const oclMat &m)
.. ocv:function:: Scalar ocl::sum(const oclMat &m)
:param m: The Source image of all depth
......@@ -63,7 +63,7 @@ ocl::sqrSum
------------------
Returns the squared sum of matrix elements for each channel
.. ocv:function:: Scalar sqrSum(const oclMat &m)
.. ocv:function:: Scalar ocl::sqrSum(const oclMat &m)
:param m: The Source image of all depth
......
......@@ -3,12 +3,13 @@ Object Detection
.. highlight:: cpp
ocl::oclCascadeClassifier
ocl::OclCascadeClassifier
-------------------------
.. ocv:class:: ocl::OclCascadeClassifier : public CascadeClassifier
Cascade classifier class used for object detection. Supports HAAR cascade classifier in the form of cross link ::
class CV_EXPORTS OclCascadeClassifier : public cv::CascadeClassifier
class CV_EXPORTS OclCascadeClassifier : public CascadeClassifier
{
public:
OclCascadeClassifier() {};
......@@ -19,11 +20,11 @@ Cascade classifier class used for object detection. Supports HAAR cascade classi
CvSize maxSize = cvSize(0, 0));
};
ocl::oclCascadeClassifier::oclHaarDetectObjects
ocl::OclCascadeClassifier::oclHaarDetectObjects
------------------------------------------------------
Returns the detected objects by a list of rectangles
.. ocv:function:: CvSeq *OclCascadeClassifier::oclHaarDetectObjects(oclMat &gimg, CvMemStorage *storage, double scaleFactor,int minNeighbors, int flags, CvSize minSize = cvSize(0, 0), CvSize maxSize = cvSize(0, 0))
.. ocv:function:: CvSeq* ocl::OclCascadeClassifier::oclHaarDetectObjects(oclMat &gimg, CvMemStorage *storage, double scaleFactor,int minNeighbors, int flags, CvSize minSize = cvSize(0, 0), CvSize maxSize = cvSize(0, 0))
:param image: Matrix of type CV_8U containing an image where objects should be detected.
......@@ -39,7 +40,7 @@ Detects objects of different sizes in the input image,only tested for face detec
ocl::MatchTemplateBuf
---------------------
.. ocv:class:: ocl::MatchTemplateBuf
.. ocv:struct:: ocl::MatchTemplateBuf
Class providing memory buffers for :ocv:func:`ocl::matchTemplate` function, plus it allows to adjust some specific parameters. ::
......
......@@ -3,11 +3,11 @@ Operations on Matrics
.. highlight:: cpp
ocl::convertTo
------------------
ocl::oclMat::convertTo
----------------------
Returns void
.. ocv:function:: void convertTo( oclMat &m, int rtype, double alpha = 1, double beta = 0 ) const
.. ocv:function:: void ocl::oclMat::convertTo( oclMat &m, int rtype, double alpha = 1, double beta = 0 ) const
:param m: The destination matrix. If it does not have a proper size or type before the operation, it will be reallocated
......@@ -19,11 +19,11 @@ Returns void
The method converts source pixel values to the target datatype. saturate cast is applied in the end to avoid possible overflows. Supports CV_8UC1, CV_8UC4, CV_32SC1, CV_32SC4, CV_32FC1, CV_32FC4.
ocl::copyTo
------------------
ocl::oclMat::copyTo
-------------------
Returns void
.. ocv:function:: void copyTo( oclMat &m, const oclMat &mask ) const
.. ocv:function:: void ocl::oclMat::copyTo( oclMat &m, const oclMat &mask ) const
:param m: The destination matrix. If it does not have a proper size or type before the operation, it will be reallocated
......@@ -31,11 +31,11 @@ Returns void
Copies the matrix to another one. Supports CV_8UC1, CV_8UC4, CV_32SC1, CV_32SC4, CV_32FC1, CV_32FC4
ocl::setTo
ocl::oclMat::setTo
------------------
Returns oclMat
.. ocv:function:: oclMat &setTo(const Scalar &s, const oclMat &mask = oclMat())
.. ocv:function:: oclMat& ocl::oclMat::setTo(const Scalar &s, const oclMat &mask = oclMat())
:param s: Assigned scalar, which is converted to the actual array type
......@@ -47,15 +47,16 @@ ocl::absdiff
------------------
Returns void
.. ocv:function:: void absdiff(const oclMat &a, const oclMat &b, oclMat &c)
.. ocv:function:: void ocl::absdiff( const oclMat& a, const oclMat& b, oclMat& c )
.. ocv:function:: void ocl::absdiff( const oclMat& a, const Scalar& s, oclMat& c )
.. ocv:function:: void absdiff(const oclMat &a, const Scalar& sc, oclMat &c)
:param a: The first input array
:param b: The second input array, must be the same size and same type as a
:param sc: Scalar, the second input parameter
:param s: Scalar, the second input parameter
:param c: The destination array, it will have the same size and same type as a
......@@ -65,17 +66,19 @@ ocl::add
------------------
Returns void
.. ocv:function:: void add(const oclMat &src1, const oclMat &src2, oclMat &dst, const oclMat& mask=oclMat())
.. ocv:function:: void ocl::add( const oclMat & a, const oclMat & b, oclMat & c )
.. ocv:function:: void add(const oclMat &src1, const Scalar &sc, oclMat &dst, const oclMat& mask=oclMat())
.. ocv:function:: void ocl::add( const oclMat & a, const oclMat & b, oclMat & c, const oclMat & mask )
:param src1: The first input array
.. ocv:function:: void ocl::add( const oclMat & a, const Scalar & sc, oclMat & c, const oclMat & mask=oclMat() )
:param src2: The second input array, must be the same size and same type as src1
:param a: The first input array
:param b: The second input array, must be the same size and same type as src1
:param sc: Scalar, the second input parameter
:param dst: The destination array, it will have the same size and same type as src1
:param c: The destination array, it will have the same size and same type as src1
:param mask: he optional operation mask, 8-bit single channel array; specifies elements of the destination array to be changed
......@@ -85,17 +88,22 @@ ocl::subtract
------------------
Returns void
.. ocv:function:: void subtract(const oclMat &src1, const oclMat &src2, oclMat &dst, const oclMat& mask=oclMat())
.. ocv:function:: void ocl::subtract( const oclMat& a, const oclMat& b, oclMat& c )
.. ocv:function:: void subtract(const oclMat &src1, const Scalar &sc, oclMat &dst, const oclMat& mask=oclMat())
.. ocv:function:: void ocl::subtract( const oclMat& a, const oclMat& b, oclMat& c, const oclMat& mask )
:param src1: The first input array
.. ocv:function:: void ocl::subtract( const oclMat& a, const Scalar& sc, oclMat& c, const oclMat& mask=oclMat() )
:param src2: The second input array, must be the same size and same type as src1
.. ocv:function:: void ocl::subtract( const Scalar& sc, const oclMat& a, oclMat& c, const oclMat& mask=oclMat() )
:param a: The first input array
:param b: The second input array, must be the same size and same type as src1
:param sc: Scalar, the second input parameter
:param dst: The destination array, it will have the same size and same type as src1
:param c: The destination array, it will have the same size and same type as src1
:param mask: he optional operation mask, 8-bit single channel array; specifies elements of the destination array to be changed
......@@ -105,13 +113,13 @@ ocl::multiply
------------------
Returns void
.. ocv:function:: void multiply(const oclMat &src1, const oclMat &src2, oclMat &dst, double scale = 1)
.. ocv:function:: void ocl::multiply( const oclMat& a, const oclMat& b, oclMat& c, double scale=1 )
:param src1: The first input array
:param a: The first input array
:param src2: The second input array, must be the same size and same type as src1
:param b: The second input array, must be the same size and same type as src1
:param dst: The destination array, it will have the same size and same type as src1
:param c: The destination array, it will have the same size and same type as src1
:param scale: must be 1 now
......@@ -121,13 +129,15 @@ ocl::divide
------------------
Returns void
.. ocv:function:: void divide(const oclMat &src1, const oclMat &src2, oclMat &dst, double scale = 1)
.. ocv:function:: void ocl::divide( const oclMat& a, const oclMat& b, oclMat& c, double scale=1 )
:param src1: The first input array
.. ocv:function:: void ocl::divide( double scale, const oclMat& b, oclMat& c )
:param src2: The second input array, must be the same size and same type as src1
:param a: The first input array
:param dst: The destination array, it will have the same size and same type as src1
:param b: The second input array, must be the same size and same type as src1
:param c: The destination array, it will have the same size and same type as src1
:param scale: must be 1 now
......@@ -137,15 +147,15 @@ ocl::bitwise_and
------------------
Returns void
.. ocv:function:: void bitwise_and(const oclMat &src1, const oclMat &src2, oclMat &dst, const oclMat& mask=oclMat())
.. ocv:function:: void ocl::bitwise_and( const oclMat& src1, const oclMat& src2, oclMat& dst, const oclMat& mask=oclMat() )
.. ocv:function:: void bitwise_and(const oclMat &src1, const Scalar &sc, oclMat &dst, const oclMat& mask=oclMat())
.. ocv:function:: void ocl::bitwise_and( const oclMat& src1, const Scalar& s, oclMat& dst, const oclMat& mask=oclMat() )
:param src1: The first input array
:param src2: The second input array, must be the same size and same type as src1
:param sc: Scalar, the second input parameter
:param s: Scalar, the second input parameter
:param dst: The destination array, it will have the same size and same type as src1
......@@ -157,15 +167,15 @@ ocl::bitwise_or
------------------
Returns void
.. ocv:function:: void bitwise_or(const oclMat &src1, const oclMat &src2, oclMat &dst, const oclMat& mask=oclMat())
.. ocv:function:: void ocl::bitwise_or( const oclMat& src1, const oclMat& src2, oclMat& dst, const oclMat& mask=oclMat() )
.. ocv:function:: void bitwise_or(const oclMat &src1, const Scalar &sc, oclMat &dst, const oclMat& mask=oclMat())
.. ocv:function:: void ocl::bitwise_or( const oclMat& src1, const Scalar& s, oclMat& dst, const oclMat& mask=oclMat() )
:param src1: The first input array
:param src2: The second input array, must be the same size and same type as src1
:param sc: Scalar, the second input parameter
:param s: Scalar, the second input parameter
:param dst: The destination array, it will have the same size and same type as src1
......@@ -177,9 +187,9 @@ ocl::bitwise_xor
------------------
Returns void
.. ocv:function:: void bitwise_xor(const oclMat &src1, const oclMat &src2, oclMat &dst, const oclMat& mask=oclMat())
.. ocv:function:: void ocl::bitwise_xor( const oclMat& src1, const oclMat& src2, oclMat& dst, const oclMat& mask=oclMat() )
.. ocv:function:: void bitwise_xor(const oclMat &src1, const Scalar &sc, oclMat &dst, const oclMat& mask=oclMat())
.. ocv:function:: void ocl::bitwise_xor( const oclMat& src1, const Scalar& s, oclMat& dst, const oclMat& mask=oclMat() )
:param src1: The first input array
......@@ -197,7 +207,7 @@ ocl::bitwise_not
------------------
Returns void
.. ocv:function:: void bitwise_not(const oclMat &src, oclMat &dst)
.. ocv:function:: void ocl::bitwise_not(const oclMat &src, oclMat &dst)
:param src: The input array
......@@ -209,7 +219,7 @@ ocl::cartToPolar
------------------
Returns void
.. ocv:function:: void cartToPolar(const oclMat &x, const oclMat &y, oclMat &magnitude, oclMat &angle, bool angleInDegrees = false)
.. ocv:function:: void ocl::cartToPolar(const oclMat &x, const oclMat &y, oclMat &magnitude, oclMat &angle, bool angleInDegrees = false)
:param x: The array of x-coordinates; must be single-precision or double-precision floating-point array
......@@ -227,7 +237,7 @@ ocl::polarToCart
------------------
Returns void
.. ocv:function:: void polarToCart(const oclMat &magnitude, const oclMat &angle, oclMat &x, oclMat &y, bool angleInDegrees = false)
.. ocv:function:: void ocl::polarToCart(const oclMat &magnitude, const oclMat &angle, oclMat &x, oclMat &y, bool angleInDegrees = false)
:param magnitude: The source floating-point array of magnitudes of 2D vectors. It can be an empty matrix (=Mat()) - in this case the function assumes that all the magnitudes are =1. If it's not empty, it must have the same size and same type as angle
......@@ -245,7 +255,7 @@ ocl::compare
------------------
Returns void
.. ocv:function:: void compare(const oclMat &a, const oclMat &b, oclMat &c, int cmpop)
.. ocv:function:: void ocl::compare(const oclMat &a, const oclMat &b, oclMat &c, int cmpop)
:param a: The first source array
......@@ -261,7 +271,7 @@ ocl::exp
------------------
Returns void
.. ocv:function:: void exp(const oclMat &a, oclMat &b)
.. ocv:function:: void ocl::exp(const oclMat &a, oclMat &b)
:param a: The first source array
......@@ -273,7 +283,7 @@ ocl::log
------------------
Returns void
.. ocv:function:: void log(const oclMat &a, oclMat &b)
.. ocv:function:: void ocl::log(const oclMat &a, oclMat &b)
:param a: The first source array
......@@ -285,7 +295,7 @@ ocl::LUT
------------------
Returns void
.. ocv:function:: void LUT(const oclMat &src, const oclMat &lut, oclMat &dst)
.. ocv:function:: void ocl::LUT(const oclMat &src, const oclMat &lut, oclMat &dst)
:param src: Source array of 8-bit elements
......@@ -299,7 +309,7 @@ ocl::magnitude
------------------
Returns void
.. ocv:function:: void magnitude(const oclMat &x, const oclMat &y, oclMat &magnitude)
.. ocv:function:: void ocl::magnitude(const oclMat &x, const oclMat &y, oclMat &magnitude)
:param x: The floating-point array of x-coordinates of the vectors
......@@ -313,11 +323,11 @@ ocl::flip
------------------
Returns void
.. ocv:function:: void flip(const oclMat &src, oclMat &dst, int flipCode)
.. ocv:function:: void ocl::flip( const oclMat& a, oclMat& b, int flipCode )
:param src: Source image.
:param a: Source image.
:param dst: Destination image
:param b: Destination image
:param flipCode: Specifies how to flip the array: 0 means flipping around the x-axis, positive (e.g., 1) means flipping around y-axis, and negative (e.g., -1) means flipping around both axes.
......@@ -327,7 +337,7 @@ ocl::meanStdDev
------------------
Returns void
.. ocv:function:: void meanStdDev(const oclMat &mtx, Scalar &mean, Scalar &stddev)
.. ocv:function:: void ocl::meanStdDev(const oclMat &mtx, Scalar &mean, Scalar &stddev)
:param mtx: Source image.
......@@ -341,7 +351,7 @@ ocl::merge
------------------
Returns void
.. ocv:function:: void merge(const vector<oclMat> &src, oclMat &dst)
.. ocv:function:: void ocl::merge(const vector<oclMat> &src, oclMat &dst)
:param src: The source array or vector of the single-channel matrices to be merged. All the matrices in src must have the same size and the same type
......@@ -353,7 +363,7 @@ ocl::split
------------------
Returns void
.. ocv:function:: void split(const oclMat &src, vector<oclMat> &dst)
.. ocv:function:: void ocl::split(const oclMat &src, vector<oclMat> &dst)
:param src: The source multi-channel array
......@@ -365,9 +375,9 @@ ocl::norm
------------------
Returns the calculated norm
.. ocv:function:: double norm(const oclMat &src1, int normType = NORM_L2)
.. ocv:function:: double ocl::norm(const oclMat &src1, int normType = NORM_L2)
.. ocv:function:: double norm(const oclMat &src1, const oclMat &src2, int normType = NORM_L2)
.. ocv:function:: double ocl::norm(const oclMat &src1, const oclMat &src2, int normType = NORM_L2)
:param src1: The first source array
......@@ -381,7 +391,7 @@ ocl::phase
------------------
Returns void
.. ocv:function:: void phase(const oclMat &x, const oclMat &y, oclMat &angle, bool angleInDegrees = false)
.. ocv:function:: void ocl::phase(const oclMat &x, const oclMat &y, oclMat &angle, bool angleInDegrees = false)
:param x: The source floating-point array of x-coordinates of 2D vectors
......@@ -397,7 +407,7 @@ ocl::pow
------------------
Returns void
.. ocv:function:: void pow(const oclMat &x, double p, oclMat &y)
.. ocv:function:: void ocl::pow(const oclMat &x, double p, oclMat &y)
:param x: The source array
......@@ -411,7 +421,7 @@ ocl::transpose
------------------
Returns void
.. ocv:function:: void transpose(const oclMat &src, oclMat &dst)
.. ocv:function:: void ocl::transpose(const oclMat &src, oclMat &dst)
:param src: The source array
......@@ -424,7 +434,7 @@ ocl::dft
------------
Performs a forward or inverse discrete Fourier transform (1D or 2D) of the floating point matrix.
.. ocv:function:: void ocl::dft(const oclMat& src, oclMat& dst, Size dft_size, int flags=0)
.. ocv:function:: void ocl::dft( const oclMat& src, oclMat& dst, Size dft_size=Size(0, 0), int flags=0 )
:param src: Source matrix (real or complex).
......@@ -452,7 +462,7 @@ ocl::gemm
------------------
Performs generalized matrix multiplication.
.. ocv:function:: void gemm(const oclMat& src1, const oclMat& src2, double alpha, const oclMat& src3, double beta, oclMat& dst, int flags = 0)
.. ocv:function:: void ocl::gemm(const oclMat& src1, const oclMat& src2, double alpha, const oclMat& src3, double beta, oclMat& dst, int flags = 0)
:param src1: First multiplied input matrix that should be ``CV_32FC1`` type.
......
......@@ -35,7 +35,7 @@ ocl::setBinpath
------------------
Returns void
.. ocv:function:: void setBinpath(const char *path)
.. ocv:function:: void ocl::setBinpath(const char *path)
:param path: the path of OpenCL kernel binaries
......@@ -45,7 +45,7 @@ ocl::getoclContext
------------------
Returns the pointer to the opencl context
.. ocv:function:: void *getoclContext()
.. ocv:function:: void* ocl::getoclContext()
Thefunction are used to get opencl context so that opencv can interactive with other opencl program.
......@@ -53,6 +53,6 @@ ocl::getoclCommandQueue
--------------------------
Returns the pointer to the opencl command queue
.. ocv:function:: void *getoclCommandQueue()
.. ocv:function:: void* ocl::getoclCommandQueue()
Thefunction are used to get opencl command queue so that opencv can interactive with other opencl program.
\ No newline at end of file
......@@ -95,9 +95,9 @@ namespace cv
//other opencl program
CV_EXPORTS void *getoclContext();
CV_EXPORTS void* getoclContext();
CV_EXPORTS void *getoclCommandQueue();
CV_EXPORTS void* getoclCommandQueue();
//////////////////////////////// Error handling ////////////////////////
CV_EXPORTS void error(const char *error_string, const char *file, const int line, const char *func);
......@@ -191,10 +191,10 @@ namespace cv
//! sets every oclMatrix element to s
//It supports 8UC1 8UC4 32SC1 32SC4 32FC1 32FC4
oclMat &operator = (const Scalar &s);
oclMat& operator = (const Scalar &s);
//! sets some of the oclMatrix elements to s, according to the mask
//It supports 8UC1 8UC4 32SC1 32SC4 32FC1 32FC4
oclMat &setTo(const Scalar &s, const oclMat &mask = oclMat());
oclMat& setTo(const Scalar &s, const oclMat &mask = oclMat());
//! creates alternative oclMatrix header for the same data, with different
// number of channels and/or different number of rows. see cvReshape.
oclMat reshape(int cn, int rows = 0) const;
......@@ -213,7 +213,7 @@ namespace cv
//! locates oclMatrix header within a parent oclMatrix. See below
void locateROI( Size &wholeSize, Point &ofs ) const;
//! moves/resizes the current oclMatrix ROI inside the parent oclMatrix.
oclMat &adjustROI( int dtop, int dbottom, int dleft, int dright );
oclMat& adjustROI( int dtop, int dbottom, int dleft, int dright );
//! extracts a rectangular sub-oclMatrix
// (this is a generalized form of row, rowRange etc.)
oclMat operator()( Range rowRange, Range colRange ) const;
......@@ -249,7 +249,7 @@ namespace cv
bool empty() const;
//! returns pointer to y-th row
uchar *ptr(int y = 0);
uchar* ptr(int y = 0);
const uchar *ptr(int y = 0) const;
//! template version of the above method
......@@ -347,7 +347,7 @@ namespace cv
//! transposes the matrix
// supports CV_8UC1, 8UC4, 8SC4, 16UC2, 16SC2, 32SC1 and 32FC1.(the same as cuda)
CV_EXPORTS void transpose(const oclMat &src1, oclMat &dst);
CV_EXPORTS void transpose(const oclMat &src, oclMat &dst);
//! computes element-wise absolute difference of two arrays (c = abs(a - b))
// supports all types except CV_8SC1,CV_8SC2,CV8SC3 and CV_8SC4
......@@ -407,7 +407,7 @@ namespace cv
CV_EXPORTS void equalizeHist(const oclMat &mat_src, oclMat &mat_dst);
//! bilateralFilter
// supports 8UC1 8UC4
CV_EXPORTS void bilateralFilter(const oclMat &, oclMat &, int , double, double, int);
CV_EXPORTS void bilateralFilter(const oclMat& src, oclMat& dst, int d, double sigmaColor, double sigmaSpave, int borderType=BORDER_DEFAULT);
//! computes exponent of each matrix element (b = e**a)
// supports only CV_32FC1 type
CV_EXPORTS void exp(const oclMat &a, oclMat &b);
......@@ -719,7 +719,7 @@ namespace cv
OclCascadeClassifier() {};
~OclCascadeClassifier() {};
CvSeq *oclHaarDetectObjects(oclMat &gimg, CvMemStorage *storage, double scaleFactor,
CvSeq* oclHaarDetectObjects(oclMat &gimg, CvMemStorage *storage, double scaleFactor,
int minNeighbors, int flags, CvSize minSize = cvSize(0, 0), CvSize maxSize = cvSize(0, 0));
};
......@@ -729,7 +729,7 @@ namespace cv
CV_EXPORTS void pyrDown(const oclMat &src, oclMat &dst);
//! upsamples the source image and then smoothes it
CV_EXPORTS void pyrUp(const cv::ocl::oclMat &src, cv::ocl::oclMat &dst);
CV_EXPORTS void pyrUp(const oclMat &src, oclMat &dst);
//! performs linear blending of two images
//! to avoid accuracy errors sum of weigths shouldn't be very close to zero
......@@ -1705,11 +1705,11 @@ namespace cv
};
//////////////// build warping maps ////////////////////
//! builds plane warping maps
CV_EXPORTS void buildWarpPlaneMaps(Size, Rect, const Mat &, const Mat &, const Mat &, float, oclMat &, oclMat &);
CV_EXPORTS void buildWarpPlaneMaps(Size src_size, Rect dst_roi, const Mat &K, const Mat &R, const Mat &T, float scale, oclMat &map_x, oclMat &map_y);
//! builds cylindrical warping maps
CV_EXPORTS void buildWarpCylindricalMaps(Size, Rect, const Mat &, const Mat &, float, oclMat &, oclMat &);
CV_EXPORTS void buildWarpCylindricalMaps(Size src_size, Rect dst_roi, const Mat &K, const Mat &R, float scale, oclMat &map_x, oclMat &map_y);
//! builds spherical warping maps
CV_EXPORTS void buildWarpSphericalMaps(Size, Rect, const Mat &, const Mat &, float, oclMat &, oclMat &);
CV_EXPORTS void buildWarpSphericalMaps(Size src_size, Rect dst_roi, const Mat &K, const Mat &R, float scale, oclMat &map_x, oclMat &map_y);
//! builds Affine warping maps
CV_EXPORTS void buildWarpAffineMaps(const Mat &M, bool inverse, Size dsize, oclMat &xmap, oclMat &ymap);
......
......@@ -337,10 +337,10 @@ class CppHeaderParser(object):
atype = arg[:pos+1].strip()
if aname.endswith("&") or aname.endswith("*") or (aname in ["int", "string", "Mat"]):
atype = (atype + " " + aname).strip()
aname = "param"
aname = ""
else:
atype = arg
aname = "param"
aname = ""
if aname.endswith("]"):
bidx = aname.find('[')
atype += aname[bidx:]
......@@ -575,6 +575,8 @@ class CppHeaderParser(object):
"""
if not self.block_stack:
return name
if name.startswith("cv."):
return name
n = ""
for b in self.block_stack:
block_type, block_name = b[self.BLOCK_TYPE], b[self.BLOCK_NAME]
......
......@@ -5,6 +5,7 @@ from table_formatter import *
from optparse import OptionParser
from operator import itemgetter, attrgetter
from summary import getSetName, alphanum_keyselector
import re
if __name__ == "__main__":
usage = "%prog <log_name>.xml [...]"
......@@ -21,14 +22,13 @@ if __name__ == "__main__":
options.generateHtml = detectHtmlOutputType(options.format)
# expand wildcards and filter duplicates
file = os.path.abspath(args[0])
input_file = args[0]
file = os.path.abspath(input_file)
if not os.path.isfile(file):
sys.stderr.write("IOError reading \"" + file + "\" - " + str(err) + os.linesep)
parser.print_help()
exit(0)
# read all passed files
test_sets = []
try:
tests = testlog_parser.parseLogFile(file)
......@@ -41,7 +41,7 @@ if __name__ == "__main__":
if not test_sets:
sys.stderr.write("Error: no test data found" + os.linesep)
quit()
exit(0)
# find matches
setsCount = len(test_sets)
......@@ -81,6 +81,13 @@ if __name__ == "__main__":
if case.get('status') == 'failed':
has_failed = True
testsuits.append({'name': prevGroupName, 'time': suit_time, \
'failed': has_failed})
if len(testsuits)==0:
print 'No testsuits found'
exit(0)
tbl = table()
# header
......@@ -103,4 +110,11 @@ if __name__ == "__main__":
tbl.htmlPrintTable(sys.stdout)
htmlPrintFooter(sys.stdout)
else:
tbl.consolePrintTable(sys.stdout)
\ No newline at end of file
input_file = re.sub(r'^[\.\/]*', '', input_file)
find_module_name = re.search(r'([^_]*)', input_file)
module_name = find_module_name.group(0)
splitter = 15 * '*'
print '\n%s\n %s\n%s\n' % (splitter, module_name, splitter)
tbl.consolePrintTable(sys.stdout)
print 4 * '\n'
\ No newline at end of file
......@@ -1194,8 +1194,8 @@ cvCalcOpticalFlowPyrLK( const void* arrA, const void* arrB,
st = cv::Mat(count, 1, CV_8U, (void*)status);
if( error )
err = cv::Mat(count, 1, CV_32F, (void*)error);
cv::calcOpticalFlowPyrLK( A, B, ptA, ptB, status ? cv::_OutputArray(st) : cv::_OutputArray(),
error ? cv::_OutputArray(err) : cv::_OutputArray(),
cv::calcOpticalFlowPyrLK( A, B, ptA, ptB, st,
error ? cv::_OutputArray(err) : cv::noArray(),
winSize, level, criteria, flags);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册