识别图像的表格和表格单元格

时间:2014-04-14 07:16:22

标签: opencv image-processing

我试图从图像中显示的数据表中读取数据。

图片示例:

Scanned image of a data table

高分辨率图片在这里: http://i.imgur.com/zUwozvn.jpg

目前,我已经能够使用opencv(C ++)从图像中检测并裁剪表格。我需要采取哪些步骤逐个细胞切割表以便以后执行OCR?

1 个答案:

答案 0 :(得分:3)

我建议你尝试不同的东西,例如:

a)裁剪完表格后,运行Canny 边缘检测器以检测图像中(明确定义的)线条。做类似的事情:

Mat im = imread("zUwozvn.jpg"); //read your image 
Mat gr,edges;
cvtColor(im,gr,CV_BGR2GRAY); // 
imshow("ori",gr);
Canny(gr,edges,50,100); // try different thresholds!
imshow("edges",edges);
waitKey();

这是我获得的:

enter image description here

一旦检测到边缘,您可能需要计算边缘图像的垂直和水平投影(即每行和每列中的像素总和)以检测表格单元格。

b)尝试现有的文本检测算法,而不是基于边缘检测的方法,例如在OpenCV 3.0.0(http://docs.opencv.org/trunk/modules/objdetect/doc/erfilter.html)中实现的算法。

希望它有所帮助!