Пороговое изображение с использованием opencv (Java)

Я работаю с Opencv для моего проекта. Мне нужно преобразовать изображение ниже в пороговое изображение

Оригинальное изображение

Я пробовал эту функцию:

Imgproc.threshold(imgGray, imgThreshold, 0, 255, Imgproc.THRESH_BINARY + Imgproc.THRESH_OTSU); 

Но результат был не так хорош, как вы видите ниже

порог

Поэтому я попробовал adaptiveThreshold function :

 Imgproc.adaptiveThreshold(imgGray, imgThreshold, 255, Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C, Imgproc.THRESH_BINARY, 11, 2); 

И это привело:

adaptiveThreshold

Я просто ожидаю двоичное изображение с белым фоном и только черным текстом, без черной области или шума (я не предпочитаю использовать Photo.fastNlMeansDenoising потому что это занимает много времени). Пожалуйста, помогите мне с решением для этого.

Кроме того, я использую Tesseract для японского распознавания, но точность не является хорошей. Есть ли у вас какие-либо предложения по улучшению OCR для японцев или какой-либо метод улучшения качества Tesseract?

Solutions Collecting From Web of "Пороговое изображение с использованием opencv (Java)"