opencv3 reduce函数及其使用

1. reduce

函数原型:void cv::reduce(InputArray _src, OutputArray _dst, int dim, int rtype, int dtype=-1)

src :输入矩阵 

dst :输出的通过处理输入矩阵的所有行/列而得到的单行/列向量 

dim :矩阵被简化后的维数索引.

         0-意味着矩阵被处理成一行,

         1-意味着矩阵被处理成为一列,

        -1-维数将根据输出向量的大小自动选择. 

rtype:简化操作的方式,可以有以下几种取值: 

        CV_REDUCE_SUM-输出是矩阵的所有行/列的和. 

        CV_REDUCE_AVG-输出是矩阵的所有行/列的平均向量. 

        CV_REDUCE_MAX-输出是矩阵的所有行/列的最大值. 

        CV_REDUCE_MIN-输出是矩阵的所有行/列的最小值.  
 

2. reduce 应用-灰度投影

void grayProjection(Mat &src, Mat &Hdist, Mat &Vdist)
{
	//投影法
	Mat image = src.clone();
	int width = src.cols;
	int height = src.rows;

	Hdist = Mat::zeros(height, 1, CV_32FC1);//CV_32FC1,可根据实际取值范围修改
	Vdist = Mat::zeros(1, width, CV_32FC1);

	//沿水平方向投影,得到height行, 1列的矩阵
	reduce(image, Hdist, 1, CV_REDUCE_SUM, CV_32FC1);//rtype要与创建dst的type一致
	
	//沿垂直方向投影,得到1行,width列的矩阵
	reduce(image, Vdist, 0, CV_REDUCE_SUM, CV_32FC1);//rtype要与创建dst的type一致
}

灰度投影可用于图像匹配、直线检测等,待更新;

展开阅读全文
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值