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一致
}

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JoannaJuanCV

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值