Разделение рукописных чисел на бумаге в клетку образует фон
Я новичок в Matlab, и я пытаюсь написать код, который может отделить рукописные числа от фона страницы в квадрате. Я пытался использовать kmeans, чтобы отличать числа от линий и сквайров, но это не работает на всех изображениях. Любые идеи, как я могу это сделать? Tahnks!
1 ответ
Я использую пакет EBImage в R, но я уверен, что вы можете найти эквивалент в Matlab:
Начиная с исходного изображения:
# Чтение и извлечение изображения в оттенках серого # Запустите kmeans с 3 центрами km = kmeans(as.vector(x), 3) с = км $ центров # 1 0.4936797 # 2 0.2841005 # 3 0.6456494 # Извлечь наименьший кластер 2 (ваши числа) в виде двоичного изображения t = (км $ кластер ==2) r = матрица (t, nrow(x))
Теперь r выглядит так:
# Применить морфологическое отверстие (разрушить, затем расширить) с наименьшим возможным структурным элементом kern = makeBrush(3, 'box') #[,1] [,2] [,3] #[1,] 1 1 1 #[2,] 1 1 1 #[3,] 1 1 1 z = открытиеГрейскейл (р, керн)
Z теперь выглядит как