Я хочу предварительно обработать отсканированное изображение, чтобы сделать на нем какое-либо распознавание текста. Моя проблема в том, что когда я применяю заданное значение Threshold для удаления шума, жирный текст становится четким, но остальная часть текста исчезает.
CvInvoke.cvThreshold(img, img, 80, 255, THRESH.CV_THRESH_BINARY);
CvInvoke.cvThreshold(img, img, 120, 255, THRESH.CV_THRESH_BINARY);
Я спрашиваю, есть ли способ применить различные значения порога в зависимости от текстовой формы?
Как это было предложено. Я думаю, что вы бы предпочли выровнять свое изображение, чтобы извлечь только границы.
Сначала я инвертирую цвета, а затем использую EqualizeHist, который позволит сделать ваш текст темнее и ярче фона.
После этого вы хотели бы извлечь края. Я бы применил Canny, сохраняя соотношение 2: 1 или 3: 1 между двумя пороговыми значениями, а затем увеличивал / уменьшал их соответственно, пока у меня не получится хорошо выглядящий край.
Других решений пока нет …