У меня есть три типа изображений, и я хочу сегментировать текст из них.Так что я получаю чистый бинаризованный 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)
Это конечный результат, который мне нужен ![enter image description here](https://i.stack.imgur.com/POYfp.png)
Это первый тип изображений, которые терпят неудачу.Сбой из-за того, что уровень серого цвета текста в правом изображении светлее
![enter image description here](https://i.stack.imgur.com/aagkX.png)
Результат отсу на нем уже здесь, мне просто нужен способдля улучшения слов в третьей строке справа:
![enter image description here](https://i.stack.imgur.com/SNofu.png)
Второй тип, который выходит из строя из-за более темного фона
![enter image description here](https://i.stack.imgur.com/MjfmM.png)
результат отсу не очень хороший, так как слова слева выглядят как расширенные слова
![enter image description here](https://i.stack.imgur.com/5SsAl.png)
Этотип, который правильно пороговое значение отсу, так как нет шума
![enter image description here](https://i.stack.imgur.com/Lv2f2.png)