OCR文本切割

行分割:行扫描计算灰度值和。

int cutrow(Mat& src, Mat& row_top, Mat& row_down)//左右切割  
{
	int top, down;
	top = 0;
	down = src.rows;

	int i;
	for (i = 0; i < src.rows; i++)
	{
		int rowValue = getRowSum(src, i);
		if (rowValue > 0)
		{
			top = i;
			break;
		}
	}
	if (top == 0)
	{
		return 1;
	}

	for (; i < src.rows; i++)
	{
		int rowValue = getRowSum(src, i);
		if (rowValue == 0)
		{
			down = i;
			break;
		}
	}
	int hight = down - top;
	Rect rect( 0,top, src.cols,hight );
	row_top = src(rect).clone();
	
	Rect rectDown(0, down, src.cols, src.rows - hight);
	row_down = src(rectDown).clone();
	//cutTop(leftImg, leftImg);
	return 0;
}


int getRowSum(Mat src, int row)
{
	int sum = 0;
	int height = src.rows;
	int width = src.cols;
	for (int i = 0; i < width; i++)
	{
		sum += src.at <uchar>(row, i);
	}
	return sum;
}

ref

https://blog.csdn.net/Print_lin/article/details/80143002
https://blog.csdn.net/iamdll/article/details/79216320

单行数字识别

同种字体模板匹配

int  getSubtract(Mat &src, int TemplateNum) //两张图片相减
{
	Mat img_result;
	int min = 1000000;
	int serieNum = 0;
	for (int i = 0; i < TemplateNum; i++)
	{
		char name[20];
		sprintf_s(name, ".\\模板\\%dLeft.jpg", i);
		Mat Template = imread(name, CV_LOAD_IMAGE_GRAYSCALE);
		threshold(Template, Template, 100, 255, CV_THRESH_BINARY);
		threshold(src, src, 100, 255, CV_THRESH_BINARY);
		resize(src, src, Size(32, 48), 0, 0, CV_INTER_LINEAR);
		resize(Template, Template, Size(32, 48), 0, 0, CV_INTER_LINEAR);//调整尺寸		

		absdiff(Template, src, img_result);
		int diff = 0;
		getPXSum(img_result, diff);
		if (diff < min)
		{
			min = diff;
			serieNum = i;
		}
	}
	if (serieNum == 10)
		printf(".");
	else
		printf("%d ", serieNum);
	return serieNum;
}

https://blog.csdn.net/ltg01/article/details/50492556

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值