У меня есть три типа изображений, и я хочу сегментировать текст из них.Так что я получаю чистый бинаризованный IMG, как на первом изображении ниже.Ниже представлены три типа изображений:
Я пробовал разные методы, но всегда есть случаи, когда не получается.Сначала я попытался портировать IMG с использованием алгоритма otsu
, но он дал плохие результаты на изображениях ниже
Я попробовал Guassian
, bilateral
и обычное ядро размытия, но не улучшил результаты слишком сильно
Любой может оказать помощь!
Код как лучший, который я получил от
import cv2
gray = cv2.imread("/home/shrouk/Pictures/f2.png", 0)
thresholded = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
cv2.imshow("img", thresholded)
Это конечный результат, который мне нужен
Это первый тип изображений, которые терпят неудачу.Сбой из-за того, что уровень серого цвета текста в правом изображении светлее
Результат отсу на нем уже здесь, мне просто нужен способдля улучшения слов в третьей строке справа:
Второй тип, который выходит из строя из-за более темного фона
результат отсу не очень хороший, так как слова слева выглядят как расширенные слова
Этотип, который правильно пороговое значение отсу, так как нет шума