Java OCR图像预处理:局部Otsu阈值还是使用OpenCV的另一种二值化算法?

Java OCR图像预处理:局部Otsu阈值还是使用OpenCV的另一种二值化算法?,java,opencv,image-processing,ocr,Java,Opencv,Image Processing,Ocr,我正在使用Otsu,这是一种全局阈值技术,使用java中的OpenCV。 但我了解到,局部阈值技术(例如局部Otsu、Sauvola、Niblack等)在从图像中剔除文本方面更有效(我正在为OCR预处理图像)。 这就是我正在做的: Mat src = Imgcodecs.imread(imageFilePath, Imgcodecs.IMREAD_GRAYSCALE); //Creating an empty matrices to store the destinat

我正在使用Otsu,这是一种全局阈值技术,使用java中的OpenCV。 但我了解到,局部阈值技术(例如局部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);
我应该用大津吗?如果是,如何在本地应用?
或者我应该使用另一种二值化算法吗?

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

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

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