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