opencv投影分析

 两个函数,一个垂直投影分析,一个水平投影分析,输入src为要分析的图像,输出dst为投影分析的结果图,返回值vector<Mat>为根据波峰波谷切割出的图形

//垂直投影分析
vector<Mat> GetVerticalProjection(Mat src,Mat &dst)
{
	vector<Mat> rois;
	dst = Mat::zeros(src.size(), CV_8UC1);
	vector<int> vectorV; //垂直投影
	for (int i = 0;i < src.cols;i++)
	{
		Mat data = src.col(i);
		int iCount = countNonZero(data);
		vectorV.push_back(iCount);
	}
	vector<int>VUp;
	vector<int>VDown;
	//分析波峰波谷
	for (int i = 1;i < vectorV.size();i++)
	{
		if (vectorV[i - 1] == 0 && vectorV[i] > 0)
			VUp.push_back(i);
		if (vectorV[i - 1] > 0 && vectorV[i] == 0)
			VDown.push_back(i);
	}
	//绘制图像
	for (int i = 0;i < vectorV.size();i++)
	{
		if (vectorV[i] != 0)
			line(dst, Point(i, dst.rows), Point(i, dst.rows - vectorV[i]), Scalar(255));
	}
	//根据波峰波谷提取roi区域
	for (int i &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值