【问题标题】:Preprocessing images for OCR: local Otsu thresholding or another binarization algorithm using OpenCV?OCR 的图像预处理:局部 Otsu 阈值处理或其他使用 OpenCV 的二值化算法?
【发布时间】:2021-06-01 12:36:00
【问题描述】:

我正在使用 Otsu,这是一种全局阈值技术,在 Java 中使用 OpenCV。 但我读到局部阈值技术(例如 Local Otsu、Sauvola、Niblack 等)在从图像中遗漏文本方面更有效(我正在为 OCR 预处理图像)。 这就是我正在做的事情:

 Mat src = Imgcodecs.imread(imageFilePath, Imgcodecs.IMREAD_GRAYSCALE);
            //Creating an empty matrices to store the destination image.
            Mat dst = new Mat(src.rows(), src.cols(), src.type());
            //Applying simple threshold
            Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_OTSU);
            Bitmap bitmap = BitmapFactory.decodeFile(imageFilePath);
            Utils.matToBitmap(dst, bitmap);

我应该使用大津吗?如果可以,如何在本地应用? 还是应该使用其他二值化算法?

【问题讨论】:

    标签: java opencv image-processing ocr


    【解决方案1】:

    如果照明不均匀或背景颜色发生变化,全局方法无法在图像的任何地方工作。

    本地方法可以解决这个问题,但需要一个比例参数,该参数取决于要检测的特征的大小。 (对于这个大小未知的通用解决方案来说,这是一个问题。)

    在滑动窗口中应用过滤器是最好的,因为它会产生连续的阈值函数,但比平铺窗口更耗时。

    【讨论】:

      猜你喜欢
      • 2020-01-25
      • 1970-01-01
      • 2017-09-25
      • 2022-06-22
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多