提交 259e41da 编写于 作者: V Vadim Pisarevsky

reverted "typedef _InputArray InputArray", fixed warning from doxygen

上级 052593c7
...@@ -2958,6 +2958,9 @@ public: ...@@ -2958,6 +2958,9 @@ public:
/** @brief Loads algorithm from the file /** @brief Loads algorithm from the file
@param filename Name of the file to read.
@param objname The optional name of the node to read (if empty, the first top-level node will be used)
This is static template method of Algorithm. It's usage is following (in the case of SVM): This is static template method of Algorithm. It's usage is following (in the case of SVM):
@code @code
Ptr<SVM> svm = Algorithm::load<SVM>("my_svm_model.xml"); Ptr<SVM> svm = Algorithm::load<SVM>("my_svm_model.xml");
...@@ -2977,6 +2980,7 @@ public: ...@@ -2977,6 +2980,7 @@ public:
/** @brief Loads algorithm from a String /** @brief Loads algorithm from a String
@param strModel The string variable containing the model you want to load. @param strModel The string variable containing the model you want to load.
@param objname The optional name of the node to read (if empty, the first top-level node will be used)
This is static template method of Algorithm. It's usage is following (in the case of SVM): This is static template method of Algorithm. It's usage is following (in the case of SVM):
@code @code
......
...@@ -70,7 +70,7 @@ class CV_EXPORTS _OutputArray; ...@@ -70,7 +70,7 @@ class CV_EXPORTS _OutputArray;
It is defined as: It is defined as:
@code @code
class InputArray; // = _InputArray typedef const _InputArray& InputArray;
@endcode @endcode
where _InputArray is a class that can be constructed from `Mat`, `Mat_<T>`, `Matx<T, m, n>`, where _InputArray is a class that can be constructed from `Mat`, `Mat_<T>`, `Matx<T, m, n>`,
`std::vector<T>`, `std::vector<std::vector<T> >` or `std::vector<Mat>`. It can also be constructed `std::vector<T>`, `std::vector<std::vector<T> >` or `std::vector<Mat>`. It can also be constructed
...@@ -186,6 +186,7 @@ public: ...@@ -186,6 +186,7 @@ public:
_InputArray(const std::vector<UMat>& umv); _InputArray(const std::vector<UMat>& umv);
Mat getMat(int idx=-1) const; Mat getMat(int idx=-1) const;
Mat getMat_(int idx=-1) const;
UMat getUMat(int idx=-1) const; UMat getUMat(int idx=-1) const;
void getMatVector(std::vector<Mat>& mv) const; void getMatVector(std::vector<Mat>& mv) const;
void getUMatVector(std::vector<UMat>& umv) const; void getUMatVector(std::vector<UMat>& umv) const;
...@@ -361,15 +362,13 @@ public: ...@@ -361,15 +362,13 @@ public:
template<typename _Tp, int m, int n> _InputOutputArray(const Matx<_Tp, m, n>& matx); template<typename _Tp, int m, int n> _InputOutputArray(const Matx<_Tp, m, n>& matx);
_InputOutputArray(const UMat& m); _InputOutputArray(const UMat& m);
_InputOutputArray(const std::vector<UMat>& vec); _InputOutputArray(const std::vector<UMat>& vec);
explicit _InputOutputArray(const _OutputArray& o);
}; };
typedef _InputArray InputArray; typedef const _InputArray& InputArray;
typedef InputArray InputArrayOfArrays; typedef InputArray InputArrayOfArrays;
typedef _OutputArray OutputArray; typedef const _OutputArray& OutputArray;
typedef OutputArray OutputArrayOfArrays; typedef OutputArray OutputArrayOfArrays;
typedef _InputOutputArray InputOutputArray; typedef const _InputOutputArray& InputOutputArray;
typedef InputOutputArray InputOutputArrayOfArrays; typedef InputOutputArray InputOutputArrayOfArrays;
CV_EXPORTS InputOutputArray noArray(); CV_EXPORTS InputOutputArray noArray();
......
...@@ -114,6 +114,13 @@ inline _InputArray::_InputArray(const cuda::HostMem& cuda_mem) ...@@ -114,6 +114,13 @@ inline _InputArray::_InputArray(const cuda::HostMem& cuda_mem)
inline _InputArray::~_InputArray() {} inline _InputArray::~_InputArray() {}
inline Mat _InputArray::getMat(int i) const
{
if( kind() == MAT && i < 0 )
return *(const Mat*)obj;
return getMat_(i);
}
inline bool _InputArray::isMat() const { return kind() == _InputArray::MAT; } inline bool _InputArray::isMat() const { return kind() == _InputArray::MAT; }
inline bool _InputArray::isUMat() const { return kind() == _InputArray::UMAT; } inline bool _InputArray::isUMat() const { return kind() == _InputArray::UMAT; }
inline bool _InputArray::isMatVector() const { return kind() == _InputArray::STD_VECTOR_MAT; } inline bool _InputArray::isMatVector() const { return kind() == _InputArray::STD_VECTOR_MAT; }
...@@ -294,9 +301,6 @@ inline _InputOutputArray::_InputOutputArray(const ogl::Buffer& buf) ...@@ -294,9 +301,6 @@ inline _InputOutputArray::_InputOutputArray(const ogl::Buffer& buf)
inline _InputOutputArray::_InputOutputArray(const cuda::HostMem& cuda_mem) inline _InputOutputArray::_InputOutputArray(const cuda::HostMem& cuda_mem)
{ init(FIXED_TYPE + FIXED_SIZE + CUDA_HOST_MEM + ACCESS_RW, &cuda_mem); } { init(FIXED_TYPE + FIXED_SIZE + CUDA_HOST_MEM + ACCESS_RW, &cuda_mem); }
inline _InputOutputArray::_InputOutputArray(const _OutputArray& o)
{ init(o.getFlags(), o.getObj(), o.getSz()); }
//////////////////////////////////////////// Mat ////////////////////////////////////////// //////////////////////////////////////////// Mat //////////////////////////////////////////
inline inline
......
...@@ -1113,7 +1113,7 @@ void scalarToRawData(const Scalar& s, void* _buf, int type, int unroll_to) ...@@ -1113,7 +1113,7 @@ void scalarToRawData(const Scalar& s, void* _buf, int type, int unroll_to)
Input/Output Array Input/Output Array
\*************************************************************************************************/ \*************************************************************************************************/
Mat _InputArray::getMat(int i) const Mat _InputArray::getMat_(int i) const
{ {
int k = kind(); int k = kind();
int accessFlags = flags & ACCESS_MASK; int accessFlags = flags & ACCESS_MASK;
......
...@@ -65,20 +65,20 @@ namespace cv{ ...@@ -65,20 +65,20 @@ namespace cv{
}; };
struct CCStatsOp{ struct CCStatsOp{
OutputArray _mstatsv; const _OutputArray* _mstatsv;
cv::Mat statsv; cv::Mat statsv;
OutputArray _mcentroidsv; const _OutputArray* _mcentroidsv;
cv::Mat centroidsv; cv::Mat centroidsv;
std::vector<Point2ui64> integrals; std::vector<Point2ui64> integrals;
CCStatsOp(OutputArray _statsv, OutputArray _centroidsv): _mstatsv(_statsv), _mcentroidsv(_centroidsv){ CCStatsOp(OutputArray _statsv, OutputArray _centroidsv): _mstatsv(&_statsv), _mcentroidsv(&_centroidsv){
} }
inline inline
void init(int nlabels){ void init(int nlabels){
_mstatsv.create(cv::Size(CC_STAT_MAX, nlabels), cv::DataType<int>::type); _mstatsv->create(cv::Size(CC_STAT_MAX, nlabels), cv::DataType<int>::type);
statsv = _mstatsv.getMat(); statsv = _mstatsv->getMat();
_mcentroidsv.create(cv::Size(2, nlabels), cv::DataType<double>::type); _mcentroidsv->create(cv::Size(2, nlabels), cv::DataType<double>::type);
centroidsv = _mcentroidsv.getMat(); centroidsv = _mcentroidsv->getMat();
for(int l = 0; l < (int) nlabels; ++l){ for(int l = 0; l < (int) nlabels; ++l){
int *row = (int *) &statsv.at<int>(l, 0); int *row = (int *) &statsv.at<int>(l, 0);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册