OpenCV - удалить текст с изображения - PullRequest
0 голосов
/ 03 декабря 2018

Как удалить текст и маркировку с приведенного ниже медицинского ультразвукового изображения?

enter image description here

1 Ответ

0 голосов
/ 04 декабря 2018

Thresholding для создания маски из более белых областей, а затем для рисования будет работать в большинстве случаев на этом изображении.

img = cv2.imread('ultrasound.png')
mask = cv2.threshold(img, 210, 255, cv2.THRESH_BINARY)[1][:,:,0]
dst = cv2.inpaint(img, mask, 7, cv2.INPAINT_NS)

Вот маска:

enter image description here

Вот изображение с надписью:

enter image description here

Обратите внимание, что маска для определения порога не является точной и включает более светлые области, где нетбуквы.Но, что более важно, особенно важна проблема, если маска не включает области, которые необходимо удалить, например темные тени крестов в середине.Вот увеличение этой области.

enter image description here

Маска только из белой области и не покрывает темные области.Для таких проблем, когда порогового значения будет недостаточно, маску можно настроить вручную.Здесь я беру оригинальные кресты в маске и смещаю их, чтобы также покрыть тени, и рисование намного лучше.(Точно так же, если необходимо, области, которые не должны быть включены в маску, могут быть удалены вручную)

crosses = mask[235:267,290:320] | mask[233:265,288:318]
mask[235:267,290:318] = crosses
dst = cv2.inpaint(img, mask, 7, cv2.INPAINT_NS)

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...