字符识别之----------resize后增加二值化操作,提高字符识别正确率

 

步骤:

  • 从原图中扣出字符,但是我们需要把字符resize 20*20 大小
  • 把resize后的图片拿去识别,发现,有的识别错误,比较图片发现,resize后的图片,有部分像素点丢失了

字符识别之----------resize后增加二值化操作,提高字符识别正确率_第1张图片

改进步骤

  • 从原图中扣出字符,但是我们需要把字符resize 20*20 大小
  • 把resize图片进行二值化操作
  • 二值化后图片拿去识别,发现识别正确

字符识别之----------resize后增加二值化操作,提高字符识别正确率_第2张图片

void resize_opencv()
{
	
	cv::Mat matSrc,matDst;
	string strSrcName, strDstName;
	for (int i = 0; i < 7; i++)
	{
		strSrcName = to_string(i) + ".jpeg";
		strDstName = to_string(i) + ".jpg";
		matSrc = cv::imread(strSrcName);
		matDst = cv::Mat(cv::Size(20, 20), matSrc.type(), cv::Scalar::all(0));

		cv::resize(matSrc, matDst, matDst.size());
		cvtColor(matDst, matDst, CV_BGR2GRAY);
		threshold(matDst, matDst, 50, 255, THRESH_BINARY);//取了一个比较小的阈值:50,防止丢失像素点
		imwrite(strDstName, matDst);
	}	
}

小节:

当然这个二值化的阈值,不能随便取,不能太小,但是也不能太大,暂时没有想到用什么方法获取这个阈值,OTSU ?

 

 

 

 

你可能感兴趣的:(图像识别)