- Сообщения
- 118
- Реакции
- 1
Собственно, с чего начать чистку вот этого скана? На выходе должен получиться ч/б Bitmap. Дело в том. что я не могу добиться оптимального сочетания между удалением шума и избавлением от дырок в тексте. Либо первое остается, либо удаляется, но тогда дырявится текст.
Пока для этих целей использую такую связку. Чтобы подчеркнуть края букв, делаю unsharp mask 500 1 0 для копии изображения в отдельном слое, затем делаю Color range 0 и слою удаляю. Все, что не попадает под выделение, стираю (Fill White). Затем вручную подбираю Threshold. Вот здесь-то и кроется та самая проблема .Thresh отсекает ненужное, либо оставляет мусор.
Тем не менее, далее продолжаю обработку. Чтобы избавиться от мусора определенного размера, я использую сглаживание выделения Select- Modify - Smooth 8 и Fill: White. Но чтобы защитить текст от столь радикального Smooth, использую следующий прием: Делаю Col. range 0 и начинаю последовательно сдвигать выделение горизонтально вправо с кумулятивным приращением (через Transform Selection делаю относительно приращение по X на 1 пиксель и затем Interselect Selection через Load Selection и делаю так 16 раз (зависит от размеров букв и расстояния между буквами), после чего сохраняю выделение и сдвигаю его на 16 пикселей назад и делаю логическое И с сохраненным. Потом делаю Smooth. Если же после Smooth выделение все таки наехало на текст, исправляю его с помощью Grow, Inverse, Grow. После заливаю белым невыделенную области фона вместе с мусором. Затем пытаюсь избавиться от дырок в тексте, тоже с помощью Smooth: 1 и Fill: Black. Тут беда в том, что большое значение Smooth выставить нельзя, т.к. буква "е" зальется. Т.е. делаю опять Col. Range 0, Smooth 1, Inverse, Fill: Black. Чтобы избавиться от мусора между буквами, делаю такой же кумулятивный сдвиг, как выше, но только вертикально на 8 пикселей и Smooth 4.
Если хотите подробно, вот Action
Вообщем, как решить дилемму мусора и дырок? У кого какие мысли?
Пока для этих целей использую такую связку. Чтобы подчеркнуть края букв, делаю unsharp mask 500 1 0 для копии изображения в отдельном слое, затем делаю Color range 0 и слою удаляю. Все, что не попадает под выделение, стираю (Fill White). Затем вручную подбираю Threshold. Вот здесь-то и кроется та самая проблема .Thresh отсекает ненужное, либо оставляет мусор.
Тем не менее, далее продолжаю обработку. Чтобы избавиться от мусора определенного размера, я использую сглаживание выделения Select- Modify - Smooth 8 и Fill: White. Но чтобы защитить текст от столь радикального Smooth, использую следующий прием: Делаю Col. range 0 и начинаю последовательно сдвигать выделение горизонтально вправо с кумулятивным приращением (через Transform Selection делаю относительно приращение по X на 1 пиксель и затем Interselect Selection через Load Selection и делаю так 16 раз (зависит от размеров букв и расстояния между буквами), после чего сохраняю выделение и сдвигаю его на 16 пикселей назад и делаю логическое И с сохраненным. Потом делаю Smooth. Если же после Smooth выделение все таки наехало на текст, исправляю его с помощью Grow, Inverse, Grow. После заливаю белым невыделенную области фона вместе с мусором. Затем пытаюсь избавиться от дырок в тексте, тоже с помощью Smooth: 1 и Fill: Black. Тут беда в том, что большое значение Smooth выставить нельзя, т.к. буква "е" зальется. Т.е. делаю опять Col. Range 0, Smooth 1, Inverse, Fill: Black. Чтобы избавиться от мусора между буквами, делаю такой же кумулятивный сдвиг, как выше, но только вертикально на 8 пикселей и Smooth 4.
Если хотите подробно, вот Action
Вообщем, как решить дилемму мусора и дырок? У кого какие мысли?