Правильного нет и быть не может.
Возможно, "правильный порог" - это не очень удачное выражение. Но я имел в виду оптимальный порог, который с точки зрения любого человека четко отделяет фон от текста. У меня изображения настолько простые, что человеку не представляет труда не только "распознать" текст, но и выбрать "правильный" оптимальный порог.
Сколько надо брать образцов для проверки? В распознавание образов у лучших программ обычно счёт идёт единицы ошибок на 1000 экземпляров.
Поскольку изображение я считаю очень простым (без искажений, без локальных перепадов яркости) меня устроит только 100%-ая точность распознавания.
И BHT, и модифицированный Оцу (с предварительной заменой темных пикселей фона на светлые) с изображениями-словами справляются неплохо. Но точность недостаточна. Поэтому я и обратился на форум.
Я считаю, что в примере (изображение-символ из первого поста) недостатки моих алгоритмов проявляются в явном виде. Поэтому мне было бы полезнее обсуждать не множество "образцов для проверки" и "1000 экземпляров", а конкретный пример и определенный алгоритм, который сможет распознать один символ на конкретном ОДНОМ изображении.
В моих алгоритмах мне также не нравится сильная зависимость от "количества фона" (см. изображения в конце поста).
Я бы посмотрел бы в сторону не только гистограмм, но и адаптивной.
Вы про адаптивную (локальную) бинаризацию?
По-моему для моего случая такие методы не очень подходят. У меня нет засветов на изображении. И у меня всегда существует оптимальный глобальный порог.
Я пробовал использовать метод Ниблэка. Результат меня не устроил.
Либо подбор порога делать с обратной связью.
Изменять порог до тех пор, пока изображение не будет распознано без ошибок? Такой подход кажется очень неэффективным.
Также могут быть неправильные результаты из-за того, что части одного символа могут быть очень похожи на другой символ (см. второе изображение: t vs c, r vs i', n vs m).