一、对于复杂背景中的文本提取
我测试用的简单的单行文本,如果非文本区多对二值化影响大,首先进行提取文本行,再对提取的文本行进行二值化。
实例图片:
图片中的文字区域从此视频帧中提取:
1、切取图片中的行
提取边缘信息,边缘图像进行水平投影,将每一行中的像素值相加,得到一个每行边缘信息的数组,
求数组的波谷,两个波谷直接的区间就为文本行。
求取波谷,我也没想到什么好的算法,因为数组是有波动的,只提取极小值也不对,会提取到特别多个波谷。
下一步想平滑后求极小值。
目前切行后为:
2、对文本行归一化到一定的高
按原来的宽高比对图片进行缩放,缩放到高为80个像素点(看论文里的经验值),便于文本的识别。
float ratioWH = (float)(image->width)/image->height;
CvSize cv;
cv.height = 80;//将文字行比例转换为高80
cv.width = 80*ratioWH;
IplImage *norImage = cvCrea

这篇博客介绍了如何利用Tesseract OCR库在复杂背景下提取和识别文本。首先,通过提取文本行并进行二值化处理来减少非文本区域的影响。接着,对文本行进行归一化,并进一步优化二值化效果以去除背景干扰。最后,应用Tesseract进行文字识别。
最低0.47元/天 解锁文章
6792

被折叠的 条评论
为什么被折叠?



