Ваш метод «увидеть, различают ли цвета белый цвет номерного знака и черный цвет текста», заключается в основном в поиске областей, в которых интенсивность пикселей меняется с черного на белый и наоборот много раз. Обнаружение края может выполнить по существу то же самое. Тем не менее, реализация собственных методов все еще хорошая идея, потому что вы многому научитесь в процессе. Черт возьми, почему бы не сделать и то и другое и сравнить результаты вашего метода с результатами какого-нибудь готового алгоритма обнаружения краев?
В какой-то момент вы захотите получить двоичное изображение, скажем, с черными пикселями, соответствующими метке «не символ», и белыми пикселями, соответствующими метке «символ». Возможно, самый простой способ сделать это - использовать функцию порогового значения. Но это будет хорошо работать только в том случае, если персонажи уже каким-то образом подчеркнуты.
Как кто-то упоминал в вашей другой ветке, вы можете сделать это с помощью оператора черной шляпы, что приводит к чему-то вроде этого:

Если вы пороговое изображение выше с, скажем, методом Оцу (который автоматически определяет глобальный пороговый уровень), вы получите это:

Есть несколько способов очистить это изображение. Например, вы можете найти подключенные компоненты и выбросить те, которые слишком маленькие, слишком большие, слишком широкие или слишком высокие, чтобы быть персонажем:

Поскольку символы на вашем изображении относительно большие и полностью связаны между собой, этот метод хорошо работает.
Далее вы можете фильтровать оставшиеся компоненты на основе свойств соседей, пока у вас не будет нужного количества компонентов (= количество символов). Если вы хотите распознать персонажа, вы можете рассчитать характеристики для каждого персонажа и ввести их в классификатор, который обычно создается с помощью контролируемого обучения.
Все вышеперечисленные шаги, конечно, всего лишь один из способов сделать это.
Кстати, я сгенерировал изображения выше, используя OpenCV + Python, который является отличной комбинацией для компьютерного зрения.