Opencv函数:reduce


参考资料:

1、http://docs.opencv.org/modules/core/doc/operations_on_arrays.html?highlight=reduce#void reduce(InputArray src, OutputArray dst, int dim, int rtype, int dtype)

Reduces a matrix to a vector.

C++:  void  reduce (InputArray  src, OutputArray  dst, int  dim, int  rtype, int  dtype=-1  )
Python:   cv2. reduce (src, dim, rtype [, dst [, dtype ] ] ) → dst
C:  void  cvReduce (const CvArr*  src, CvArr*  dst, int  dim=-1, int  op=CV_ REDUCE_SUM )
Python:   cv. Reduce (src, dst, dim=-1, op=CV_ REDUCE_SUM ) → None
Parameters:
  • src – input 2D matrix.
  • dst – output vector. Its size and type is defined by dim and dtype parameters.
  • dim – dimension index along which the matrix is reduced. 0 means that the matrix is reduced to a single row. 1 means that the matrix is reduced to a single column.
  • rtype –

    reduction operation that could be one of the following:

    • CV_REDUCE_SUM: the output is the sum of all rows/columns of the matrix.
    • CV_REDUCE_AVG: the output is the mean vector of all rows/columns of the matrix.
    • CV_REDUCE_MAX: the output is the maximum (column/row-wise) of all rows/columns of the matrix.
    • CV_REDUCE_MIN: the output is the minimum (column/row-wise) of all rows/columns of the matrix.
  • dtype – when negative, the output vector will have the same type as the input matrix, otherwise, its type will 
  • be CV_MAKE_TYPE(CV_MAT_DEPTH(dtype), src.channels()).

2、用法:

reduce(trainData,dst,0,CV_REDUCE_SUM); 
// 是将训练矩阵按行进行累加,得到一个列向量。训练数据矩阵大小为1133*400

// 执行会出现错误

3、错误:

4、原因分析: 主要是最后一个dtype参数,不能默认,因为按行累加后,可能会超过uchar表达的范围。因此要改写

reduce(trainData,dst,0,CV_REDUCE_SUM,CV_32S); // 可以顺利通过



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值