OpenCV识别此图像中的行

时间:2015-06-25 16:23:48

标签: c++ opencv

我无法将OpenCV中的HoughLines转换应用于我发布的图像。所有线条都应朝向15度,但这会在多个方向上产生许多线条。我怎么能这样做?!

this是图片。

1 个答案:

答案 0 :(得分:2)

是的,霍夫不会在这里申请..太多的白色像素。

但是,您可以通过一些图像处理获得这些线条。我会这样做:

  1. 旋转图像,使线条垂直
  2. 隔离每一行。
  3. 旋转图像

    您可以使用所有白色像素的RotatedRect获取minAreaRect,然后在知道yourRect.angle的情况下旋转原始图片。

    我认为您的原始图像代表文字。文档分析中有很多技术可以纠正"纠正"你的形象,即纠正倾斜

    隔离每一行

    您可以使用垂直(或水平)投影直方图。基本上,您计算每个x(y)坐标的白色像素数。 您可以在OpenCV中使用函数reduce作为参数CV_REDUCE_SUM来执行此操作。 现在,您可以轻松识别直方图为0的行之间的空格(更好地应用小阈值)。您的行将在两个连续的空格之间。

    希望它有所帮助!