Opencv 复杂背景的分割特征

Opencv 复杂背景的分割特征,opencv,image-processing,Opencv,Image Processing,在光学字符识别(OCR)中,我面临着在噪声/复杂背景图像上分割字符的问题。我已经尝试了三个最简单的图片中的一个(我认为),我附加在这里。此外,我还尝试了对比度增强(直方图均衡化),因为图像的对比度几乎很低。然而,分割后的字符质量仍然很差:连通字符、未填充区域以及由于固定阈值而无法用于其他图像 Scalar m = mean(src); for ( y = 0; y < src.rows; y++ ) { for ( x = 0; x < src

在光学字符识别(OCR)中,我面临着在噪声/复杂背景图像上分割字符的问题。我已经尝试了三个最简单的图片中的一个(我认为),我附加在这里。此外,我还尝试了对比度增强(直方图均衡化),因为图像的对比度几乎很低。然而,分割后的字符质量仍然很差:连通字符、未填充区域以及由于固定阈值而无法用于其他图像

    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);
标量m=平均值(src);
对于(y=0;y160处过滤的图像)
{
在(y,x)=(uchar)m(0)处的滤波图像;
}
}
}
高斯模糊(滤波图像,滤波图像,大小(5,5),1,1,4);
imshow(“过滤”,过滤的图像);
硬阈值(滤波图像,滤波图像,70);
imshow(“阈值”,过滤图像);
  • 通过为大于阈值(ex:180)的像素指定图像平均值来去除亮点
  • 高斯模糊以去除噪声
  • 相对于固定阈值的硬阈值
  • 如果有人能提出一些想法,那就太好了


    尝试使用中值滤波器或更好的边缘保持滤波器(如Kuwahara),而不是简单的高斯模糊


    我还建议使用更先进的阈值技术。你可以从大津阈值法或滞后阈值法开始研究。

    代替简单的高斯模糊,尝试使用中值滤波器或更好的边缘保持滤波器,如Kuwahara

    我还建议使用更先进的阈值技术。你可以从大津阈值法或滞后阈值法开始研究。

    你可以尝试MSER(最大稳定极值区域)进行斑点检测。VLFeat开源库包括MSER的实现

    有一个专门研究文本分割的系统。事实证明,许多方法都将MSER作为其处理管道的一部分。

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


    有一个专门研究文本分割的系统。事实证明,许多方法都将MSER作为其处理管道的一部分。

    没有奇迹,在没有先验信息的情况下,你无法获得完美的分割,尤其是在第三种情况下。即使是人类也不能

    对于这种困难的情况,我将使用带有自动阈值的直接二值化。任何类型的滤波、去噪、平滑、对比拉伸、自适应阈值。。。充其量也不会产生积极的影响,更糟糕的是抹去字符

    二值化后,找到已知大小和已知间距的3乘3盒的最佳排列

    您还可以尝试通过配置文件分析查找字符间限制(垂直和水平)


    如果你能负担得起,直接模板匹配网格可能是比分割更好的解决方案。

    没有奇迹,没有先验信息,你无法获得完美的分割,特别是在第三种情况下。即使是人类也不能

    对于这种困难的情况,我将使用带有自动阈值的直接二值化。任何类型的滤波、去噪、平滑、对比拉伸、自适应阈值。。。充其量也不会产生积极的影响,更糟糕的是抹去字符

    二值化后,找到已知大小和已知间距的3乘3盒的最佳排列

    您还可以尝试通过配置文件分析查找字符间限制(垂直和水平)


    如果你能负担得起的话,直接用网格模板匹配可能是比分割更好的解决方案。

    对比度增强在二值化之前是无用的。调整阈值。@YvesDaoust:我认为对比度增强在二值化之前几乎是无用的,但是,我仍然会遇到一些动态阈值可能相当大的情况![有效的XHTML](“”@russel vk:我不是在讨论动态阈值的好处,我只是在看这个特殊的案例,IMO根本不可以设置阈值(第三幅图)@YvesDaoust:噢,对不起,我误解了你的话。对比度增强在二值化之前是没有用的。请调整阈值。@YvesDaoust:我认为对比度增强在二值化之前几乎没有用,但是,我仍然会遇到一些动态阈值可能相当大的情况。!![有效的XHTML](“”)@russel vk:一般来说,我不是在讨论动态阈值的好处,我是在看这个特殊的案例,IMO根本无法对其进行阈值设置(第三张图片)。@YvesDaoust:哦,对不起。我误解了你的话。