在光学字符识别(OCR)中,我面临着在嘈杂/复杂的背景图像上分割字符的问题。我尝试了在这里附加的3个(我认为)最简单的图像。另外,由于图像几乎是低对比度的,因此我尝试了对比度增强(直方图均衡化)。但是,分割的字符仍然质量较差:连接的字符,未填充的区域,并且由于固定的阈值而无法用于其他图像。

    Scalar m = mean(src);
    for ( y = 0; y < src.rows; y++ )
    {
        for ( x = 0; x < src.cols; x ++ )
        {
            if ( filtered_image.at<uchar>(y,x) > 160 )
            {
                filtered_image.at<uchar>(y, x) = (uchar) m(0);
            }
        }
    }
    GaussianBlur(filtered_image, filtered_image, Size(5, 5), 1, 1, 4);
    imshow("filtered", filtered_image);

    HardThresholding(filtered_image, filtered_image, 70);
    imshow("threshold", filtered_image);
  • 通过为那些大于阈值(例如:180)的像素分配图像平均值来去除亮点。
  • 高斯模糊消除噪声。
  • 关于固定阈值的硬阈值。

  • 如果有人可以提出一些想法,那真的很棒。

    opencv - 复杂背景的段特征-LMLPHP
    opencv - 复杂背景的段特征-LMLPHP

    opencv - 复杂背景的段特征-LMLPHP

    opencv - 复杂背景的段特征-LMLPHP

    最佳答案

    您可以尝试使用MSER(最大稳定的末端区域)进行斑点检测。 VLFeat开源库包括MSER的实现。

    有整个scientific competition专​​门用于文本分割。事实证明,许多方法都将MSER用作其处理流程的一部分。

    关于opencv - 复杂背景的段特征,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31570617/

    10-11 04:01