В общем это довольно сложная задача. Однако, учитывая ваше конкретное приложение, возможно, вы можете сделать предположения относительно ввода вашей программы OCR.
Вы упомянули "отсканированные тексты". Поэтому я предполагаю, что это не будет применяться к изображениям досок объявлений вдоль дорог и необходимости распознавать текст на доске объявлений посреди живописного фона. Это означает, что диапазон цветов низкий, а контрастность высокая.
С другой стороны, фотография обычно имеет очень широкий диапазон цветов с относительно низким контрастом между соседними пикселями. Конечно, это предположение можно легко опровергнуть, учитывая множество стилей фотографии.
Поэтому я думаю, что первое, что вы можете попробовать, - это преобразовать изображение в черно-белое (не в градациях серого). Затем посмотрите на относительные пропорции двух цветов. Я думаю, что фотография будет гораздо более равномерно разделена, чем отсканированный документ. Алгоритм, который вы используете для преобразования фотографии, должен быть устойчивым к выбросам, поэтому, возможно, использование некоторого медианы будет хорошим порогом.